Merge 2017.2 Gold A patches

svn path=/Website/trunk/; revision=35796
This commit is contained in:
Jos Groot Lipman
2017-10-24 09:30:37 +00:00
parent 1f8bae45a0
commit 22e5a3fa63
43 changed files with 473 additions and 254 deletions

View File

@@ -53,7 +53,7 @@ var authparams = alg.checkAutorisation();
districtkey: district_key,
locatiekey: locatie_key,
startlevel: 1, // District
eindlevel: 1, // District
eindlevel: 2, // Locatie
whenEmpty: L("lcl_search_generic") // want filter
});
%>

View File

@@ -134,6 +134,12 @@ api2_rest = {
/* global */ JSON_Result = true; // Zelf doen we er niets mee maar
// shared.simple_page kijkt er naar
var orgError = api2.error;
api2.error = function (code, msg)
{
api2_rest.plugin.error_handler(code, msg, orgError);
}
api2_rest.authenticate();
// Kip-ei: de omzetting naar new model() mag pas als je geauthenticeerd bent
// Hierboven willen we het echter al wel meegeven
@@ -870,6 +876,16 @@ api2_rest = {
hook = null;
return outdata;
},
error_handler: function(code, msg, orgHandler)
{
var hook = api2_rest.find_plugin();
if ("error_handler" in hook)
outdata = hook.error_handler(code, msg, orgHandler);
else
outdata = orgHandler(code, msg);
hook = null;
return outdata;
},
transform_incoming: function(params, data)
{
var outdata = data;

View File

@@ -57,7 +57,7 @@ function model_bgt_budget()
"dbs": "bgt_kostenrubriek_key",
"label": L("bgt_kostenrubriek_oms"),
"typ": "key",
"required": false,
"required": true,
"insertonly": true,
"foreign": bgt_budgetcostcategory_foreign(),
"showtransit": true

View File

@@ -18,7 +18,7 @@ model_bgt_disc_params =
"record_name": "budgetdisciplineparam",
"table": "bgt_disc_params",
"primary": "bgt_disc_params_key",
"autfunction": "WEB_BGTMAN",
"autfunction": "WEB_BGTMGT",
"fields": {

View File

@@ -23,13 +23,7 @@ function model_bgt_discipline(disc_key, params)
this.REST_GET = generic_REST_GET(disc, // Let op: de originele _model
{ "GET": {
wheres: [ "ins_tab_discipline.ins_discipline_module = 'BGT'",
" ins_tab_discipline.ins_discipline_key IN"
+ " (SELECT ins_discipline_key"
+ " FROM fac_v_webgebruiker"
+ " WHERE prs_perslid_key = " + user_key
+ " AND (fac_gebruiker_prs_level_read<9 OR fac_gebruiker_alg_level_read<9)"
+ " )"
wheres: [ "ins_tab_discipline.ins_discipline_module = 'BGT'"
]
}
}
@@ -48,7 +42,7 @@ function _model_bgt_discipline()
this.audit = { "childtable": "bgt_disc_params" }, // Parameters voor fac_audit.
this.primary = "ins_discipline_key";
this.soft_delete = "ins_discipline_verwijder"; // ik wil er eigenlijk liever niet standaard op kunnen filteren
this.autfunction = "WEB_BGTMAN";
this.autfunction = "WEB_BGTMGT";
this.record_title = L("bgt_discipline");
this.records_title = L("bgt_discipline_m");

View File

@@ -61,7 +61,8 @@ function model_bgt_project()
"code": {
"dbs": "bgt_project_code",
"label": L("bgt_project_code"),
"typ": "varchar"
"typ": "varchar",
"required": true
},
"sequence": {
"dbs": "bgt_project_volgnr",
@@ -93,6 +94,67 @@ function model_bgt_project()
//this.print = { xmlnode: "budget", where: "project"};
this.hook_pre_edit = function (obj, fld)
{
if (mode != "save")
{
var sql = "SELECT count(*)"
+ " FROM bgt_kostenrubriek"
+ " WHERE bgt_project_key = " + obj.id;
var oRs = Oracle.Execute(sql);
if (oRs(0) == 0) // Een nieuw project, of een project waaraan nog geen rubrieken zijn gekoppeld.
{ // Voeg de selectie voor het standaardproject toe.
fld["import"] = {
"dbs": "fac_usrtab.fac_usrtab_key",
"label": "Standaard projectdata",
"typ": "key",
"foreign": {
"tbl": "(SELECT d.fac_usrdata_key"
+ " , d.fac_usrdata_code"
+ " FROM fac_usrtab t"
+ " , fac_usrdata d"
+ " WHERE d.fac_usrtab_key = t.fac_usrtab_key"
+ " AND t.fac_usrtab_naam = 'project_import')",
"key": "fac_usrdata_key",
"desc": "fac_usrdata_code"
}
};
}
oRs.Close();
if (obj.id > 0)
{
fld["account"].foreign.tbl = bgt_account_foreign_tbl(obj.id);
}
else
{
fld["account"].hidden_fld = true;
}
}
}
this.hook_pre_post = function(params, obj)
{
// Controle op, en wijzigingen aan data voordat het record wordt toegevoegd.
}
this.hook_post_post = function(params, obj, key)
{
// Nadat het project-record is toegevoegd is de key hiervan bekend.
create_default_kostenplaatsgrp(key);
var data_key = getFParamInt("import", -1);
create_default_projectdata(key, data_key);
}
this.hook_pre_put = function(params, obj, key)
{
// Wordt alleen gebruikt bij wijzigen.
create_default_kostenplaatsgrp(key);
var data_key = getFParamInt("import", -1);
create_default_projectdata(key, data_key);
}
// if (!S("bgt_enabled"))
// {
// this.fields.budgetdiscipline.hidden_fld = true
@@ -103,5 +165,37 @@ function model_bgt_project()
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
function create_default_kostenplaatsgrp(key)
{
var sql_u = "SELECT count(*) aantal"
+ " FROM prs_kostenplaatsgrp"
+ " WHERE bgt_project_key = " + key;
var oRs_u = Oracle.Execute(sql_u);
if (oRs_u("aantal").Value == 0)
{
var sql = "SELECT d.bgt_disc_params_code"
+ " , p.bgt_project_code"
+ " FROM bgt_disc_params d"
+ " , bgt_project p"
+ " WHERE d.bgt_ins_discipline_key = p.ins_discipline_key"
+ " AND p.bgt_project_key = " + key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
var sql_i = "INSERT INTO prs_kostenplaatsgrp"
+ " (prs_kostenplaatsgrp_nr, prs_kostenplaatsgrp_oms, bgt_project_key)"
+ " VALUES"
+ " (" + safe.quoted_sql(oRs("bgt_disc_params_code").Value)
+ " ," + safe.quoted_sql(oRs("bgt_project_code").Value)
+ " ," + key
+ " )";
Oracle.Execute(sql_i);
}
oRs.Close();
}
oRs_u.Close();
}
}
%>

View File

@@ -114,6 +114,8 @@ function model_fac_groep(groep_key, params)
+ " WHERE fgr.fac_functie_key = ff.fac_functie_key"
+ " AND ff.fac_functie_code = 'WEB_FACTAB')");
}
// _groepen geven we nooit mee
xparams.GET.wheres.push("SUBSTR(fac_groep_omschrijving, 0, 1) <> '_'");
this.REST_GET = generic_REST_GET(this, xparams);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);

View File

@@ -161,7 +161,7 @@ function model_mld_kenmerk(niveau, params)
this.getPropertyType = function (kenmerkdata)
{
var typedata = api2.GET(new model_mld_srtkenmerk(), kenmerkdata.issuepropertytype.id);
var typedata = api2.GET(new model_mld_srtkenmerk({internal: params.internal}), kenmerkdata.issuepropertytype.id);
return typedata;
}

View File

@@ -13,14 +13,15 @@
%>
<%
function model_mld_srtkenmerk()
function model_mld_srtkenmerk(params)
{
params = params || {};
this.records_name = "issuepropertytypes";
this.record_name = "issuepropertytype";
this.table = "mld_srtkenmerk";
this.primary = "mld_srtkenmerk_key";
this.soft_delete = "mld_srtkenmerk_verwijder";
this.autfunction = "WEB_MLDMGT";
this.autfunction = params.internal?false:"WEB_MLDMGT";
this.record_title = L("mld_srtkenmerk");
this.records_title = L("mld_srtkenmerk_m");

View File

@@ -81,7 +81,7 @@ function model_prs_afdeling()
},
"created": {
"dbs": "prs_afdeling_aanmaak",
"label": "Aanmaakdatum"),
"label": "Aanmaakdatum",
"typ": "datetime",
"readonly": true
}

View File

@@ -252,6 +252,7 @@ function model_prs_kostenplaats()
}
this.REST_GET = generic_REST_GET(this);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}

View File

@@ -320,9 +320,39 @@ function model_prs_perslid(params)
};
// We willen vooral dat je via Admin/Autorisatie personen niet met API kunt bewerken
if (params.internal) // bijvoorbeeld idp die personen kan aanmaken
// if (params.internal) // bijvoorbeeld idp die personen kan aanmaken
{
this.REST_POST = generic_REST_POST(this);
this.REST_POST = function (params, jsondata, parent_key)
{
if (jsondata.externalid)
{ // Als hij al verwijderd bestond reanimeren we
// Onze eigen REST_GET geeft nooit verwijderde records, daarom via SQL
var sql = "SELECT prs_perslid_key, "
+ " prs_perslid_verwijder"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_externid = " + safe.quoted_sql(jsondata.externalid)
+ " AND prs_perslid_verwijder IS NOT NULL";
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
var the_key = oRs("prs_perslid_key").Value;
var verwijder = new Date(oRs("prs_perslid_verwijder").Value);
oRs.Close();
var sql = "UPDATE prs_perslid"
+ " SET prs_perslid_verwijder = NULL"
+ " WHERE prs_perslid_key = " + the_key;
Oracle.Execute(sql);
shared.trackaction("PRSLOG", the_key, "User was deleted on {0}, now reanimated.".format(toDateTimeString(verwijder, true)));
return generic_REST_PUT(this)(params, jsondata, the_key); // bijwerken
}
oRs.Close();
// doorvallen naar gewone POST
}
// Else gewoon een nieuwe
return generic_REST_POST(this)(params, jsondata, parent_key)
}
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}

View File

@@ -17,6 +17,11 @@
<method name="initialize">
<PARAMETER name="params"/>
</method>
<method name="error_handler">
<PARAMETER name="code"/>
<PARAMETER name="msg"/>
<PARAMETER name="orgHandler"/>
</method>
<method name="transform_filter">
<PARAMETER name="filter"/>
</method>
@@ -56,6 +61,32 @@ function initialize(params)
FCLT = params;
}
function error_handler(code, msg, orgHandler)
{
code = code || 500;
var data = {
"schemas" : ["urn:ietf:params:scim:api:messages:2.0:Error"],
"scimType": "invalidValue",
"detail" : msg,
"status" : code
};
FCLT.DEZE.Response.ContentType = "application/json";
FCLT.DEZE.Response.Write(FCLT.DEZE.JSON.stringify(data, null, 2));
var codestr = String(code);
if (typeof code == "number")
{
var codestr = { 400: "Bad request",
403: "Forbidden",
404: "Not Found",
422: "Unprocessable Entity" }[code];
if (codestr)
code = code + " " + codestr;
}
FCLT.DEZE.Response.Status = code;
FCLT.DEZE.Response.End;
}
function transform_filter(filter)
{
if ("count" in filter)
@@ -87,9 +118,42 @@ function transform_incoming(params, data)
name : data["displayName"],
externalid : data["externalId"]
};
// TODO: Users negeren we nog
FCLT.DEZE.__Log(authorizationgroup);
var groep_key = data["id"].replace (FCLT.DEZE.customerId + "_authorizationgroup_", "");
var sql = "DELETE fac_rapport WHERE fac_rapport_node = 'SCIMGROUPS'";
FCLT.DEZE.Oracle.Execute(sql);
if (data["members"])
{
var oRs;
for (var j = 0; j < data["members"].length; j++)
{
if (data["members"][j].value)
{
member = data["members"][j].value;
sql = "INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_regel, fac_rapport_volgnr) "
+ " VALUES('SCIMGROUPS', " + groep_key + ", " + FCLT.DEZE.safe.quoted_sql(member.replace (FCLT.DEZE.customerId + "_person_", "")) + ")";
oRs = FCLT.DEZE.Oracle.Execute(sql);
}
}
// We slaan de groep key tijdelijk op in fac_arapport_regel
// en de perslid_key in het volgnummer omdat deze uniek moet zijn.
sql = "INSERT INTO fac_gebruikersgroep ( fac_groep_key, prs_perslid_key) "
+ "SELECT fac_rapport_regel, fac_rapport_volgnr FROM fac_rapport r "
+ " WHERE NOT EXISTS (SELECT fac_gebruikersgroep_key "
+ " FROM fac_gebruikersgroep gg WHERE gg.prs_perslid_key = fac_rapport_volgnr AND gg.fac_groep_key = r.fac_rapport_regel)";
FCLT.DEZE.Oracle.Execute(sql);
sql = "DELETE fac_gebruikersgroep gg "
+ " WHERE fac_groep_key = " + groep_key
+ " AND NOT EXISTS (SELECT fac_rapport_volgnr "
+ " FROM fac_rapport r WHERE gg.prs_perslid_key = fac_rapport_volgnr AND gg.fac_groep_key = r.fac_rapport_regel)";
FCLT.DEZE.Oracle.Execute(sql);
//oRs.Close();
}
//FCLT.DEZE.__DoLog(authorizationgroup);
return { authorizationgroup: authorizationgroup };
}

View File

@@ -17,6 +17,11 @@
<method name="initialize">
<PARAMETER name="params"/>
</method>
<method name="error_handler">
<PARAMETER name="code"/>
<PARAMETER name="msg"/>
<PARAMETER name="orgHandler"/>
</method>
<method name="transform_filter">
<PARAMETER name="filter"/>
</method>
@@ -58,6 +63,32 @@ function initialize(params)
FCLT = params;
}
function error_handler(code, msg, orgHandler)
{
code = code || 500;
var data = {
"schemas" : ["urn:ietf:params:scim:api:messages:2.0:Error"],
"scimType": "invalidValue",
"detail" : msg,
"status" : code
};
FCLT.DEZE.Response.ContentType = "application/json";
FCLT.DEZE.Response.Write(FCLT.DEZE.JSON.stringify(data, null, 2));
var codestr = String(code);
if (typeof code == "number")
{
var codestr = { 400: "Bad request",
403: "Forbidden",
404: "Not Found",
422: "Unprocessable Entity" }[code];
if (codestr)
code = code + " " + codestr;
}
FCLT.DEZE.Response.Status = code;
FCLT.DEZE.Response.End;
}
function transform_filter(filter)
{
if ("count" in filter)
@@ -96,7 +127,7 @@ function transform_incoming(params, data)
};
if ("costCenter" in data)
if ("costCenter" in data && data["costCenter"] != "")
{
department.costcentre = { name: data["costCenter"] }; // id mag achterwege blijven omdat desc_is_unique
var sql = "SELECT prs_kostenplaats_key FROM prs_kostenplaats "
@@ -123,16 +154,11 @@ function transform_one_department(params, department)
var unique = FCLT.DEZE.customerId + "_department_" + String(department.id);
var costc = "";
if (department.costcentre)
{
costc = department.costcentre.name;
}
var onedepartment = {
"code":department.description,
"externalid":department.externalid,
"id":unique,
"costCenter":costc,
"schemas":[
"urn:ietf:params:scim:schemas:extension:2.0:OrgUnit",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:OrgUnit"
@@ -145,6 +171,11 @@ function transform_one_department(params, department)
}
}
if (department.costcentre)
{
onedepartment.costCenter = department.costcentre.name;
}
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var eTag = '"' + oCrypto.hex_sha1(FCLT.DEZE.JSON.stringify(onedepartment)).toLowerCase() + '"';
onedepartment.meta["version"] = "W/" + eTag; // Weak eTag?

View File

@@ -17,6 +17,11 @@
<method name="initialize">
<PARAMETER name="params"/>
</method>
<method name="error_handler">
<PARAMETER name="code"/>
<PARAMETER name="msg"/>
<PARAMETER name="orgHandler"/>
</method>
<method name="transform_filter">
<PARAMETER name="filter"/>
</method>
@@ -55,6 +60,32 @@ function initialize(params)
FCLT = params;
}
function error_handler(code, msg, orgHandler)
{
code = code || 500;
var data = {
"schemas" : ["urn:ietf:params:scim:api:messages:2.0:Error"],
"scimType": "invalidValue",
"detail" : msg,
"status" : code
};
FCLT.DEZE.Response.ContentType = "application/json";
FCLT.DEZE.Response.Write(FCLT.DEZE.JSON.stringify(data, null, 2));
var codestr = String(code);
if (typeof code == "number")
{
var codestr = { 400: "Bad request",
403: "Forbidden",
404: "Not Found",
422: "Unprocessable Entity" }[code];
if (codestr)
code = code + " " + codestr;
}
FCLT.DEZE.Response.Status = code;
FCLT.DEZE.Response.End;
}
function transform_filter(filter)
{
if ("count" in filter)
@@ -94,7 +125,6 @@ function transform_incoming(params, data)
login : get_element(data["userName"]),
externallogin: get_element(data["userName"]),
externalid : get_element(data["externalId"]),
initials : get_element(facilitor["initials"]),
lastname : get_element(data["name"]["familyName"]),
middlename : get_element(data["name"]["middleName"]),
firstname : get_element(data["name"]["givenName"]),
@@ -102,21 +132,28 @@ function transform_incoming(params, data)
employeenumber : get_element(enterprise["employeeNumber"])
};
person["function"] = { name: "Onbekend" }; // geen onderdeel van de interface
var dep_id = "";
if (facilitor["orgUnit"] && facilitor["orgUnit"]["value"] )
dep_id = facilitor["orgUnit"]["value"].replace (FCLT.DEZE.customerId + "_department_", "");
else
dep_id = 1; // bij het aanmaken van een nieuwe persoon is de afdeling nog leeg. Dan tijdelijke even onder onbekend hangen.
person["department"] = { id: dep_id };
person["function"] = { name: facilitor["title"] } // id mag achterwege blijven omdat desc_is_unique
if (facilitor["initials"])
person.initials = get_element(facilitor["initials"]);
if (data["emails"])
person["department"] = { id: dep_id };
if (data["emails"] && data["emails"][0])
{
person.email = data["emails"][0].value; // type:work/primary:true opzoeken ?
person.email = get_element(data["emails"][0].value); // type:work/primary:true opzoeken ?
}
if (data["phoneNumbers"])
person.mobile = "";
person.phone = "";
if (data.phoneNumbers)
{
for (var j = 0; j < data["phoneNumbers"].length; j++)
{ if (data["phoneNumbers"][j]["type"] == 'mobile')
@@ -130,33 +167,19 @@ function transform_incoming(params, data)
}
}
// Als de functie (srt_perslid) nog niet bestaat gaan we deze aanmaken.
var sql = "SELECT prs_srtperslid_key FROM prs_srtperslid "
+ "WHERE prs_srtperslid_verwijder IS NULL "
+ " AND prs_srtperslid_omschrijving = " + FCLT.DEZE.safe.quoted_sql(person["function"]["name"]);
var oRs = FCLT.DEZE.Oracle.Execute(sql);
if (oRs.eof)
{
sql = "INSERT INTO prs_srtperslid (prs_srtperslid_omschrijving) "
+ "VALUES (" + FCLT.DEZE.safe.quoted_sql(person["function"]["name"]) + ")";
FCLT.DEZE.Oracle.Execute(sql);
}
return { person: person };
}
function transform_one_person(params, person)
{
var unique = FCLT.DEZE.customerId + "_person_" + String(person.id);
var oneuser = {
"userName":person.externallogin || person.login,
"externalId":person.externalid,
"id":unique,
"name":{
"formatted":person.name,
"familyName":person.lastname,
"givenName":person.firstname,
"middleName":person.middlename
"familyName":person.lastname
},
"schemas":[
"urn:ietf:params:scim:schemas:core:2.0:User",
@@ -170,25 +193,6 @@ function transform_one_person(params, person)
"location":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Users/" + unique,
"resourceType":"User"
},
"emails":[
{
"value":person.email,
"type":"work",
"primary":true
}
],
"phoneNumbers":[
{
"value":person.mobile,
"type":"mobile",
"primary":true
},
{
"value":person.phone,
"type":"work",
"primary":false
}
],
"groups":[],
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" :
{
@@ -201,10 +205,42 @@ function transform_one_person(params, person)
"value":FCLT.DEZE.customerId + "_department_" + String(person.department.id),
"$ref":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/OrgUnits/" + FCLT.DEZE.customerId + "_department_" + String(person.department.id)
},
"initials":person.initials,
"title":person["function"].name
"initials":person.initials
}
}
if (person.middlename) oneuser.name.middleName = person.middlename;
if (person.firstname) oneuser.name.givenName = person.firstname;
if (person.externalid) oneuser.externalId =person.externalid;
if (person.email)
{
oneuser.emails = [
{
"value":person.email,
"type":"work",
"primary":true
}];
}
var phoneNumbers = [];
if (person.mobile)
phoneNumbers.push(
{
"value":person.mobile,
"type":"mobile",
"primary":true
});
if (person.phone)
phoneNumbers.push(
{
"value":person.phone,
"type":"work",
"primary":false
});
oneuser.phoneNumbers = phoneNumbers;
var allgroups = [];
for (var j = 0; j < person.authorization.length; j++)
{

View File

@@ -8,7 +8,6 @@ function init_budgetmutatie()
{
// model_bgt_budgetmutatie hook_pre_edit variabelen:
var parent_key = budget_key;
var init_key = mutatie_key;
if (mutatie_key == -1)
{

View File

@@ -18,63 +18,6 @@
<%
var this_model = new model_bgt_project();
this_model.hook_pre_edit = function (obj, fld)
{
if (mode != "save")
{
var sql = "SELECT count(*)"
+ " FROM bgt_kostenrubriek"
+ " WHERE bgt_project_key = " + obj.id;
var oRs = Oracle.Execute(sql);
if (oRs(0) == 0) // Een nieuw project, of een project waaraan nog geen rubrieken zijn gekoppeld.
{ // Voeg de selectie voor het standaardproject toe.
fld["import"] = {
"dbs": "fac_usrtab.fac_usrtab_key",
"label": "Standaard projectdata",
"typ": "key",
"foreign": {
"tbl": "(SELECT d.fac_usrdata_key"
+ " , d.fac_usrdata_code"
+ " FROM fac_usrtab t"
+ " , fac_usrdata d"
+ " WHERE d.fac_usrtab_key = t.fac_usrtab_key"
+ " AND t.fac_usrtab_naam = 'project_import')",
"key": "fac_usrdata_key",
"desc": "fac_usrdata_code"
}
};
}
oRs.Close();
if (obj.id > 0)
{
fld["account"].foreign.tbl = bgt_account_foreign_tbl(obj.id);
}
else
{
fld["account"].hidden_fld = true;
}
}
}
this_model.hook_pre_post = function(params, obj)
{
// Controle op, en wijzigingen aan data voordat het record wordt toegevoegd.
}
this_model.hook_post_post = function(params, obj, key)
{
// Nadat het project-record is toegevoegd is de key hiervan bekend.
var data_key = getFParamInt("import", -1);
create_default_projectdata(key, data_key);
}
this_model.hook_pre_put = function(params, obj, key)
{
// Wordt alleen gebruikt bij wijzigen.
var data_key = getFParamInt("import", -1);
create_default_projectdata(key, data_key);
}
scaffolding(this_model,
@@ -103,6 +46,7 @@ scaffolding(this_model,
function create_default_projectdata(p_project_key, default_key)
{
// Deze functie gebruikt het java-scriptbestand "../imp/imp_shared.js" die bij de includes toegevoegd wordt.
// Importeer het genoemde csv-bestand met de default projectindeling
var res = { success: false, warning: "?" };

View File

@@ -112,7 +112,6 @@ function change_opdracht()
function change_totaal()
{
// bereken btwbedrag (vat) adhv btw-percentage bij kostensoort.
var btw_incl = $("#order option:selected").attr("incl_btw") == "1";
var btw_perc = parseFloat($("#order option:selected").attr("perc_btw").replace(/,/g,"."));
var amount = parseFloat($("#total").val().replace(/,/g,"."));

View File

@@ -774,10 +774,12 @@ ins = {checkAutLevel:
!vervallen && actief && iresult.hasCTRWrite;
iresult.canInspShow = iresult.readuse && !vervallen && (ins_deelsrtcontrole_status >= 0) && iresult.hasCTRRead && !isScenario;
// Bij eerste inspectie of verwerkte inspectie kan er gepland worden.
iresult.canInspPlan = iresult.readuse && !vervallen &&
(ins_deelsrtcontrole_status == -1 || ins_deelsrtcontrole_status == 6) &&
actief && iresult.hasCTRWrite &&
((isc_options & 1) == 1);
iresult.canInspPlanReq = iresult.readuse && !vervallen &&
(ins_deelsrtcontrole_status == -1 || ins_deelsrtcontrole_status == 6) &&
actief && iresult.hasCTRWrite &&
((isc_options & 1) == 1);
iresult.canInspPlan = iresult.canInspPlanReq && ((isc_options & 1) == 1) && !ctr_ismjob;
iresult.canInspPlanMjb = iresult.canInspPlanReq && ctr_ismjob;
// Bij eerste inspectie, geplande inspectie of verwerkte inspectie kan er gestart worden.
iresult.canInspStartReq = iresult.readuse && invoerAfterNext && !vervallen &&
(ins_deelsrtcontrole_status <= 0 || ins_deelsrtcontrole_status == 6) &&
@@ -794,14 +796,13 @@ ins = {checkAutLevel:
(ins_deelsrtcontrole_status == 0 || ins_deelsrtcontrole_status == 2)) &&
actief && iresult.hasCTRWrite &&
((isc_options & 4) == 4) &&
!isScenario;
!isScenario && !ctr_ismjob;
// Afronden kan vanuit elke status. Alleen vanuit status Gereed gemeld/Afgemeld(5) kan het zonder gegevens in te vullen.
iresult.canInspFinish = iresult.readuse && invoerAfterNext &&
//(ins_deelsrtcontrole_status == 5 ||
// (ins_deelsrtcontrole_status < 5 && ((isc_options & 4) != 4))) &&
actief && iresult.hasCTRWrite &&
((isc_options & 8) == 8) &&
!isScenario;
iresult.canInspFinishReq = iresult.readuse && invoerAfterNext &&
actief && iresult.hasCTRWrite &&
!isScenario;
iresult.canInspFinish = iresult.canInspFinishReq && ((isc_options & 8) == 8) && !ctr_ismjob;
iresult.canInspFinishMjb = iresult.canInspFinishReq && ins_deelsrtcontrole_status == 2 && ctr_ismjob;
// Alleen als de inspectie gereedgemeld is kan SNEL afgerond worden zonder gegevens in te vullen.
iresult.canInspFastFinish = iresult.canInspFinish && ins_deelsrtcontrole_status == 5;
}
@@ -1151,12 +1152,7 @@ ins = {checkAutLevel:
+ (inspDone
? " SELECT 1 rn" // Afgehandelde inspecties.
+ " , di.ins_deel_key"
+ " , (SELECT MAX(idsc.ins_deelsrtcontrole_datum)"
+ " FROM ins_deelsrtcontrole idsc"
+ " WHERE idsc.ins_srtcontrole_key = di.ins_srtcontrole_key"
+ " AND idsc.ins_deelsrtcontrole_status IN (5, 6)"
+ " AND idsc.ins_deel_key = di.ins_deel_key"
+ " AND idsc.ins_scenario_key = 1) inspectie_date"
+ " , dsc.ins_deelsrtcontrole_datum inspectie_date"
+ " , di.ins_srtcontroledl_xcp_startdat"
+ " , NULL nonext"
+ " , di.ins_srtcontrole_eenheid inspectie_eenheid"
@@ -1168,11 +1164,7 @@ ins = {checkAutLevel:
+ " , NULL ins_deelsrtcontrole_key"
+ " , (SELECT idsc.ins_deelsrtcontrole_plandatum"
+ " FROM ins_deelsrtcontrole idsc"
+ " WHERE idsc.ins_deelsrtcontrole_key = (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
+ " FROM ins_deelsrtcontrole idsc2"
+ " WHERE idsc2.ins_deel_key = di.ins_deel_key"
+ " AND idsc2.ins_srtcontrole_key = di.ins_srtcontrole_key"
+ " AND idsc2.ins_scenario_key = 1))" // Afgehandelde inspecties.
+ " WHERE idsc.ins_deelsrtcontrole_key = dsc.ins_deelsrtcontrole_key)" // Afgehandelde inspecties.
+ " ins_deelsrtcontrole_plandatum"
// Er moet naar de laatste UITGEVOERDE (afgeronde(6)) inspectie gekeken worden om te bepalen of de laatste inspectie een SUCCESS was.
+ " , di.ctr_controle_type"
@@ -1183,12 +1175,7 @@ ins = {checkAutLevel:
+ " FROM ins_deelsrtcontrole idsc"
+ " , ins_controlemode cm"
+ " WHERE idsc.ins_controlemode_key = cm.ins_controlemode_key"
+ " AND idsc.ins_deelsrtcontrole_key = (SELECT MAX(idsc2.ins_deelsrtcontrole_key)"
+ " FROM ins_deelsrtcontrole idsc2"
+ " WHERE idsc2.ins_deel_key = di.ins_deel_key"
+ " AND idsc2.ins_srtcontrole_key = di.ins_srtcontrole_key"
+ " AND idsc2.ins_deelsrtcontrole_status IN (5, 6)"
+ " AND idsc2.ins_scenario_key = 1))"
+ " AND idsc.ins_deelsrtcontrole_key = dsc.ins_deelsrtcontrole_key)"
+ " ins_controlemode_success"
+ " , di.ctr_discipline_key ctr_disc_key"
+ " , (SELECT ins_discipline_omschrijving"
@@ -1196,7 +1183,10 @@ ins = {checkAutLevel:
+ " WHERE ins_discipline_key = di.ctr_discipline_key) ctr_disc_oms"
: "")
+ " FROM ins_v_defined_inspect_xcp di"
+ " WHERE EXISTS (" + lastinspect + ")"
+ " , ins_deelsrtcontrole dsc" // Alle inspecties meenemen als het vinkbokje "Afgehandeld" (inspDone) is aangevinkt.
+ " WHERE di.ins_deel_key = dsc.ins_deel_key"
+ " AND di.ins_srtcontrole_key = dsc.ins_srtcontrole_key"
+ " AND di.ins_scenario_key = dsc.ins_scenario_key"
+ " AND di.ins_scenario_key = 1"
+ (srtcontrole > -1
? " AND di.ins_srtcontrole_key = " + srtcontrole
@@ -2245,7 +2235,9 @@ ins = {checkAutLevel:
+ (koppel_key?" case when xx.ins_deel_key = ins_deelkoppeling_van_key THEN 1 ELSE 0 END,":"")
+ (outputmode == 2 // excel moet objecten met gelijke kenmerken bij elkaar hebben
? " ins_srtdeel_upper, plaats, soort, ins_deel_omschrijving"
: (mobile? " plaats, ins_deel_omschrijving, soort" : " ins_deel_omschrijving, plaats, ins_disc_oms, ins_groep_oms, soort"));
: (mobile? " plaats, ins_deel_omschrijving, soort" : " ins_deel_omschrijving"
+ (inspDone? ", inspectie_date" : "")
+ ", plaats, ins_disc_oms, ins_groep_oms, soort"));
return sql;
},

View File

@@ -95,7 +95,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
oRs.Close();
// Het is de eerste inspectie of de laatste inspectie moet verwerkt(6) zijn, anders kan de inspectie niet ingepland worden.
if (insPlan && !this_ins.canInspPlan) // Inplannen.
if (insPlan && !this_ins.canInspPlan) // Inplannen. Inplan scherm n.v.t. voor MJOB.
{ // Het is niet de eerste inspectie of de laatste inspectie is niet verwerkt. Overslaan.
continue;
}
@@ -103,8 +103,8 @@ for (var i = 0; i < ins_key_arr.length; i++)
// Kan de inspectie gereed gemeld/afgemeld of afgerond worden?
if (insClose)
{ // Bij bulkacties (multi) alleen kijken naar de bulkactie die uitgevoerd moet worden.
if (insClose && ((multi && ((!fromfinish && !this_ins.canInspClose) || (fromfinish && !this_ins.canInspFinish))) ||
(!multi && !this_ins.canInspClose && !this_ins.canInspFinish)))
if (insClose && ((multi && ((!fromfinish && !this_ins.canInspClose) || (fromfinish && !(this_ins.canInspFinish || this_ins.canInspFinishMjb)))) ||
(!multi && !this_ins.canInspClose && !(this_ins.canInspFinish || this_ins.canInspFinishMjb))))
// De inspectie kan niet afgemeld/afgerond worden. Overslaan.
continue;
}
@@ -126,8 +126,8 @@ for (var i = 0; i < ins_key_arr.length; i++)
// Als 1 van de srtcontroles niet gereed te melden is, dan kan er niet gereed gemeld worden en moet de button niet getoond worden.
canClose = canClose && this_ins.canInspClose;
// Als 1 van de srtcontroles niet af te ronden is, dan kan er niet afgerond worden en moet de button niet getoond worden.
canFinish = canFinish && this_ins.canInspFinish;
// Kan 1 van de srtcontroles na het gereed melden worden afgerond? Dan kan ook de afrond button getoond worden.
canFinish = canFinish && (this_ins.canInspFinish || this_ins.canInspFinishMjb);
// Kan 1 van de srtcontroles na het gereed melden worden afgerond? Dan kan ook de afrond button getoond worden. N.v.t. voor mjob.
if (this_ins.canInspClose && this_ins.canInspFinish)
nrCanFinishAfterClose++;
tobehandled++;

View File

@@ -214,7 +214,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
// Als er nog geen inspectie is geweest en er is een startdatum ingevuld, dan moet de plandatum verwijderd worden afhankelijk van mjob.
// Voor mjob = false: als de plandatum eerder is als de startdatum (kan eigenlijk niet ingevoerd worden in edit scherm).
// mjob = true: als de plandatum in hetzelfde jaar of eerder is als de startdatum.
if (savemode == "P" && !this_ins.canInspPlan) // Inplannen.
if (savemode == "P" && !(this_ins.canInspPlan || this_ins.canInspPlanMjb)) // Inplannen.
{ // Ik heb geen Plan (inplannen) rechten of er was al een planrecord.
if (ins_deelsrtcontrole_status == 0 && !multi)
savemode = "E";
@@ -255,7 +255,7 @@ for (var i = 0; i < ins_key_arr.length; i++)
continue;
}
if (!this_ins.canInspClose && !this_ins.canInspFinish)
if (!this_ins.canInspClose && !(this_ins.canInspFinish || this_ins.canInspFinishMjb))
{ // Ik heb geen Close (gereedmelden/afronden) rechten of laatste inspectie is niet verwerkt (dan moet ins_inspect_finish.asp aangeroepen worden). Overslaan.
continue;
}
@@ -591,13 +591,16 @@ else if (savemode == "C")
// De periodieke taken direct afronden indien mogelijk.
var hasActionFinish = false;
if (finish)
{ // Wel even checken of de actie "Afronden" is ingeschakeld voor de periodiek taak.
{ // Wel even checken of de actie "Afronden" is ingeschakeld voor de periodiek taak of dat het een mjob taak is.
ingesloten[i].srtcont_key
sql = "SELECT ins_srtcontrole_options"
+ " FROM ins_srtcontrole"
+ " WHERE ins_srtcontrole_key = " + ingesloten[i].srtcont_key;
+ " , ctr_ismjob"
+ " FROM ins_v_defined_inspect_xcp"
+ " WHERE ins_deel_key = " + ingesloten[i].ins_key
+ " AND ins_srtcontrole_key = " + ingesloten[i].srtcont_key
+ " AND ins_scenario_key = " + ingesloten[i].scen_key;
oRs = Oracle.Execute(sql);
hasActionFinish = (oRs("ins_srtcontrole_options").Value & 8) == 8;
hasActionFinish = (oRs("ins_srtcontrole_options").Value & 8) == 8 || oRs("ctr_ismjob").Value == 1;
}
// Afhankelijk van de modus de inspectie(s) opslaan.

View File

@@ -36,7 +36,13 @@ var xcp_key = getFParamInt("xcp_key"); // ins_srtcontroledl_xcp_key.
var mode = getFParamInt("mode"); // ins_srtcontrole_mode.
var eenheid = getFParamInt("eenheid"); // ins_srtcontroledl_xcp_eenheid.
if (!(eenheid >= 0)) // uurlijks is 0
eenheid = eenheid_std;
{
var sql = "SELECT ins_srtcontrole_eenheid"
+ " FROM ins_srtcontrole"
+ " WHERE ins_srtcontrole_key = " + srtcontrole_key;
var oRs = Oracle.Execute(sql);
eenheid = oRs("ins_srtcontrole_eenheid").Value;
}
var periode = null;
if (eenheid > -1)

View File

@@ -457,7 +457,6 @@ function showActions(event) // event op de mouseover van resultsettable
var hambImg = $(this).find("div.hamburger").children()[0];
var trHeight = $(this).outerHeight();
var outBounds = $(window.parent).outerHeight() < $(window).outerHeight();
var pageHeight = outBounds ? $(window.parent).outerHeight() : $(window).outerHeight();
var dropDownHeight = $actiondiv.outerHeight();

View File

@@ -1,4 +1,5 @@
<%@language = "javascript" %>
<% Server.ScriptTimeout=6000; %>
<% /*
$Revision$
$Id$
@@ -30,7 +31,7 @@ var sql = "SELECT ins_scenario_omschrijving"
+ " WHERE ins_scenario_key = " + scen_key;
var oRs = Oracle.Execute(sql)
var scen_name = oRs("ins_scenario_omschrijving").Value;
oRs.Close()
oRs.Close();
var sql = "SELECT xcp.ins_deel_key"
@@ -61,6 +62,7 @@ while (!oRs.eof)
tobecomitted++;
}
}
oRs.Close()
user.anything_todo_or_abort(tobecomitted > 0); // We klagen niet over enkele wel en enkele niet.

View File

@@ -1150,11 +1150,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
function fnrowActionEnabler(oRs)
{
var data = {};
//var eShowInsp = false;
var ePlan = false;
var eStart = false;
var eClose = false;
var eFinish = false;
var eFinishMjb = false;
var eFreeze = false;
var eAddScen = false;
if (fulldetails)
{ // Functie ins.func_enabled_deel kost tijd om voor elke regel uit te voeren.
@@ -1165,14 +1162,11 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
deelsrtcont_key: oRs("ins_deelsrtcontrole_key").Value? oRs("ins_deelsrtcontrole_key").Value : -1,
scen_key: oRs("ins_scenario_key").Value
});
ePlan = this_ins.canInspPlan;
eStart = this_ins.canInspStart;
eClose = this_ins.canInspClose;
eFinish = this_ins.canInspFinish;
eFinishMjb = this_ins.canInspFinishMjb;
eFreeze = this_ins.canInspFreeze;
eAddScen = true;
}
var data = {ePlan: ePlan, eStart: eStart, eClose: eClose, eFinish: eFinish, eFreeze: eFreeze};
var data = {eFinishMjb: eFinishMjb, eFreeze: eFreeze, eAddScen: eAddScen};
return data;
}
@@ -1417,16 +1411,8 @@ var transitParam = buildTransitParam(["disc", "srtgroep", "srtdeel", "srtcontrol
if (scenario == 1)
{
// Vooralsnog de acties niet in de regels weergeven en alleen als multi aanbieden.
// Anders zijn de links naar gebouw, object en taak vaak niet niet zichtbaar en daardoor niet klikbaar.
// De aanwezigheid van deze acties zou mogen afhangen van de vinkjes, maar dan is het bepalen best lastig/duur (is er in de selectie *een* taak met enz)
// en eigenklijk weten we wel dat ze hier weg moeten. Dus halen we ze hard weg hier.
//rst.addAction({ action: "insPlan", caption: L("lcl_ins_schedule"), multi: true, multiOnce: true, enabler: "ePlan", onlyMulti: true });
//rst.addAction({ action: "insStart", caption: L("lcl_ins_start"), multi: true, multiOnce: true, enabler: "eStart", onlyMulti: true });
//rst.addAction({ action: "insClose", caption: L("lcl_ins_close") + "/" + L("lcl_ins_finish"), multi: true, multiOnce: true, enabler: "eClose", onlyMulti: true });
//rst.addAction({ action: "insFinish", caption: L("lcl_ins_finish"), multi: true, multiOnce: true, enabler: "eFinish", onlyMulti: true });
rst.addAction({ action: "insFreeze", caption: L("lcl_mjb_freeze"), multi: true, multiOnce: true, enabler: "eFreeze", onlyMulti: true });
rst.addAction({ action: "insFinish", caption: L("lcl_ins_finish"), multi: true, multiOnce: true, enabler: "eFinishMjb", onlyMulti: true });
rst.addAction({ action: "insAddScen", caption: L("lcl_mjb_incl_scen"), multi: true, multiOnce: true, enabler: "eAddScen", onlyMulti: true });
}
else if (scenario > 1 && actsit)

View File

@@ -66,7 +66,7 @@ for (var i = 0; i < mld_key_arr.length; i++)
// Als je niet accepteert met MLDBO3 rechten en je hebt niet de BO3 notificatie aanstaan dan de behandelaar opslaan.
// BO notificatie accept 0=niet, 1=bof, 2=bo3, 3=bo3 (aanmaak nieuwe melding) en dan bof (accepteren melding)
ingesloten.push({mld_key: mld_key_arr[i],
saveBehandelaar: !this_mld.canWrite("WEB_MLDBO3") && mld_info.bonotify < 2 && mld_info.behandel_key != behandelaar_key // Behandelaar alleen in situatie 1 voor bonotify 0 (niet) en 1 (bof) tracken.
saveBehandelaar: !this_mld.canWrite("WEB_MLDBO3") && mld_info.bonotify < 2 && mld_info.behandel_key != behandelaar_key && !(mld_info.behandel_key == "null" && behandelaar_key == -1) // Behandelaar alleen in situatie 1 voor bonotify 0 (niet) en 1 (bof) tracken.
});
toberejected++;
}

View File

@@ -118,7 +118,7 @@ for (var i = 0; i < ingesloten.length; i++)
var mld_melding = mld.mld_melding_info(ingesloten[i]);
if (i == 0) lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY"); // Neem voor informatie de eerste melding.
if (mld_melding.kto_key > 0)
if (mld_melding.meldbron_key == 10 && mld_melding.kto_type == 'T')
{
var sql = "SELECT dsc.ins_deel_key"
+ " , dsc.ins_srtcontrole_key"
@@ -136,7 +136,7 @@ for (var i = 0; i < ingesloten.length; i++)
deelsrtcont_key: mld_melding.kto_key,
scen_key: 1
});
if (this_ins.canInspClose)
if (this_ins.canInspFinishMjb)
{
canCloseCtr.push({ ins_key: oRs("ins_deel_key").Value,
srtcont_key: oRs("ins_srtcontrole_key").Value,
@@ -183,7 +183,7 @@ for (var i = 2; i >= 0; i--)
ins_keys: <%=canCloseCtr[i].ins_key%>,
srtcont_key_arr: <%=canCloseCtr[i].srtcont_key%>,
//deelsrtcont_key wordt niet gebruikt door ins_inspect_save.asp
finish: 0,
finish: 1,
deelsrtcontrole_datum: (new Date()).getTime(),
sel_controlemode: $("#sel_controlemode" + <%=canCloseCtr[i].controlemode%>).val()
};

View File

@@ -1080,16 +1080,21 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
<input type="hidden" name="kto_key" value="<%=mld_melding.kto_key%>">
<input type="hidden" name="filtercode" id="filtercode" value=<%=((stdm_info.kanverwijzen==128)?"M" :"O")%>>
<%
FCLTreferentieselector("ref_key",
"sgRef",
{ label: L("lcl_reference"),
referenceKey: stdm_info.kanverwijzen? mld_melding.kto_key : -1,
referenceType: mld_melding.kto_type, // De waarde komt standaard in het extraParamField field ref_type.
excludemldkey: mld_key > 0? mld_key: null,
urlAdd: [{urlParam: "prs_key", field: (personForExist? "personFor" : "person"), init: (personForExist? mld_melding.perslid_key_voor : mld_melding.melder_key)},
{urlParam: "stdm_key", field: "stdm", init: mld_melding.stdm},
{urlParam: "filtercode", field: "filtercode", init: ((stdm_info.kanverwijzen==128)?"M" :"O")}]
});
if (mld_melding.meldbron_key == 10 && mld_melding.kto_type == 'T')
{ // Taak/Inspectie referentielink readonly tonen.
mld.referentielink(mld_melding.kto_type, mld_melding.kto_key, L("lcl_mld_kto"));
}
else
FCLTreferentieselector("ref_key",
"sgRef",
{ label: L("lcl_reference"),
referenceKey: stdm_info.kanverwijzen? mld_melding.kto_key : -1,
referenceType: mld_melding.kto_type, // De waarde komt standaard in het extraParamField field ref_type.
excludemldkey: mld_key > 0? mld_key: null,
urlAdd: [{urlParam: "prs_key", field: (personForExist? "personFor" : "person"), init: (personForExist? mld_melding.perslid_key_voor : mld_melding.melder_key)},
{urlParam: "stdm_key", field: "stdm", init: mld_melding.stdm},
{urlParam: "filtercode", field: "filtercode", init: ((stdm_info.kanverwijzen==128)?"M" :"O")}]
});
BLOCK_END();
if (S("mld_flexcolumns") == 1)

View File

@@ -502,7 +502,6 @@ function show_fixed_faq(changed, fixed_faq)
{
var $tbl = $("#mldFaq").find("table");
var stdm = ['I', 'S', 'X'];
var alg = [null, 'X', 'L', 'G', 'V', 'R'];
var error = fixed_faq == null; // veld verkeerd of leeg 'ingevuld'
var plaatsChanged = changed >= 2 && changed <= 5;

View File

@@ -384,7 +384,7 @@ if (savemode)
return mld.referentielabel(ref_type, pval);
}
fields.push({ dbs: "mld_melding_kto_type", typ: "varchar", frm: "ref_type", track: true /* afzonderlijke tracking, wel oldjsval */ });
fields.push({ dbs: "mld_melding_kto_key", typ: "key", val: ref_key, track: L("lcl_reference"), foreign: ref_foreign });
fields.push({ dbs: "mld_melding_kto_key", typ: "key", frm: "ref_key", track: L("lcl_reference"), foreign: ref_foreign });
}
fields.push({ dbs: "mld_melding_kto", typ: "check", frm: "ktoself", track: L("lcl_mld_kto_invite") });

View File

@@ -239,9 +239,10 @@ FCLTHeader.Requires({ plugins: ["jQuery"],
if (S("mld_forward_opm_flags")>=2)
{
var note_zichtbaarFE = (mld_melding.fenotes == 1 || mld_melding.fenotes == 3 );
// De tekst in het afhandelingsveld wordt in een notitie gezet (mld_forward_opm_flags=2(niet verplicht) of 3(verplicht)).
// Geef keuze voor wel of niet zichtbaar voor FE
RWCHECKBOXTR("zichtbaarFE", "fldcheck","<nobr>" + L("lcl_mld_zichtbaar_FE") + "</nobr>", false, {html: "" });
RWCHECKBOXTR("zichtbaarFE", "fldcheck","<nobr>" + L("lcl_mld_zichtbaar_FE") + "</nobr>", note_zichtbaarFE, {html: "" });
// We houden het simpel: geen notificatie dmv 'actie bij melder zetten'.
}

View File

@@ -542,6 +542,8 @@ function mld_list (pautfunction, params)
var eTerugzet = this_mld.canTerugzet; // Terugzetten naar frontoffice
var eDoorzet = this_mld.canDoorzet; // Doorzetten naar backoffice
var eVerwerk = this_mld.canVerwerk;
var data = { eEdit: eEdit,
eReject: eReject,
eClose: eClose,
@@ -550,7 +552,8 @@ function mld_list (pautfunction, params)
eForward: eForward,
eEmptyRequiredFields: eEmptyRequiredFields,
eTerugzet: eTerugzet,
eDoorzet: eDoorzet
eDoorzet: eDoorzet,
eVerwerk: eVerwerk
};
return data;
}
@@ -945,6 +948,7 @@ function mld_list (pautfunction, params)
rst.addAction({ action: "mld_terugzet", caption: L("lcl_terugzet"), enabler: "eTerugzet", multi: !tiny, multiOnce: true } );
rst.addAction({ action: "mld_doorzet", caption: L("lcl_doorzet"), enabler: "eDoorzet", multi: !tiny, multiOnce: true } );
rst.addAction({ action: "mld_verwerk", caption: L("lcl_mld_verwerk"), enabler: "eVerwerk", multi: !tiny, multiOnce: true } );
}
var cnt = rst.processResultset();

View File

@@ -175,6 +175,22 @@ function mld_terugzet(rowArray, isMulti)
});
}
function mld_verwerk(rowArray, isMulti)
{
var mldKeyString = getKeyString(rowArray);
// Dit moet L("lcl_mld_verwerk").format(mldKeyString) worden
FcltMgr.confirm("Wilt u melding {0} verwerken?".format(mldKeyString), { autoconfirm: isMulti }, function() {
var data = {
mld_key: mldKeyString
};
protectRequest.dataToken(data);
$.post("../mld/mld_verwerken.asp",
data,
FcltCallbackRefresh,
"json");
});
}
function toggleMldFlag(evt, mld_key)
{
FcltMgr.stopPropagation(evt);

View File

@@ -67,7 +67,7 @@ for (var i = 0; i < ingesloten.length; i++)
{
var mld_melding = mld.mld_melding_info(ingesloten[i].mld_key);
ingesloten[i].canInspClose = false;
ingesloten[i].canInspFinishMjb = false;
if (mld_melding.kto_key > 0)
{
var sql = "SELECT dsc.ins_deel_key"
@@ -86,9 +86,9 @@ for (var i = 0; i < ingesloten.length; i++)
deelsrtcont_key: mld_melding.kto_key,
scen_key: 1
});
if (this_ins.canInspClose)
if (this_ins.canInspFinishMjb)
{
ingesloten[i].canInspClose = true;
ingesloten[i].canInspFinishMjb = true;
ingesloten[i].controlemode = oRs("ctr_disc_params_controle_type").Value;
ingesloten[i].ins_key = oRs("ins_deel_key").Value;
ingesloten[i].srtcont_key = oRs("ins_srtcontrole_key").Value;
@@ -151,13 +151,13 @@ for (var i = 2; i >= 0; i--)
}
var ctr_close = getFParam("ctr_close", "off") == "on";
if (ctr_close && ingesloten[i].canInspClose)
if (ctr_close && ingesloten[i].canInspFinishMjb)
{ %>
var data = { savemode: 'C',
ins_keys: <%=ingesloten[i].ins_key%>,
srtcont_key_arr: <%=ingesloten[i].srtcont_key%>,
//deelsrtcont_key wordt niet gebruikt door ins_inspect_save.asp
finish: 0,
finish: 1,
deelsrtcontrole_datum: (new Date()).getTime(),
sel_controlemode: <%=getFParamInt("sel_controlemode" + ingesloten[i].controlemode)%>
};

View File

@@ -332,7 +332,6 @@ function mld_show_kennisbank(data)
{
var $tbl = $("#mldFaq").find("table");
var stdm = ['I', 'S', 'X'];
var alg = [null, 'X', 'L', 'G', 'V', 'R'];
var changed = data.changed;
var error = data.fixed_faq == null; // veld verkeerd of leeg 'ingevuld'

View File

@@ -30,7 +30,7 @@ function mldClose(sluitmelding, ingesloten)
if (sluitmelding == 1)
{
var mld_close = (Request.Form("mld_close").count == 1); // Die ook?
var ismobile = getFParamInt("mobile", 0) == 1; // Meld ik de opdracht met mijn mobile af?
var ismobile = getFParamInt("ismobile", 0) == 1; // Meld ik de opdracht met mijn mobile af?
if (ismobile)
sluitmelding = 2; // // Via mobile afmelden nooit vragen maar gewoon melding afmelden (FSN#26329).

View File

@@ -134,9 +134,12 @@ if (self > -1)
}
}
else
{
params.mldstacc = true; // Status "Geaccepteerd(4)".
params.mldstuit = true; // Status "Uitgegeven(7)".
{ // Alle actieve meldingen tonen.
params.mldstacc = true; // Status "Geaccepteerd(4)".
params.mldstuit = true; // Status "Uitgegeven(7)".
params.mldstpen = true; // Status "Pending(0)".
params.mldstnew = true; // Status "Ingevoerd(2)".
params.mldsting = true; // Status "Ingezien(3)".
if (S("mld_restrict_mobile_to_me") == 1 && ruimte_key == -1 && ins_key == -1)
{
@@ -145,9 +148,6 @@ else
// In hun actielijst, maar als ik de meldingen op een ruimte/object wil zien,
// vind ik (PF) dat niet logisch. Daarom: alleen als ik geen context meekreeg.
params.behandel_key = user_key;
params.mldstpen = true; // Status "Pending(0)".
params.mldstnew = true; // Status "Ingevoerd(2)".
params.mldsting = true; // Status "Ingezien(3)".
}
}
autfunction = ["WEB_MLDBOF", "WEB_MLDBO2"];

View File

@@ -512,8 +512,8 @@ else
// Of de melding naast de opdracht ook gesloten moet worden,
// moet volgens configuratie settings worden bepaald, zonder extra interactie (zoals bij API (API/api_opdrsoap.asp)) (FSN#26329)
// Bij afmelden &mobile=1 meegeven, dan moet opdr_close_save.asp dit oplossen.
%><input type="hidden" name="mobile" value="1"><%
// Bij afmelden &ismobile=1 meegeven, dan moet opdr_close_save.asp dit oplossen.
%><input type="hidden" name="ismobile" value="1"><%
//
}
else

View File

@@ -398,17 +398,6 @@
"mutability": "readWrite",
"returned": "default",
"uniqueness": "server"
},
{
"name": "title",
"type": "string",
"multiValued": false,
"description": "A short descripton of the employee's job. REQUIRED.",
"required": true,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "server"
}
],
"meta": {

View File

@@ -25,9 +25,9 @@
<head>
<% FCLTHeader.Generate(); %>
<script>
function bl (url)
function bl (url, titel)
{
FcltMgr.openModalDetail(url);
FcltMgr.openModalDetail(url, { titel: titel} );
}
</script>
</head>
@@ -43,7 +43,8 @@
{
var url = "../shared/BijlagenForm.asp?module=" + module;
var proturl = protectQS.create(url);
CreateButton("{0} ({1})".format(label, module), "bl('" + safe.jsstring(proturl) + "')");
var tekst = "{0} ({1})".format(label, module);
CreateButton(tekst, "bl('" + safe.jsstring(proturl) + "', '" + safe.jsstring(tekst) + "')");
}
}

View File

@@ -534,10 +534,10 @@ function get_rel_obj_filter(stdm_key, level)
var oRs = Oracle.Execute(sql);
var rel_obj_filter = "";
var filter_table = "";
var ins_srtinst_key = oRs("ins_srtinst_key").value||-1;
if (oRs("ins_srtinst_verplicht").value == 1)
if (oRs("ins_srtinst_verplicht").value == 1 && ins_srtinst_key > -1)
{
var ins_srtinst_key = oRs("ins_srtinst_key").value;
var ins_srtinst_niveau = oRs("ins_srtinst_niveau").value;
var ins_srtdeel_keys = "";

View File

@@ -9,7 +9,7 @@
Note: Sinds 5.2.2 zitten de settings in de database
*/
var FCLTVersion="2017.2";
var FCLTVersion="2017.2a";
var FCLTMinDatabaseSchema="32";
var custpath = rooturl + "/cust/" + customerId; // path to customer files

View File

@@ -934,11 +934,17 @@ function listKenmerk(sql, module, key, props)
var filehtmlarr = [];
for (var i = 0; i < lijst.length; i++)
{
var href = HTTP.urlzelfnoroot() + protectQS.create(OpenFlexFile(module, niveau, key, kkey, lijst[i]));
// var html = '<a class="details fldflexM" data-role="button"'
// + ' href=\"' + safe.htmlattr(href) + '" target="_blank" data-ajax="false">' + safe.html(lijst[i]) + '</a>';
var html = safe.html(lijst[i]); // even niet klikbaar, in de app kun je niet terug dan.
filehtmlarr.push(html);
if (device.isapp()) // Daar vooralsnog niet clickable omdat je niet terug kunt
{
var html = safe.html(lijst[i]); // even niet klikbaar, in de app kun je niet terug dan.
}
else
{
var href = HTTP.urlzelfnoroot() + protectQS.create(OpenFlexFile(module, niveau, key, kkey, lijst[i]));
var html = '<a class="details fldflexM" data-role="button"'
+ ' href=\"' + safe.htmlattr(href) + '" target="_blank" data-ajax="false">' + safe.html(lijst[i]) + '</a>';
}
filehtmlarr.push(html);
}
var kv = filehtmlarr.join("</br>");