Merge 2017.2 RC2 patches

svn path=/Website/trunk/; revision=35607
This commit is contained in:
Jos Groot Lipman
2017-10-09 10:55:25 +00:00
62 changed files with 1734 additions and 504 deletions

View File

@@ -447,6 +447,9 @@ for (i = 0; i < meldingen.length; i++)
} // end insert
} // end geldige ext_id
if (returncode <= 0)
__DoLog("api_mldsoap fail.\nResultcode: {0}\nReturntekst: {1}".format(resultcode, returntekst), "#00FF00");
var binfo = {returncode: resultcode,
returntekst: resulttekst,
// executed:sql, // debug

View File

@@ -232,6 +232,12 @@ for (i=0; i < opdrachten.length; i++)
resulttekst = "Undefined stdmelding " + stdm_key;
}
if (isNaN(voor_key))
{
resultcode = 3;
resulttekst = "Undefined 'voor': " + voor_email;
}
// Hier heb ik een geldige stdm_key.
if (resultcode == -1) // Nog steeds geen fouten.
{ // Bepaal kostenplaats via voor-user
@@ -795,6 +801,10 @@ for (i=0; i < opdrachten.length; i++)
{
resultcode = 0; // Ik heb gedaan wat ik moest en mocht doen voor deze opdracht.
}
else
{
__DoLog("api_opdrsoap fail.\nResultcode: {0}\nReturntekst: {1}".format(resultcode, returntekst), "#00FF00");
}
var binfo = {
returncode: resultcode,

View File

@@ -82,7 +82,8 @@ var api2_mapper = {
"servicelevels" : { "filename": "appl/mgt/mld_dienstniveau.asp" },
"issuedisciplines" : { "filename": "appl/mgt/mld_discipline.asp" },
"unproductivetimes" : { "filename": "appl/mgt/mld_impropdr.asp" },
"issueproperties" : { "filename": "appl/mgt/mld_kenmerk.asp" },
"issueproperties" : { "filename": "appl/mgt/mld_mld_kenmerk.asp" },
"issueorderproperties" : { "filename": "appl/mgt/mld_kenmerk.asp" },
"expenses" : { "filename": "appl/mgt/mld_kosten.asp" },
"callsources" : { "filename": "appl/mgt/mld_meldbron.asp" },
"disciplinetypes" : { "filename": "appl/mgt/mld_srtdiscipline.asp" },

View File

@@ -284,7 +284,8 @@ api2_rest = {
var result = model["REST_" + method]( requestparams, key );
}
else if (filter.mode == "attachment" && "custom_fields" in model.includes)
{ // GET/PUT/POST https://xxxx.facilitor.nl/trunk/api2/visitors/99685/attachments/1040/testfile.jpg"
{ // GET/PUT/POST https://xxxx.facilitor.nl/api2/visitors/99685/attachments/1040/testfile.jpg" bestaande folder
// POST https://xxxx.facilitor.nl/api2/issues/0/attachments/1040/testfile.jpg" nieuw object, maakt TEMP aan
if (wasCodePage != 65001)
{
// Door de IIS rewriter is de filenaam in de url utf-8 encoded
@@ -328,8 +329,22 @@ api2_rest = {
fileStream.Open();
fileStream.Write(Request.BinaryRead(bytes));
jsondata["custom_fields"][0]["attachments"][0].datastream = fileStream;
if (key == 0) // new record
{
var token = model.includes["custom_fields"].model.REST_POST(requestparams, jsondata.custom_fields[0], -1);
var record = { xflexparentkey: -1, propertyid: jsondata.custom_fields[0].propertyid};
var fileparams = { getFiles: true, api2name: null, tmpfolder: token };
var data = model.includes["custom_fields"].model.get_file_info(requestparams, record, fileparams );
api2_rest.deliver(data, /* dummy model */ { record_name: "attachment" }, "json", true);
return;
}
else
method = "PUT"; // het moet altijd een update van een issue zijn
}
var data = model["REST_" + method](requestparams, jsondata, key);
var data = model["REST_" + method](requestparams, jsondata, key); // via het hoofdmodel met authorisatie controle en alles
if (method == "GET")
{
if (!data.length) // mogelijk not authorized op hele record
@@ -888,7 +903,7 @@ function RequestJSON()
catch (e)
{
result = { error: e.description || (e.message + ": " + e.name) };
__DoLog("JSON eval faalt met: '{0}'\n{1}".format(result, jvraag), "ffff00");
__DoLog("JSON eval faalt met: '{0}'\n{1}".format(result.error, jvraag), "ffff00");
return result ;
}
return { json: vraag };
@@ -922,7 +937,13 @@ function BytesToStr(bytes)
stream.type = 2; // Text
stream.charset = "utf-8";
var sOut = stream.readtext();
// Als onverhoopt toch windows-1252 is gestuurd met diacrieten gaf
// stream.readtext() een 'The parameter is incorrect'
// Vreemd genoeg lijkt het expliciet meegeven van een lengte dat te voorkomen.
// Die mag zelfs gewoon veel 'te lang' zijn.
// Merk op dat we windows-1252 niet ondersteunen, je moet echt utf-8 sturen
// (we hadden waarschijnlijk ook 99999999 kunnen kiezen)
var sOut = stream.readtext(stream.Size * 2);
stream.close;
return sOut;
}

View File

@@ -88,34 +88,42 @@ function model_custom_fields(formodel, flexModel, flexParams)
}
};
this.get_file_info = function (params, record, fileparams)
{
var flexparam = flexProps(flexModule, record.xflexparentkey,
String(record.propertyid), flexParams.pNiveau,
fileparams);
var attachments = [];
for (var f in flexparam.files)
{
var file = flexparam.files[f];
var attachment = { name: file.name,
date: file.date,
size: file.size,
content_url: file.deepurl,
token: file.token,
digest: file.digest };
switch (params.filter.fileencoding) // De enige twee encodings die we ondersteunen
{
case "base64":
attachment.content_base64 = file.data;
break;
case "hex":
attachment.content_hex = file.data;
break;
}
attachments.push(attachment);
};
return attachments;
}
// Deze functie wordt na de GET aangeroepen. De bijlagen zijn zo afwijkend
// dat ik dat niet fatsoenlijk in 'fields' verwerkt kreeg
this.post_get = function (params, record)
{
if (record.type == 'F' || record.type == 'M')
{
var flexparam = flexProps(flexModule, record.xflexparentkey, String(record.propertyid), flexParams.pNiveau,
{ getFiles: true, getFileEncoded: params.filter.fileencoding, api2name: formodel.records_name });
record.attachments = [];
for (var f in flexparam.files)
{
var file = flexparam.files[f];
var attachment = { name: file.name,
date: file.date,
size: file.size,
content_url: file.deepurl,
digest: file.digest };
switch (params.filter.fileencoding) // De enige twee encodings die we ondersteunen
{
case "base64":
attachment.content_base64 = file.data;
break;
case "hex":
attachment.content_hex = file.data;
break;
}
record.attachments.push(attachment);
};
var fileparams = { getFiles: true, getFileEncoded: params.filter.fileencoding, api2name: formodel.records_name };
record.attachments = this.get_file_info(params, record, fileparams);
}
delete record["xflexparentkey"]; // nu niet meer nodig
}
@@ -172,7 +180,9 @@ function model_custom_fields(formodel, flexModel, flexParams)
}
if (typ == 'F' || typ == 'M')
{
var flexparams = flexProps(this.module, parent_key, the_key, flexParams.pNiveau);
if (!(parent_key > 0))
var tmpfolder = safe.filename(shared.random(32));
var flexparams = flexProps(this.module, parent_key, the_key, flexParams.pNiveau, { tmpfolder: tmpfolder });
// TODO: bij type F zorgen dat er <20><>n file overblijft
for (var i = 0; i < jsondata.attachments.length; i++)
{
@@ -201,7 +211,7 @@ function model_custom_fields(formodel, flexModel, flexParams)
}
}
if (typ != "M")
if (typ != "M" && parent_key > 0)
{
var sql = "BEGIN flx.setflex({0}".format(safe.quoted_sql(this.module))
+ " , {0}".format(the_key) // == jsondata.propertyid
@@ -213,12 +223,13 @@ function model_custom_fields(formodel, flexModel, flexParams)
if (err.friendlyMsg)
api2.error(400, err.friendlyMsg);
}
return tmpfolder;
}
if (flexModel) // nog even niet voor MLD
this.REST_POST = function (params, jsondata, parent_key) /* add custom_field */
{ // Voor flexvelden is er geen verschil tusen 'toevoegen' en 'bijwerken'
this.REST_PUT(params, jsondata, jsondata.propertyid, parent_key);
return this.REST_PUT(params, jsondata, jsondata.propertyid, parent_key);
}
this.disabled_REST_DELETE = function (params, the_key) /* remove custom_field */

View File

@@ -68,7 +68,7 @@ function model_fac_groep(groep_key, params)
"label": L("fac_groep_nn_leden"),
"typ": "number"
}
}
};
this.includes = {
"users": {

View File

@@ -43,7 +43,8 @@ function model_ins_srtcontrole()
"typ": "varchar",
"hidden_fld": true,
"LOV": fill_niveau_LOV(),
"track": true
"track": true,
"insertonly": true
},
"objectkey": {
"dbs": "ins_srtinstallatie_key",

View File

@@ -210,6 +210,9 @@ function model_notes(module)
this.REST_POST = function (params, jsondata) /* new note */
{
params.filter.parent_key = parseInt(jsondata.parent, 10);
if (!jsondata.author)
jsondata.author = user_key;
_check_authorization(params, "POST");
//
var dbfields = api2.update_fields(params, this, jsondata); // Build updater

View File

@@ -29,7 +29,8 @@ function model_prs_afdeling()
this.fields = {
"id": {
"dbs": "prs_afdeling_key",
"typ": "key"
"typ": "key",
"seq": "prs_s_prs_afdeling_key"
},
"name": {
"dbs": "prs_afdeling_naam",
@@ -39,11 +40,10 @@ function model_prs_afdeling()
"dbs": "prs_afdeling_omschrijving",
"typ": "varchar"
},
"company": {
"dbs": "prs_afdeling_key",
"label": L("lcl_prs_company"),
"typ": "key",
"foreign": "prs_afdeling"
"externalid": {
"dbs": "prs_afdeling_externid",
"label": L("prs_afdeling_externid"),
"typ": "varchar"
},
"parent": {
"dbs": "prs_afdeling_parentkey",
@@ -52,7 +52,19 @@ function model_prs_afdeling()
"foreign": "prs_afdeling"
},
"company": {
"dbs": "pa.prs_bedrijf_key",
"dbs": "prs_bedrijf_key",
"label": L("lcl_prs_company"),
"typ": "key",
"foreign": {
"tbl": "prs_bedrijf",
"key": "prs_bedrijf_key",
"desc": "prs_bedrijf_naam",
"desc_is_unique": "prs_bedrijf_verwijder IS NULL"
}
},
"xcompany": {
"dbs": "top_prs_bedrijf_key",
"sql": "pa.prs_bedrijf_key",
"label": L("lcl_prs_company"),
"typ": "key",
"foreign": "prs_bedrijf"
@@ -64,9 +76,9 @@ function model_prs_afdeling()
"foreign": {
"tbl": "prs_kostenplaats",
"key": "prs_kostenplaats_key",
"desc": "prs_kostenplaats_nr"
},
"multiedit": true
"desc": "prs_kostenplaats_nr",
"desc_is_unique": "prs_kostenplaats_verwijder IS NULL"
}
}
};
@@ -103,11 +115,9 @@ function model_prs_afdeling()
}
this.REST_GET = generic_REST_GET(this, gparams);
// (even) nog geen updates
//this.REST_POST = generic_REST_POST(this);
//this.REST_PUT = generic_REST_PUT(this);
//this.REST_DELETE = generic_REST_DELETE(this);
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);
}
%>

View File

@@ -53,7 +53,6 @@ function model_prs_kostensoort()
"dbs": "prs_kostensoortgrp_key",
"label": L("prs_kostensoortgrp_key"),
"required": true,
//"insertonly" : true,
"typ": "key",
"foreign": bgt_costtypegroup_foreign(),
"LOVinit": "",

View File

@@ -87,6 +87,11 @@ function model_prs_perslid(params)
"label": L("lcl_prs_person_title"),
"typ": "varchar"
},
"employeenumber": {
"dbs": "prs_perslid_nr",
"label": L("lcl_prs_person_nr"),
"typ": "varchar"
},
"initials": {
"dbs": "prs_perslid_voorletters",
"label": L("lcl_prs_person_initials"),

View File

@@ -249,7 +249,13 @@ function model_res_ruimte()
"dbs": "res_ruimte_extern_id",
"label": L("res_ruimte_extern_id"),
"typ": "varchar"
}
},
"capacity": {
"dbs": "nn_config",
"sql": "(SELECT CASE MAX (res_ruimte_opstel_bezoekers) WHEN MIN (res_ruimte_opstel_bezoekers) THEN TO_CHAR(MAX (res_ruimte_opstel_bezoekers)) ELSE MIN (res_ruimte_opstel_bezoekers) || '-' || MAX (res_ruimte_opstel_bezoekers) END FROM res_ruimte_opstelling rro WHERE res_ruimte_opstel_verwijder IS NULL AND rro.res_ruimte_key = res_ruimte.res_ruimte_key GROUP BY res_ruimte_key)",
"label": L("res_ruimte_opstel_bezoekers"),
"typ": "varchar"
}
};
// veld "res_ruimte_extern_id" alleen te wijzigen met PRSSYS rechten.
@@ -268,7 +274,7 @@ function model_res_ruimte()
"joinfield": "bookingroom",
"multiadd": "bookingconfiguration",
"enable_update": true
}
}
};
// res_v_alg_ruimte_gegevens levert voor een koppelzaal meerdere records waardoor de opstelling ook meervoudig wordt weergegeven.

View File

@@ -50,8 +50,6 @@
/* Globals */
var FCLT;
// De omschrijving van de objecten in FACILITOR moet FW1, FW2 etc. zijn
var scimgroups_srtdeel_key = 258418;
function initialize(params)
{
@@ -74,7 +72,7 @@ function get_eTag(params, data)
function transform_incoming(params, data)
{
//FCLT.DEZE.__DoLog(data);
FCLT.DEZE.__DoLog(data);
var authorizationgroup =
{
name : data["displayName"],
@@ -99,6 +97,7 @@ function transform_one_group(params, authorizationgroup)
"urn:ietf:params:scim:schemas:core:2.0:Group",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:Group"
],
"members":[],
"meta":{
"created":authorizationgroup.created,
"lastModified":authorizationgroup.lastchange,
@@ -106,16 +105,16 @@ function transform_one_group(params, authorizationgroup)
"resourceType":"Group"
}
}
var allgroups = [];
if (0)
for (var j = 0; j < authorizationgroup.authorization.length; j++)
for (var j = 0; j < authorizationgroup.users.length; j++)
{
var group = authorizationgroup.authorization[j];
var unique = FCLT.DEZE.customerId + "_authorization_" + String(group.authorizationgroup.id);
onegroup.groups.push({
var user = authorizationgroup.users[j];
var unique = FCLT.DEZE.customerId + "_person_" + String(user.person.id);
onegroup.members.push({
"value":unique,
"$ref":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Groups/" + unique,
"display":group.authorizationgroup.name
"type":"User",
"$ref":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Users/" + unique,
"display":user.person.name
})
}
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");

View File

@@ -0,0 +1,168 @@
<?xml version="1.0"?>
<component>
<?component error="true" debug="true"?>
<registration
description="scimOrgunits"
progid="flexwhere.WSC"
version="1.00"
classid="{6D817B6F-9D08-4636-AAD9-8BD7C5EFF56A}"
>
</registration>
<public>
<!-- properties -->
<!-- methods -->
<method name="initialize">
<PARAMETER name="params"/>
</method>
<method name="transform_filter">
<PARAMETER name="filter"/>
</method>
<method name="transform_outgoing">
<PARAMETER name="params"/>
<PARAMETER name="data"/>
</method>
<method name="transform_incoming">
<PARAMETER name="params"/>
<PARAMETER name="data"/>
</method>
<method name="get_eTag">
<PARAMETER name="params"/>
<PARAMETER name="data"/>
</method>
</public>
<script language="javascript">
<![CDATA[
/* properties */
/* methods */
/*
/*
$Id$
File: scimorgunits.wsc
*/
/* Globals */
var FCLT;
// De omschrijving van de objecten in FACILITOR moet FW1, FW2 etc. zijn
var scimgroups_srtdeel_key = 258418;
function initialize(params)
{
FCLT = params;
}
function transform_filter(filter)
{
if ("count" in filter)
filter.limit = filter.count;
return filter;
}
function get_eTag(params, data)
{
if (data && typeof data == "object" && "meta" in data)
return data.meta.version;
return null;
}
function transform_incoming(params, data)
{
FCLT.DEZE.__DoLog(data);
var department =
{
id : data["id"],
externalid : data["externalId"],
description: data["code"],
name : data["externalId"],
costcentre : { name: data["costCenter"] }, // id mag achterwege blijven omdat desc_is_unique
company : { name: "Schiphol Group" }
};
var sql = "SELECT prs_kostenplaats_key FROM prs_kostenplaats "
+ "WHERE prs_kostenplaats_verwijder IS NULL "
+ " AND prs_kostenplaats_nr = " + FCLT.DEZE.safe.quoted_sql(department.costcentre.name);
var oRs = FCLT.DEZE.Oracle.Execute(sql);
if (oRs.eof)
{
sql = "INSERT INTO prs_kostenplaats (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module) "
+ "VALUES (" + FCLT.DEZE.safe.quoted_sql(department.costcentre.name) + "," + FCLT.DEZE.safe.quoted_sql(department.costcentre.name) + ",'PRS')";
FCLT.DEZE.__DoLog(sql);
FCLT.DEZE.Oracle.Execute(sql);
}
oRs.Close();
FCLT.DEZE.__DoLog(department);
return { department: department };
}
function transform_one_department(params, department)
{
FCLT.DEZE.__Log(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:core:2.0:OrgUnits",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:OrgUnits"
],
"meta":{
"created":department.created,
"lastModified":department.lastchange,
"location":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/OrgUnits/" + unique,
"resourceType":"OrgUnits"
}
}
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var eTag = '"' + oCrypto.hex_sha1(FCLT.DEZE.JSON.stringify(onedepartment)).toLowerCase() + '"';
onedepartment.meta["version"] = "W/" + eTag; // Weak eTag?
return onedepartment;
}
function transform_outgoing(params, data)
{
if ("department" in data)
{
var onedepartment = transform_one_department(params, data.department);
return onedepartment;
}
if ("departments" in data)
{
var alldepartments = [];
for (var i = 0; i < data.departments.length; i++)
{
if (params.limit && alldepartments.length > params.limit)
break;
var department = data.departments[i];
alldepartments.push(transform_one_department(params, department));
}
return {
"totalResults": alldepartments.length,
"itemsPerPage": 10,
"startIndex": 1,
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"Resources": alldepartments
};
}
}
]]>
</script>
</component>

View File

@@ -76,24 +76,40 @@ function get_eTag(params, data)
// Als het object aan staat wordt de id opgeleverd, anders -id
function transform_incoming(params, data)
{
//FCLT.DEZE.__DoLog(data);
FCLT.DEZE.__DoLog(data);
var extension = data["urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"];
var person =
{
login : data["userName"],
externallogin: data["userName"],
externalid : data["externalId"],
name : data["name"]["displayName"],
// name : data["name"]["displayName"],
initials : data["userFacilitor"]["initials"],
lastname : data["name"]["familyName"],
middlename : data["name"]["middleName"],
firstname : data["name"]["givenName"],
deactivated : data["active"]?null:new Date()
deactivated : data["active"]?null:new Date(),
employeenumber : extension["employeeNumber"]
};
if (data["userName"] == undefined) person.login = "";
if (data["userFacilitor"]["initials"] == undefined) person.initials = "";
if (data["name"]["middleName"] == undefined) person.middlename = "";
if (data["name"]["givenName"] == undefined) person.firstname = "";
if (extension["employeeNumber"] == undefined) person.employeenumber = "";
var dep_id = data["orgUnit"]["id"].replace (FCLT.DEZE.customerId + "_department_", "");
person["department"] = { id: dep_id };
person["function"] = { name: data["title"] } // id mag achterwege blijven omdat desc_is_unique
if (data["emails"].length)
if (data["emails"])
{
person.email = data["emails"][0].value; // type:work/primary:true opzoeken ?
}
if (data["phoneNumbers"].length)
if (data["phoneNumbers"])
{
person.mobile = data["phoneNumbers"][0].value; // type:mobile/primary:true opzoeken ?
}
@@ -112,10 +128,14 @@ function transform_one_person(params, person)
"userName":person.externallogin || person.login,
"externalId":person.externalid,
"id":unique,
"userFacilitor":{
"initials":person.initials
},
"name":{
"formatted":person.name,
"familyName":person.lastname,
"givenName":person.firstname
"givenName":person.firstname,
"middleName":person.middlename
},
"schemas":[
"urn:ietf:params:scim:schemas:core:2.0:User",
@@ -144,7 +164,17 @@ function transform_one_person(params, person)
"primary":true
}
],
"groups":[]
"orgunit":
{
"id":FCLT.DEZE.customerId + "_department_" + String(person.department.id),
"$ref":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/OrgUnits/" + FCLT.DEZE.customerId + "_department_" + String(person.department.id)
}
,
"groups":[],
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" :
{
"employeeNumber":person.employeenumber
}
}
var allgroups = [];
for (var j = 0; j < person.authorization.length; j++)
@@ -177,7 +207,11 @@ function transform_outgoing(params, data)
if (params.limit && allusers.length > params.limit)
break;
var person = data.persons[i];
allusers.push(transform_one_person(params, person));
if (person.login && person.login.indexOf('_') != 0)
{
// _ users are not part of the interface.
allusers.push(transform_one_person(params, person));
}
}
return {

View File

@@ -56,12 +56,12 @@
<rule name="SCIMGroup" stopProcessing="true">
<match url="^appl/SCIM/Groups/.*_authorizationgroup_(\d+)" />
<action type="Rewrite" url="default.asp?api2=authorizationgroups&amp;id={R:1}&amp;format=json&amp;plugin=scimgroups&amp;include=lastchange,authorization" appendQueryString="true" />
<action type="Rewrite" url="default.asp?api2=authorizationgroups&amp;id={R:1}&amp;format=json&amp;plugin=scimgroups&amp;include=users" appendQueryString="true" />
</rule>
<rule name="SCIMGroups" stopProcessing="true">
<match url="^appl/SCIM/Groups" />
<action type="Rewrite" url="default.asp?api2=authorizationgroups&amp;format=json&amp;plugin=scimgroups&amp;include=lastchange,authorization" appendQueryString="true" />
<action type="Rewrite" url="default.asp?api2=authorizationgroups&amp;format=json&amp;plugin=scimgroups&amp;include=users" appendQueryString="true" />
</rule>
<rule name="SCIMOrgunit" stopProcessing="true">

View File

@@ -34,8 +34,8 @@ if (finnum && finnum != -1)
{
params.finnum = finnum;
// Als er een factuurnummer is meegegeven dan wel reageren op deze vinkjes
params.fin_actual = (getQParam("fin_actual", "off") == "on"); // Actuele facturen
params.fin_deleted = (getQParam("fin_deleted", "off") == "on"); // Verwijderde facturen
params.fin_actual = (getQParam("fin_actual", 0) == 1); // Actuele facturen
params.fin_deleted = (getQParam("fin_deleted", 0) == 1); // Verwijderde facturen
}
else
{ // Voor velden die de user in kan typen valideren we zodanig dat we er tegen kunnen

View File

@@ -581,6 +581,7 @@ ins = {checkAutLevel:
+ " , insp.vervaldatum"
+ " , insp.isc_mode"
+ " , insp.ctr_discipline_key"
+ " , insp.ctr_ismjob"
+ " , options"
// Moment inspectie pas kunnen opslaan op of na geplande inspectiedatum.
// Is in de moment modus de invoer na het volgende berekende inspectietijdstip? Voor interval modus is dit altijd het geval.
@@ -685,6 +686,7 @@ ins = {checkAutLevel:
+ " , xcp.ins_srtcontrole_periode"
+ " , xcp.ins_deel_aanmaak"
+ " , xcp.ctr_controle_type"
+ " , xcp.ctr_ismjob"
+ " , idsc.ins_deelsrtcontrole_plandatum plandatum"
+ " , ins_srtcontroledl_xcp_startdat"
+ " , CASE"
@@ -737,6 +739,7 @@ ins = {checkAutLevel:
var ins_deelsrtcontrole_status = oRs("ins_deelsrtcontrole_status").Value != null? oRs("ins_deelsrtcontrole_status").Value : -1;
var vervaldatum = oRs("vervaldatum").Value != null? new Date(oRs("vervaldatum").Value) : null;
var ctr_discipline_key = oRs("ctr_discipline_key").Value;
var ctr_ismjob = oRs("ctr_ismjob").Value == 1;
var isc_options = oRs("options").Value;
var vervallen = vervaldatum != null && vervaldatum < new Date();
var invoerAfterNext = oRs("invoerAfterNext").Value == 1;
@@ -780,7 +783,7 @@ ins = {checkAutLevel:
(ins_deelsrtcontrole_status <= 0 || ins_deelsrtcontrole_status == 6) &&
actief && iresult.hasCTRWrite &&
!isScenario;
iresult.canInspStart = iresult.canInspStartReq && ((isc_options & 2) == 2);
iresult.canInspStart = iresult.canInspStartReq && ((isc_options & 2) == 2) && !ctr_ismjob;
// Bevriezen gebeurt altijd voor het kalenderjaar S("mjb_freeze_year").
// Dan is er voor het freeze kalenderjaar een bedrag ingevuld.
// Mocht het bedrag 0 zijn, dan moet er tijdens heb bevriezen een lcl aan de opmerking worden toegevoegd, dat de taak door een hogere prio taak wordt uitgevoerd.

View File

@@ -87,6 +87,7 @@ if (srtcont_key_arr.length > 0)
var vervaldatum = oRs("vervaldatum").Value != null? new Date(oRs("vervaldatum").Value) : null;
var vervallen = vervaldatum != null && vervaldatum < new Date();
var kosten = oRs("bedrag").Value;
oRs.Close();
if (ins_deelsrtcontrole_status != -1 && ins_deelsrtcontrole_status != 6)
dlsrtcont_key = ins_deelsrtcontrole_key;
@@ -119,9 +120,10 @@ for (var i = 0; i < ingesloten.length; i++)
if (ingesloten[i].inspectiestatus > -1)
{ // Bereken de volgende inspectiedatum.
// Alleen Active Situatie (AS) soort controle's kunnen gestart worden dus voor scenario key moet "null" genomen worden.
sql = "SELECT ins.nextcyclusdate (" + ingesloten[i].ins_key + ", " + ingesloten[i].srtcont_key + ", 1, 1) nextdate FROM DUAL"
oRs = Oracle.Execute(sql);
var sql = "SELECT ins.nextcyclusdate (" + ingesloten[i].ins_key + ", " + ingesloten[i].srtcont_key + ", 1, 1) nextdate FROM DUAL"
var oRs = Oracle.Execute(sql);
nextdate = new Date(oRs("nextdate").Value);
oRs.Close();
}
//else Er zijn nog geen inspecties geweest voor dit object. Dit wordt de eerste inspectie.
// Volgende inspectiedatum kun je niet berekenen en is dus onbekend (leeg)
@@ -237,6 +239,7 @@ for (var i = 0; i < ingesloten.length; i++)
+ " ) insp";
var oRs = Oracle.Execute(sql);
var has_higherprio = !oRs.eof && oRs("isFreezeYear").Value == 1; // Is er een hoger prio soort controle in het freeze jaar?
oRs.Close();
fields.push( { dbs: "ins_deelsrtcontrole_freezecost", typ: "float", val: (has_higherprio? 0 : ingesloten[i].kosten) } );
fields.push( { dbs: "ins_deelsrtcontrole_freezedate", typ: "datetime", val: new Date(new Date().setFullYear(mjb_freeze_year)) } );
@@ -254,34 +257,41 @@ for (var i = 0; i < ingesloten.length; i++)
result.success = false;
}
// TODO: Melding aanmaken bij bevriezen van taak als setting op internal staat.
//if (false && S("mjb_operation_external") == 0) // Operational handling mjob {0=internal (default) | 1=external}.
if (S("mjb_operation_external") == 0) // Operational handling mjob {0=internal (default) | 1=external}.
// Melding aanmaken bij bevriezen van taak als setting op internal staat.
var sql = "SELECT di.ctr_ismjob"
+ " FROM ins_v_defined_inspect di"
+ " WHERE di.ins_deel_key = " + ingesloten[i].ins_key
+ " AND di.ins_srtcontrole_key = " + ingesloten[i].srtcont_key;
var oRs = Oracle.Execute(sql);
var ismjob = oRs("ctr_ismjob").Value == 1;
if (freeze && ismjob && S("mjb_operation_external") == 0) // Operational handling mjob {0=internal (default) | 1=external}.
{ // Melding aanmaken bij bevriezing.
// De setting "mjb_default_stdmelding" moet gevuld zijn met een geldige waarde. Daar gaan we van uit.
var sql = "SELECT COALESCE(di.mld_stdmelding_key, fac.safe_To_Number(fac.getsetting ('mjb_default_stdmelding'))) default_stdmelding"
+ " FROM ins_deelsrtcontrole idsc"
+ " , ins_srtcontrole isc"
+ " , ins_tab_discipline itd"
+ " , ins_v_defined_inspect di"
+ " WHERE idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key"
+ " AND idsc.ins_scenario_key = isc.ins_scenario_key"
+ " AND isc.ctr_discipline_key = itd.ins_discipline_key"
+ " AND isc.ins_srtcontrole_key = di.ins_srtcontrole_key"
+ " AND idsc.ins_deel_key = di.ins_deel_key"
+ " AND idsc.ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key;
var oRs = Oracle.Execute(sql);
sql = "SELECT COALESCE(di.mld_stdmelding_key, fac.safe_To_Number(fac.getsetting ('mjb_default_stdmelding'))) default_stdmelding"
+ " , di.ctr_ismjob"
+ " FROM ins_deelsrtcontrole idsc"
+ " , ins_srtcontrole isc"
+ " , ins_tab_discipline itd"
+ " , ins_v_defined_inspect di"
+ " WHERE idsc.ins_srtcontrole_key = isc.ins_srtcontrole_key"
+ " AND idsc.ins_scenario_key = isc.ins_scenario_key"
+ " AND isc.ctr_discipline_key = itd.ins_discipline_key"
+ " AND isc.ins_srtcontrole_key = di.ins_srtcontrole_key"
+ " AND idsc.ins_deel_key = di.ins_deel_key"
+ " AND idsc.ins_deelsrtcontrole_key = " + ingesloten[i].dlsrtcont_key;
oRs = Oracle.Execute(sql);
var default_stdmelding = oRs("default_stdmelding").Value;
var stdm_info = mld.mld_stdmeldinginfo(default_stdmelding);
var sql = "SELECT alg_locatie_key,"
+ " alg_gebouw_key,"
+ " alg_verdieping_key,"
+ " alg_ruimte_key"
+ " FROM ins_deel isd, alg_v_allonroerendgoed alg"
+ " WHERE ins_deel_key = " + ingesloten[i].ins_key
+ " AND alg_onroerendgoed_keys = isd.ins_alg_ruimte_key"
+ " AND isd.ins_alg_ruimte_type = 'R'"
sql = "SELECT alg_locatie_key,"
+ " alg_gebouw_key,"
+ " alg_verdieping_key,"
+ " alg_ruimte_key"
+ " FROM ins_deel isd, alg_v_allonroerendgoed alg"
+ " WHERE ins_deel_key = " + ingesloten[i].ins_key
+ " AND alg_onroerendgoed_keys = isd.ins_alg_ruimte_key"
+ " AND isd.ins_alg_ruimte_type = 'R'"
oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
@@ -308,6 +318,7 @@ for (var i = 0; i < ingesloten.length; i++)
meldbron: 10};
var issues_array = issues.REST_POST(params, jsondata);
}
oRs.Close();
}
// Nu nog de status zetten, tracking genereren en notificaties sturen.

View File

@@ -0,0 +1,44 @@
<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: mld_mld_kenmerk.asp
Description: Aanroep van model_mld_kenmerk voor meldingen
Context:
Notes: LET OP: alleen gebruikt voor api2 opvragen melding kenmerken
*Bewerken* van gaat nog via
eigen schermen via MLD\mld_kenmerk.asp
*/
%>
<!-- #include file="../scf/scaffolding.inc" -->
<!-- #include file="../mgt/mgt_tools.inc" -->
<!-- #include file="../api2/model_mld_kenmerk.inc" -->
<%
var this_model = new model_mld_kenmerk('M');
scaffolding(this_model,
{
"search": {
"autosearch": true,
"filters": [
"issuepropertytype",
"ordertype"
]
},
"list": {
"columns": [
"id",
"issuepropertytype",
"ordertype",
"sequence",
"group",
"required"
]
},
"print": {}
});
%>

View File

@@ -38,10 +38,7 @@ var model_params = {
"budgetproject",
"budgetcostcategory",
"costtypegroup"
],
"requires": {
"js": ["../bgt/bgt_budget.js"]
}
]
},
"list": {
"columns": [
@@ -50,16 +47,19 @@ var model_params = {
"remark",
"altcode"
]
},
"edit": {
"requires": {
"js": ["../bgt/bgt_budget.js"]
}
}
};
if (S("bgt_enabled"))
{
model_params.search.requires = {
"js": ["../bgt/bgt_budget.js"]
};
model_params.edit = {
"requires": {
"js": ["../bgt/bgt_budget.js"]
}
};
model_params.wrap = {
"no_default_frames": true,
"frames": [ { url: "../bgt/bgt_budget.asp?mode=list&costtype={0}" } ]

View File

@@ -2403,6 +2403,7 @@ mld = {setmeldingstatus:
+ " , t.mld_typeopdr_typeopdr_key"
+ " , t.mld_typeopdr_contract"
+ " , t.mld_typeopdr_kosten_verplicht"
+ " , t.mld_typeopdr_fvs"
+ " FROM mld_typeopdr t"
+ " WHERE t.mld_typeopdr_key = " + opdr_type;
oRs = Oracle.Execute(sql);
@@ -2417,6 +2418,7 @@ mld = {setmeldingstatus:
result.typeopdr_typeopdr_key = oRs("mld_typeopdr_typeopdr_key").Value; // De mld_typeopdr_key voor vervolgopdracht (indien dit een offerte was)
result.typeopdr_contract = oRs("mld_typeopdr_contract").Value;
result.typeopdr_kosten_verplicht = oRs("mld_typeopdr_kosten_verplicht").Value || 0; // Opdracht kosten verplicht (bitwise) bij (0 = niet verplicht, 1 = save + 2 = afmelden, 4 = afronden).
result.typeopdr_fvs = oRs("mld_typeopdr_fvs").Value;
if (copy)
{

View File

@@ -22,6 +22,7 @@ if (mld_key_arr.length)
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../ins/ins.inc" -->
<!-- #include file="mld.inc" -->
<%
// LET OP: Het eerste stuk komt (nog) letterlijk ook zo terug bij mld_close_save.asp
@@ -109,9 +110,50 @@ user.anything_todo_or_abort(!reqStatusEmptyMelding.length, reqStatusEmptyMelding
user.auth_required_or_abort(!(mld_key_arr.length == 1 && futureOpdr), L("lcl_mld_einddatum_to_late_mld")); // Bij enkele melding met toekomstige opdrachten een aparte melding geven
user.anything_todo_or_abort(tobeclosed > 0); // We klagen niet over enkele wel en enkele niet
var mld_melding = mld.mld_melding_info(ingesloten[0]); // Neem voor informatie de eerste melding.
lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
var canCloseCtr = [];
var srtContKeyArray = [];
var controleModeArray = [-1, -1, -1]; // De drie controlemoden zijn niet aanwezig (-1);
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)
{
var sql = "SELECT dsc.ins_deel_key"
+ " , dsc.ins_srtcontrole_key"
+ " , ctr_disc_params_controle_type"
+ " FROM ins_deelsrtcontrole dsc"
+ " , ins_srtcontrole isc"
+ " , ctr_disc_params cdp"
+ " WHERE dsc.ins_srtcontrole_key = isc.ins_srtcontrole_key"
+ " AND isc.ctr_discipline_key = cdp.ctr_ins_discipline_key"
+ " AND dsc.ins_deelsrtcontrole_key = " + mld_melding.kto_key;
var oRs = Oracle.Execute(sql);
// De controle moet aanwezig zijn.
var this_ins = ins.func_enabled_deel(oRs("ins_deel_key").Value,
{srtcont_key: oRs("ins_srtcontrole_key").Value,
deelsrtcont_key: mld_melding.kto_key,
scen_key: 1
});
if (this_ins.canInspClose)
{
canCloseCtr.push({ ins_key: oRs("ins_deel_key").Value,
srtcont_key: oRs("ins_srtcontrole_key").Value,
deelsrtcont_key: mld_melding.kto_key,
controlemode: oRs("ctr_disc_params_controle_type").Value
});
srtContKeyArray.push(oRs("ins_srtcontrole_key").Value);
controleModeArray[oRs("ctr_disc_params_controle_type").Value - 1] = oRs("ctr_disc_params_controle_type").Value; // Controlemode 2 op de 2de plek van de Array invullen [-1, 2, -1].
}
}
}
// De -1 waarden in de controlemode Array verwijderen
for (var i = 2; i >= 0; i--)
{
if (controleModeArray[i] == -1) controleModeArray.splice(i, 1);
}
%>
<html>
<head>
@@ -129,12 +171,43 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
FcltMgr.closeDetail(window, { cancel: true } );
}
function mld_close_callback(json, textStatus)
{
if (json.success)
{
if ($("#ctr_close").is(":checked"))
{
<% for (var i = 0; i < canCloseCtr.length; i++)
{ %>
var data = { savemode: 'C',
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,
deelsrtcontrole_datum: (new Date()).getTime(),
sel_controlemode: $("#sel_controlemode" + <%=canCloseCtr[i].controlemode%>).val()
};
protectRequest.dataToken(data);
$.ajax({ type: "POST",
url: "../ins/ins_inspect_save.asp",
data: data,
//success: FcltCallbackClose,
datatype: "json",
async: false
});
<% } %>
}
FcltCallbackClose(json);
}
}
function mld_close(close)
{
if (!validateForm("u2"))
return false;
$.post($("form[name=closeform]")[0].action, $("[name=closeform]").serialize(), FcltCallbackClose, "json");
$.post($("form[name=closeform]")[0].action, $("[name=closeform]").serialize(), mld_close_callback, "json");
return true; // disable button
}
@@ -155,6 +228,28 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
}
}
function ctrcloseToggler(deze)
{
var ctrclose = $(deze).prop('checked');
if (ctrclose)
{
<% for (var i = 0; i < controleModeArray.length; i++)
{ %>
$("#sel_controlemode" + <%=controleModeArray[i]%>).addClass("required");
<% } %>
$("#inscontrolemode").show();
FcltMgr.resized(window);
}
else
{
$("#inscontrolemode").hide();
<% for (var i = 0; i < controleModeArray.length; i++)
{ %>
$("#sel_controlemode" + <%=controleModeArray[i]%>).removeClass("required");
<% } %>
}
}
FcltMgr.fixActiveelementError();
$(document).ready(function() {
$("#opmerk").focus();
@@ -271,13 +366,58 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
RWTEXTAREATR("opmerk", "fldremark" + (req?" required":""), "", "", { tdhtml_ta: "colspan='2'", html: "rows='8'" });
if (canCloseOpdr.length)
{
%><tr><td colspan="2">
<% CHECKBOX("fldopdrclose", "opdr_close", S("mld_close_opdr_default")); %>
<label for="opdr_close"><%=canCloseOpdr.length + L("lcl_mld_ord_close_all")%></label>
</td></tr>
<%
}
{ %>
<tr>
<td colspan="2">
<% CHECKBOX("fldopdrclose", "opdr_close", S("mld_close_opdr_default")); %>
<label for="opdr_close"><%=canCloseOpdr.length + L("lcl_mld_ord_close_all")%></label>
</td>
</tr>
<% }
if (canCloseCtr.length)
{ %>
<tr>
<td colspan="2">
<% CHECKBOX("fldctrclose", "ctr_close", 0, { html: "onChange='ctrcloseToggler(this)'" }); %>
<label for="ctr_close"><%=canCloseCtr.length + L("lcl_mld_ctr_close_all")%></label>
</td>
</tr>
<tr>
<td colspan="2">
<div id="inscontrolemode" style="display: none">
<table>
<% for (var i = 0; i < controleModeArray.length; i++)
{ // Maximaal 3 types.
var sctype;
switch (controleModeArray[i])
{
case 1: sctype = L("lcl_ins_srtcontrole_insp"); break;
case 2: sctype = L("lcl_ins_srtcontrole_repl"); break;
case 3: sctype = L("lcl_ins_srtcontrole_cert"); break;
}
sql = "SELECT ins_controlemode_key"
+ " , " + lcl.xsqla('ins_controlemode_oms', 'ins_controlemode_key')
+ " FROM ins_controlemode"
+ " WHERE ins_srtcontrole_type = " + controleModeArray[i]
+ " AND ins_controlemode_success = 1"
+ " ORDER BY 2";
// Methode is voor de status Afgemeld(5) en Historie/Verwerkt(6) altijd ingevuld.
// Required wordt gezet als de selectbox zichtbaar wordt.
FCLTselector("sel_controlemode" + controleModeArray[i],
sql,
{ label: L("lcl_ins_controle_mode") + " " + sctype,
initKey: -1,
emptyOption: L("lcl_select_controlemode"),
selectjustone: true
});
}
%> </table>
</div>
</td>
</tr>
<% }
BLOCK_END();
buttons = [];
if (has_opdr_opm)

View File

@@ -997,6 +997,16 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
ROFIELDTR("fld", L("lcl_mld_meldbron"), oRs("mld_meldbron_omschrijving").Value);
oRs.close();
if (mld_melding.meldbron_key == 10 && mld_melding.kto_type == 'T')
{
sql = "SELECT dsc.ins_deelsrtcontrole_freezecost"
+ " FROM ins_deelsrtcontrole dsc"
+ " WHERE dsc.ins_deelsrtcontrole_key = " + mld_melding.kto_key;
oRs = Oracle.Execute(sql);
// De controle moet aanwezig zijn.
ROFIELDTR("fld", L("lcl_mld_frozen_costs") + "&nbsp;" + L("lcl_valutasign"), oRs("ins_deelsrtcontrole_freezecost").Value, {suppressEmpty: true});
oRs.close();
}
}
ROFIELDTR("fld", L("lcl_mld_meldbron_nr"), mld_melding.meldbron_nr, {suppressEmpty: true});
@@ -1119,25 +1129,25 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
gen_flex(2); // dan hier....
var buttons = [];
if (S("mld_edit_search_similar") && (backo || fronto))
{
var goegel = "FcltMgr.openDetail('/appl/mld/mld_search.asp?urole=" + urole + "&chkSelf=1&chkBusy=1&autosearch=1&opl=1";
if (S("mld_edit_search_similar") & 1) // Omschrijving
goegel += "&searchtekst='+escape($('#melding_omschrijving').val())+'";
if (S("mld_edit_search_similar") & 2) // Locatie
goegel += "&locatie_key='" + "+($('#locatiekey').val()||-1)+" + "'";
/* Future additions:
if (S("mld_edit_search_similar") & 3) // XXX1
goegel += "&XXX1=" + mld_melding.XXX1;
if (S("mld_edit_search_similar") & 4) // XXX2
goegel += "&XXX2=" + mld_melding.XXX2;
*/
goegel += "&disc=-1', '', '" + L("lcl_mld_similarcalls") + "') ";
if (lBestaandeMelding && (this_mld.canBOwrite || this_mld.canFOwrite))
buttons.push({ icon: "lightbulb.png", title: L("lcl_mld_similarcalls"), action: goegel});
}

View File

@@ -361,15 +361,14 @@ var copyconfirm = getQParamInt("copyconfirm", 0) == 1;
IFRAMER("mlduitvoeren", page, { refreshOnClose: true, initHide: true });
}
var sql = "SELECT fin_factuur_key FROM fin_factuur WHERE mld_opdr_key = " + opdr_key;
oRs = Oracle.Execute(sql);
if (!oRs.eof)
this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
if (this_opdr.canListFactuur)
{
page = "../fin/fin_list.asp?opdr_key=" + opdr_key + "&embedded=1";
IFRAMER("finFrame", page, { title: L("lcl_fin_invoices_frame") , initHide: true, refreshOnClose: true });
page = "../fin/fin_list.asp?opdr_key=" + opdr_key + "&embedded=1";
IFRAMER("finFrame", page, { title: L("lcl_fin_invoices_frame") , initHide: true, refreshOnClose: true });
}
this_opdr = mld.func_enabled_opdracht(opdr_key); // wat mag ik zoal op deze opdracht
if (opdr_key > -1)
{
if (S("mld_note_mode") == 2) // new style

View File

@@ -16,6 +16,7 @@
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/stdmeldingselector.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../ins/ins.inc" -->
<!-- #include file="mld.inc" -->
<%
@@ -27,7 +28,7 @@ var opmerk = getFParam("opmerk", "");
var result = {};
var toberejected = 0;
var ingesloten = [];
var ingesloten = []; // mld_key.
var reqStatusEmptyMelding = [];
// Bepaal de meldingen in de selectie die
// ook echt afgewezen kunnen of mogen worden.
@@ -38,7 +39,7 @@ for (var i = 0; i < mld_key_arr.length; i++)
lcl.set_dialect(mld_info.srtdisc, "MLD_SRTDISCIPLINE_KEY");
if (this_mld.canReject && !mld_info.parent_key) // Geen child melding
{
ingesloten.push(mld_key_arr[i]);
ingesloten.push({ mld_key: mld_key_arr[i] });
toberejected++;
}
// Zijn er nog kenmerken die nu wel verplicht zijn?
@@ -52,6 +53,57 @@ for (var i = 0; i < mld_key_arr.length; i++)
// De laatst gebruikte set_dialect uit de for-lus geldt nu voor de onderstaande code.
user.anything_todo_or_abort(!reqStatusEmptyMelding.length, reqStatusEmptyMelding.join("<br />"));
user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel en enkele niet
var mldKeyArray = "";
for (var i = 0; i < ingesloten.length; i++)
{
mldKeyArray += (i > 0? "," : "") + ingesloten[i].mld_key;
}
var canCloseCtr = 0;
var srtContKeyArray = [];
var controleModeArray = [-1, -1, -1]; // De drie controlemoden zijn niet aanwezig (-1);
for (var i = 0; i < ingesloten.length; i++)
{
var mld_melding = mld.mld_melding_info(ingesloten[i].mld_key);
ingesloten[i].canInspClose = false;
if (mld_melding.kto_key > 0)
{
var sql = "SELECT dsc.ins_deel_key"
+ " , dsc.ins_srtcontrole_key"
+ " , ctr_disc_params_controle_type"
+ " FROM ins_deelsrtcontrole dsc"
+ " , ins_srtcontrole isc"
+ " , ctr_disc_params cdp"
+ " WHERE dsc.ins_srtcontrole_key = isc.ins_srtcontrole_key"
+ " AND isc.ctr_discipline_key = cdp.ctr_ins_discipline_key"
+ " AND dsc.ins_deelsrtcontrole_key = " + mld_melding.kto_key;
var oRs = Oracle.Execute(sql);
// De controle moet aanwezig zijn.
var this_ins = ins.func_enabled_deel(oRs("ins_deel_key").Value,
{srtcont_key: oRs("ins_srtcontrole_key").Value,
deelsrtcont_key: mld_melding.kto_key,
scen_key: 1
});
if (this_ins.canInspClose)
{
ingesloten[i].canInspClose = 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;
canCloseCtr++;
srtContKeyArray.push(oRs("ins_srtcontrole_key").Value);
controleModeArray[oRs("ctr_disc_params_controle_type").Value - 1] = oRs("ctr_disc_params_controle_type").Value; // Controlemode 2 op de 2de plek van de Array invullen [-1, 2, -1].
}
}
}
// De -1 waarden in de controlemode Array verwijderen
for (var i = 2; i >= 0; i--)
{
if (controleModeArray[i] == -1) controleModeArray.splice(i, 1);
}
%>
<html>
@@ -60,52 +112,76 @@ user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel
<% if (submitting && opmerk != "")
{ // Handle workflow actions for rejection:
var notaccepted = 0;
for (var i = 0; i < ingesloten.length; i++)
{
mld.nextworkflowstep(ingesloten[i], 0); // 0 = rejected
sql = "SELECT mm.mld_melding_opmerking"
+ " FROM mld_melding mm"
+ " WHERE mld_melding_key = " + ingesloten[i];
oRs = Oracle.Execute(sql);
var new_opm = (oRs("mld_melding_opmerking").value||""); // + "\n" + opmerk;
new_opm = new_opm + ((new_opm + opmerk) != "" ? "\n" : "") + opmerk; // alleen een CR als er al iets staat EN er iets wordt toegevoegd.
oRs.Close();
var fields = [ { dbs: "mld_melding_opmerking", typ: "varchar", val: new_opm, track: L("lcl_mld_inf_Opmerking"), len: 4000 }
];
var mldUpd = buildTrackingUpdate("mld_melding", " mld_melding_key = " + ingesloten[i], fields);
oRs = Oracle.Execute(mldUpd.sql);
if (mldUpd.trackarray.length)
mld.trackmeldingupdate(ingesloten[i], L("lcl_mld_is_mldupd") + "\n" + mldUpd.trackarray.join("\n"));
// Zetten van de status op afgewezen en afhandelen van de tracking.
mld.setmeldingstatus(ingesloten[i], 1); // afgewezen
// check (zat er al in)
// TODO: Het afwijzen gaat niet altijd goed. Wat is de reden daartoe? Status wordt in enkele gevallen niet op 1 gezet door mld.setmeldingstatus?
sql = "SELECT ''"
+ " FROM mld_melding"
+ " WHERE mld_melding_key = " + ingesloten[i]
+ " AND mld_melding_status = 1";
oRs = Oracle.Execute(sql);
if (oRs.eof)
{
notaccepted++;
}
}
var success = true;
var warning = ""
if (notaccepted == ingesloten.length)
var warning = L("lcl_mld_reject_failed");
%>
<script type="text/javascript">
<% var notaccepted = 0;
for (var i = 0; i < ingesloten.length; i++)
{
mld.nextworkflowstep(ingesloten[i].mld_key, 0); // 0 = rejected
sql = "SELECT mm.mld_melding_opmerking"
+ " FROM mld_melding mm"
+ " WHERE mld_melding_key = " + ingesloten[i].mld_key;
oRs = Oracle.Execute(sql);
var new_opm = (oRs("mld_melding_opmerking").value||""); // + "\n" + opmerk;
new_opm = new_opm + ((new_opm + opmerk) != "" ? "\n" : "") + opmerk; // alleen een CR als er al iets staat EN er iets wordt toegevoegd.
oRs.Close();
var fields = [ { dbs: "mld_melding_opmerking", typ: "varchar", val: new_opm, track: L("lcl_mld_inf_Opmerking"), len: 4000 }
];
var mldUpd = buildTrackingUpdate("mld_melding", " mld_melding_key = " + ingesloten[i].mld_key, fields);
oRs = Oracle.Execute(mldUpd.sql);
if (mldUpd.trackarray.length)
mld.trackmeldingupdate(ingesloten[i].mld_key, L("lcl_mld_is_mldupd") + "\n" + mldUpd.trackarray.join("\n"));
// Zetten van de status op afgewezen en afhandelen van de tracking.
mld.setmeldingstatus(ingesloten[i].mld_key, 1); // afgewezen
// check (zat er al in)
// TODO: Het afwijzen gaat niet altijd goed. Wat is de reden daartoe? Status wordt in enkele gevallen niet op 1 gezet door mld.setmeldingstatus?
sql = "SELECT ''"
+ " FROM mld_melding"
+ " WHERE mld_melding_key = " + ingesloten[i].mld_key
+ " AND mld_melding_status = 1";
oRs = Oracle.Execute(sql);
if (oRs.eof)
{
notaccepted++;
}
var ctr_close = getFParam("ctr_close", "off") == "on";
if (ctr_close && ingesloten[i].canInspClose)
{ %>
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,
deelsrtcontrole_datum: (new Date()).getTime(),
sel_controlemode: <%=getFParamInt("sel_controlemode" + ingesloten[i].controlemode)%>
};
protectRequest.dataToken(data);
$.ajax({ type: "POST",
url: "../ins/ins_inspect_save.asp",
data: data,
//success: FcltCallbackClose,
datatype: "json",
async: false
});
<% }
}
var success = true;
var warning = "";
if (notaccepted == ingesloten.length)
warning = L("lcl_mld_reject_failed");
%> </script>
<script type="text/javascript">
FcltMgr.closeDetail( window,
{
key: "<%=ingesloten.join(",")%>",
key: "<%=mldKeyArray%>",
warning: "<%=safe.jsstring(warning)%>",
success: "<%=success? 1 : 0%>"
});
@@ -144,6 +220,28 @@ user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel
$("#opmerk").val($("#opmerk").val() + ($("#opmerk").val() != ""? "\n" : "") + PastedText);
}
}
function ctrcloseToggler(deze)
{
var ctrclose = $(deze).prop('checked');
if (ctrclose)
{
<% for (var i = 0; i < controleModeArray.length; i++)
{ %>
$("#sel_controlemode" + <%=controleModeArray[i]%>).addClass("required");
<% } %>
$("#inscontrolemode").show();
FcltMgr.resized(window);
}
else
{
$("#inscontrolemode").hide();
<% for (var i = 0; i < controleModeArray.length; i++)
{ %>
$("#sel_controlemode" + <%=controleModeArray[i]%>).removeClass("required");
<% } %>
}
}
</script>
<% } %>
</head>
@@ -162,7 +260,7 @@ user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel
+ " , mld_stdmelding sm"
+ " , mld_discipline md"
+ " , ins_srtdiscipline sd"
+ " WHERE mld_melding_key = " + ingesloten[0]
+ " WHERE mld_melding_key = " + ingesloten[0].mld_key
+ " AND mm.mld_stdmelding_key = sm.mld_stdmelding_key"
+ " AND sm.mld_ins_discipline_key = md.ins_discipline_key"
+ " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key";
@@ -176,9 +274,9 @@ user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel
}
%>
<form id="rejectform" name="rejectform" action="mld_reject.asp?submit=1&mld_key=<%=ingesloten.join(",")%>" method="post">
<form id="rejectform" name="rejectform" action="mld_reject.asp?submit=1&mld_key=<%=mldKeyArray%>" method="post">
<%
BLOCK_START("mldReject", L("lcl_forward_mld_1") + ingesloten.join(","));
BLOCK_START("mldReject", L("lcl_forward_mld_1") + mldKeyArray);
// <!-- Meldingen (Discipline) -->
FCLTstdmeldingselector("stdm", "sgStdm", {label: L("lcl_complain"),
perslidKey: user_key,
@@ -203,7 +301,7 @@ user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel
+ " , mld_stdmelding std"
+ " , mld_discipline md"
+ " , ins_srtdiscipline sd"
+ " WHERE mld_melding_key IN (" + ingesloten.join(",") + ")"
+ " WHERE mld_melding_key IN (" + mldKeyArray + ")"
+ " AND mm.mld_stdmelding_key = std.mld_stdmelding_key"
+ " AND std.mld_ins_discipline_key = md.ins_discipline_key"
+ " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key";
@@ -222,7 +320,7 @@ user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel
+ " AND BITAND(mld_afmeldtekst_usefor, 2) = 2";
var sql_from_o = " FROM mld_opdr mo"
+ " WHERE mo.mld_melding_key = " + ingesloten[0]
+ " WHERE mo.mld_melding_key = " + ingesloten[0].mld_key
+ " AND mo.mld_statusopdr_key = 6" // status=afgemeld
+ " AND mo.mld_opdr_opmerking IS NOT NULL";
@@ -270,6 +368,50 @@ user.anything_todo_or_abort(toberejected > 0); // We klagen niet over enkele wel
L("lcl_mld_inf_Opmerking"),
"",
{html: "rows='8'"});
if (canCloseCtr > 0)
{ %>
<tr>
<td colspan="2">
<% CHECKBOX("fldctrclose", "ctr_close", 0, { html: "onChange='ctrcloseToggler(this)'" }); %>
<label for="ctr_close"><%=canCloseCtr + L("lcl_mld_ctr_close_all")%></label>
</td>
</tr>
<tr>
<td colspan="2">
<div id="inscontrolemode" style="display: none">
<table>
<% for (var i = 0; i < controleModeArray.length; i++)
{ // Maximaal 3 types.
var sctype;
switch (controleModeArray[i])
{
case 1: sctype = L("lcl_ins_srtcontrole_insp"); break;
case 2: sctype = L("lcl_ins_srtcontrole_repl"); break;
case 3: sctype = L("lcl_ins_srtcontrole_cert"); break;
}
sql = "SELECT ins_controlemode_key"
+ " , " + lcl.xsqla('ins_controlemode_oms', 'ins_controlemode_key')
+ " FROM ins_controlemode"
+ " WHERE ins_srtcontrole_type = " + controleModeArray[i]
+ " AND (ins_controlemode_success IS NULL OR ins_controlemode_success = 0)"
+ " ORDER BY 2";
// Methode is voor de status Afgemeld(5) en Historie/Verwerkt(6) altijd ingevuld.
// Required wordt gezet als de selectbox zichtbaar wordt.
FCLTselector("sel_controlemode" + controleModeArray[i],
sql,
{ label: L("lcl_ins_controle_mode") + " " + sctype,
initKey: -1,
emptyOption: L("lcl_select_controlemode"),
selectjustone: true
});
}
%> </table>
</div>
</td>
</tr>
<% }
BLOCK_END();
var buttons = [ {title: L("lcl_reject"), icon: "opslaan.png", action: "mld_reject()", singlepress: true, id: "btn_reject_submit" },

View File

@@ -442,6 +442,16 @@ function parentButton()
ROFIELDTR("fld", L("lcl_mld_meldbron"), oRs("mld_meldbron_omschrijving").value);
oRs.close();
if (mld_melding.meldbron_key == 10 && mld_melding.kto_type == 'T')
{
sql = "SELECT dsc.ins_deelsrtcontrole_freezecost"
+ " FROM ins_deelsrtcontrole dsc"
+ " WHERE dsc.ins_deelsrtcontrole_key = " + mld_melding.kto_key;
oRs = Oracle.Execute(sql);
// De controle moet aanwezig zijn.
ROFIELDTR("fld", L("lcl_mld_frozen_costs") + "&nbsp;" + L("lcl_valutasign"), oRs("ins_deelsrtcontrole_freezecost").Value, {suppressEmpty: true, datatype: "currency"});
oRs.close();
}
}
ROFIELDTR("fld", L("lcl_mld_meldbron_nr"), mld_melding.meldbron_nr, {suppressEmpty: true});
ROFIELDTR("fld", L("lcl_mld_externr"), mld_melding.externnr, {suppressEmpty: true});

View File

@@ -419,19 +419,21 @@ var timestamp_notes = new Date();
// keuze voor wel of niet zichtbaar FE
CHECKBOX("fldcheck", "zichtbaarFE", note_zichtbaarFE, { html: "onchange='notiToggler(this)'" });
Response.Write("<label for='zichtbaarFE'>{0}</label>".format(L("lcl_mld_zichtbaar_FE")));
if (S("mld_flag_on_fenote"))
{
var actie_bij_melder = (note_zichtbaarFE && S("mld_note_default_notifyFE")==1 ? true : false);
// We doen aan pingpongen
Response.Write("<span id='notioption'"+(note_zichtbaarFE? "style='display:inline'" :" style='display:none'")+">");
CHECKBOX("fldcheck", "notifyFE", actie_bij_melder);
Response.Write("<label for='notifyFE'>{0}</label></span>".format(L("lcl_mld_toekennen_FE")));
}
}
else
{
// re-edit, eigenmelding of geen keuze = niks te kiezen, vermeld even hoe zichtbaar deze note is
Response.Write("{0}: {1}".format(L("lcl_mld_zichtbaar_FE"), note_zichtbaarFE?L("lcl_Yes"):L("lcl_No"))); /* vriendelijker is: Wel/Niet zichtbaar voor melder */
}
if (S("mld_flag_on_fenote") > 0 && mld_info.fenotes>0 && !eigenMelding)
{
// We doen aan pingpongen
Response.Write("<span id='notioption'"+(note_zichtbaarFE? "style='display:inline'" :" style='display:none'")+">");
CHECKBOX("fldcheck", "notifyFE", false); /* compatible ware: note_zichtbaarFE, maar dit lijkt mij beter */
Response.Write("<label for='notifyFE'>{0}</label></span>".format(L("lcl_mld_toekennen_FE")));
}
}
IFACE.FORM_END();
%>

258
APPL/PDA/attachments.js Normal file
View File

@@ -0,0 +1,258 @@
/* Redmine - project management software
Copyright (C) 2006-2017 Jean-Philippe Lang */
function addFile(inputEl, file, eagerUpload) {
var attachmentsFields = $(inputEl).closest('.attachments_form').find('.attachments_fields');
var addAttachment = $(inputEl).closest('.attachments_form').find('.add_attachment');
var maxFiles = ($(inputEl).attr('multiple') == 'multiple' ? 10 : 1);
if (attachmentsFields.children().length < maxFiles) {
var attachmentId = addFile.nextAttachmentId++;
var fileSpan = $('<span>', { id: 'attachments_' + attachmentId });
var param = $(inputEl).data('param');
if (!param) {param = 'attachments'};
fileSpan.append(
$('<input>', { type: 'text', 'class': 'icon icon-attachment filename readonly', name: param +'[' + attachmentId + '][filename]', readonly: 'readonly'} ).val(file.name),
$('<input>', { type: 'text', 'class': 'description', name: param + '[' + attachmentId + '][description]', maxlength: 255, placeholder: $(inputEl).data('description-placeholder') } ).toggle(!eagerUpload),
$('<input>', { type: 'hidden', 'class': 'token', name: param + '[' + attachmentId + '][token]'} ),
$('<a>&nbsp</a>').attr({ href: "#", 'class': 'icon-only icon-del remove-upload' }).click(removeFile).toggle(!eagerUpload)
).appendTo(attachmentsFields);
if ($(inputEl).data('description') == 0) {
fileSpan.find('input.description').remove();
}
if(eagerUpload) {
ajaxUpload(file, attachmentId, fileSpan, inputEl);
}
addAttachment.toggle(attachmentsFields.children().length < maxFiles);
return attachmentId;
}
return null;
}
addFile.nextAttachmentId = 1;
function ajaxUpload(file, attachmentId, fileSpan, inputEl) {
function onLoadstart(e) {
fileSpan.removeClass('ajax-waiting');
fileSpan.addClass('ajax-loading');
$('input:submit', $(this).parents('form')).attr('disabled', 'disabled');
}
function onProgress(e) {
if(e.lengthComputable) {
this.progressbar( 'value', e.loaded * 100 / e.total );
}
}
function actualUpload(file, attachmentId, fileSpan, inputEl) {
ajaxUpload.uploading++;
uploadBlob(file, $(inputEl).data('upload-path'), attachmentId, {
loadstartEventHandler: onLoadstart.bind(progressSpan),
progressEventHandler: onProgress.bind(progressSpan)
})
.done(function(result) {
addInlineAttachmentMarkup(file);
progressSpan.progressbar( 'value', 100 ).remove();
fileSpan.find('input.description, a').css('display', 'inline-block');
})
.fail(function(result) {
progressSpan.text(result.statusText);
}).always(function() {
ajaxUpload.uploading--;
fileSpan.removeClass('ajax-loading');
var form = fileSpan.parents('form');
if (form.queue('upload').length == 0 && ajaxUpload.uploading == 0) {
$('input:submit', form).removeAttr('disabled');
}
form.dequeue('upload');
});
}
var progressSpan = $('<div>').insertAfter(fileSpan.find('input.filename'));
progressSpan.progressbar();
fileSpan.addClass('ajax-waiting');
var maxSyncUpload = $(inputEl).data('max-concurrent-uploads');
if(maxSyncUpload == null || maxSyncUpload <= 0 || ajaxUpload.uploading < maxSyncUpload)
actualUpload(file, attachmentId, fileSpan, inputEl);
else
$(inputEl).parents('form').queue('upload', actualUpload.bind(this, file, attachmentId, fileSpan, inputEl));
}
ajaxUpload.uploading = 0;
function removeFile() {
$(this).closest('.attachments_form').find('.add_attachment').show();
$(this).parent('span').remove();
return false;
}
function uploadBlob(blob, uploadUrl, attachmentId, options) {
var actualOptions = $.extend({
loadstartEventHandler: $.noop,
progressEventHandler: $.noop
}, options);
uploadUrl = uploadUrl + '?attachment_id=' + attachmentId;
if (blob instanceof window.File) {
uploadUrl += '&filename=' + encodeURIComponent(blob.name);
uploadUrl += '&content_type=' + encodeURIComponent(blob.type);
}
return $.ajax(uploadUrl, {
type: 'POST',
contentType: 'application/octet-stream',
beforeSend: function(jqXhr, settings) {
jqXhr.setRequestHeader('Accept', 'application/js');
// attach proper File object
settings.data = blob;
},
xhr: function() {
var xhr = $.ajaxSettings.xhr();
xhr.upload.onloadstart = actualOptions.loadstartEventHandler;
xhr.upload.onprogress = actualOptions.progressEventHandler;
return xhr;
},
data: blob,
cache: false,
processData: false
});
}
function addInputFiles(inputEl) {
var attachmentsFields = $(inputEl).closest('.attachments_form').find('.attachments_fields');
var addAttachment = $(inputEl).closest('.attachments_form').find('.add_attachment');
var clearedFileInput = $(inputEl).clone().val('');
var sizeExceeded = false;
var param = $(inputEl).data('param');
if (!param) {param = 'attachments'};
if ($.ajaxSettings.xhr().upload && inputEl.files) {
// upload files using ajax
sizeExceeded = uploadAndAttachFiles(inputEl.files, inputEl);
$(inputEl).remove();
} else {
// browser not supporting the file API, upload on form submission
var attachmentId;
var aFilename = inputEl.value.split(/\/|\\/);
attachmentId = addFile(inputEl, { name: aFilename[ aFilename.length - 1 ] }, false);
if (attachmentId) {
$(inputEl).attr({ name: param + '[' + attachmentId + '][file]', style: 'display:none;' }).appendTo('#attachments_' + attachmentId);
}
}
clearedFileInput.prependTo(addAttachment);
}
function uploadAndAttachFiles(files, inputEl) {
var maxFileSize = $(inputEl).data('max-file-size');
var maxFileSizeExceeded = $(inputEl).data('max-file-size-message');
var sizeExceeded = false;
$.each(files, function() {
if (this.size && maxFileSize != null && this.size > parseInt(maxFileSize)) {sizeExceeded=true;}
});
if (sizeExceeded) {
window.alert(maxFileSizeExceeded);
} else {
$.each(files, function() {addFile(inputEl, this, true);});
}
return sizeExceeded;
}
function handleFileDropEvent(e) {
$(this).removeClass('fileover');
blockEventPropagation(e);
if ($.inArray('Files', e.dataTransfer.types) > -1) {
handleFileDropEvent.target = e.target;
uploadAndAttachFiles(e.dataTransfer.files, $('input:file.filedrop').first());
}
}
handleFileDropEvent.target = '';
function dragOverHandler(e) {
$(this).addClass('fileover');
blockEventPropagation(e);
}
function dragOutHandler(e) {
$(this).removeClass('fileover');
blockEventPropagation(e);
}
function setupFileDrop() {
if (window.File && window.FileList && window.ProgressEvent && window.FormData) {
$.event.fixHooks.drop = { props: [ 'dataTransfer' ] };
$('form div.box:not(.filedroplistner)').has('input:file.filedrop').each(function() {
$(this).on({
dragover: dragOverHandler,
dragleave: dragOutHandler,
drop: handleFileDropEvent
}).addClass('filedroplistner');
});
}
}
function addInlineAttachmentMarkup(file) {
// insert uploaded image inline if dropped area is currently focused textarea
if($(handleFileDropEvent.target).hasClass('wiki-edit') && $.inArray(file.type, window.wikiImageMimeTypes) > -1) {
var $textarea = $(handleFileDropEvent.target);
var cursorPosition = $textarea.prop('selectionStart');
var description = $textarea.val();
var sanitizedFilename = file.name.replace(/[\/\?\%\*\:\|\"\'<>\n\r]+/, '_');
var inlineFilename = encodeURIComponent(sanitizedFilename);
var newLineBefore = true;
var newLineAfter = true;
if(cursorPosition === 0 || description.substr(cursorPosition-1,1).match(/\r|\n/)) {
newLineBefore = false;
}
if(description.substr(cursorPosition,1).match(/\r|\n/)) {
newLineAfter = false;
}
$textarea.val(
description.substring(0, cursorPosition)
+ (newLineBefore ? '\n' : '')
+ inlineFilename
+ (newLineAfter ? '\n' : '')
+ description.substring(cursorPosition, description.length)
);
$textarea.prop({
'selectionStart': cursorPosition + newLineBefore,
'selectionEnd': cursorPosition + inlineFilename.length + newLineBefore
});
$textarea.closest('.jstEditor')
.siblings('.jstElements')
.find('.jstb_img').click();
// move cursor into next line
cursorPosition = $textarea.prop('selectionStart');
$textarea.prop({
'selectionStart': cursorPosition + 1,
'selectionEnd': cursorPosition + 1
});
}
}
$(document).ready(setupFileDrop);
$(document).ready(function(){
$("input.deleted_attachment").change(function(){
$(this).parents('.existing-attachment').toggleClass('deleted', $(this).is(":checked"));
}).change();
});

View File

@@ -564,7 +564,7 @@ else
// Dan taakafhandeling (controle_mode) tonen als:
// a) De status is "In behandeling(2)" of "Gereed gemeld (5)".
// b) De status "In behandeling(2)" is uitgeschakeld.
if (ins_deelsrtcontrole_status == 2 || ins_deelsrtcontrole_status == 5 || ((isc_options & 2) != 2))
if (ins_deelsrtcontrole_status == 2 || ins_deelsrtcontrole_status == 5 || this_ins.canInspStart)
{
ROFIELD("sel_srtcontrole_oms", L("lcl_ins_controle"), srtcontrole_oms, {});
@@ -606,21 +606,21 @@ else
{
case -1:
case 6: // Geen inplannen van inspecties bij mobiel.
case 0: if ((isc_options & 2) == 2)
case 0: if (this_ins.canInspStart)
BUTTON(L("lcl_ins_start"), {click: "ins_start()", dataicon: "clock"});
else
{
if ((isc_options & 4) == 4)
if (ins_deelsrtcontrole_status == 2 && this_ins.canInspClose)
BUTTON(L("lcl_ins_close"), {click: "ins_submit('C')", dataicon: "comment"});
if ((isc_options & 8) == 8)
if (ins_deelsrtcontrole_status == 2 && this_ins.canInspFinish)
BUTTON(L("lcl_ins_finish"), {click: "ins_submit('F')", dataicon: "check"});
}
break;
case 2:
case 5: BUTTON(L("lcl_submit"), {click: "ins_submit('E')", dataicon: "refresh"});
if (ins_deelsrtcontrole_status == 2 && ((isc_options & 4) == 4))
if (ins_deelsrtcontrole_status == 2 && this_ins.canInspClose)
BUTTON(L("lcl_ins_close"), {click: "ins_submit('C')", dataicon: "comment"});
if ((isc_options & 8) == 8)
if (this_ins.canInspFinish)
BUTTON(L("lcl_ins_finish"), {click: "ins_submit('F')", dataicon: "check"});
break;
}
@@ -659,7 +659,7 @@ else
FOOTER();
PAGE_END();
PAGE_START({id: "ins-2-"+ins_key, dialog: true})
HEADER({title: srtcontrole_oms, back: false, nohome: true}) ;
HEADER({title: srtcontrole_oms, back: true, nohome: true}) ;
CONTENT_START();
ROFIELD("fclthtml", "", srtcontrole_info, {multi: true});
CONTENT_END();
@@ -677,7 +677,6 @@ else
function fncolLink_hist(oRs)
{
qry_params.deelsrtcontrole_key = oRs("ins_deelsrtcontrole_key").Value;
//return "#ins-4-"+ins_key;
return "../pda/ins_inspect_hist.asp?ins_key=" + ins_key + "&deelsrtcontrole_key=" + oRs("ins_deelsrtcontrole_key").Value;
};
function fnPrefix_hist(oRs)
@@ -727,15 +726,6 @@ else
CONTENT_END();
PAGE_END();
PAGE_START({id: "ins-4-"+ins_key});
HEADER({title: "Vorige inspecties", back: true, nohome: true});
CONTENT_START();
CONTENT_END();
PAGE_END();
%>
</body>
</html>

View File

@@ -93,6 +93,15 @@ if (ins_key > -1)
var urole = getQParamSafe("urole", "bo");
var params = { urole: urole };
params.flags = [];
// in tegenstelling tot desktop zijn hier de flags default on
// en kun je dus expliciet zaken wegfilteren met &flagN=off
for (flagkey=0; flagkey < S("mld_melding_flags"); flagkey++)
{
if (getQParam("flag" + flagkey, "on") == "on")
params.flags.push(flagkey);
}
params.behandel_key = behandel_key;
// Self overruled de setting S("mld_restrict_mobile_to_me").
@@ -167,6 +176,16 @@ var authparams = user.checkAutorisation(autfunction);
+ " , " + lcl.xsqla('md.ins_discipline_omschrijving', 'md.ins_discipline_key')
+ " , " + lcl.xsqla('std.mld_stdmelding_omschrijving', 'std.mld_stdmelding_key');
if (S("mld_num_prefix_mode") == 1) // kostenplaats of afdeling
{
sqln += ", COALESCE((SELECT prs_kostenplaats_nr"
+ " FROM prs_kostenplaats k"
+ " WHERE m.prs_kostenplaats_key = k.prs_kostenplaats_key),"
+ " (SELECT prs_afdeling_naam"
+ " FROM prs_afdeling d"
+ " WHERE p.prs_afdeling_key = d.prs_afdeling_key)) mld_prefix";
}
// Voeg aan de sql het FROM en WHERE gedeelte toe
params.track_mldnew = false; // fac_tracking op MLDNEW niet gebruiken
sqln += mld.getfromwherelist_sql(autfunction, params);
@@ -289,10 +308,15 @@ var authparams = user.checkAutorisation(autfunction);
{
url = "../pda/mld_list.asp?grp=" + safe.url(oRs("ins_discipline_omschrijving").Value)
+ (self > -1? "&self=" + self : "")
+ (behandel_key != -1? "&behandel=" + behandel_key : "")
+ (behandel_key != -1? "&behandel=" + behandel_key : "")
+ (status.length > 0? "&status=" + status.join(",") : "")
+ (ruimte_key > -1? "&ruimte_key=" + ruimte_key : "")
+ (ins_key > -1? "&ins_key=" + ins_key : "");
for (flagkey=0; flagkey < S("mld_melding_flags"); flagkey++)
{
url += ((getQParam("flag" + flagkey, "on") == "on") ? "&flag" + flagkey + "=on" : "&flag" + flagkey + "=off");
}
}
else
{
@@ -308,7 +332,11 @@ var authparams = user.checkAutorisation(autfunction);
function fncolHeader(oRs)
{
return (oRs("ins_srtdiscipline_prefix").Value || "") + oRs("mld_melding_key").Value;
var tekst = (oRs("ins_srtdiscipline_prefix").Value || "") + oRs("mld_melding_key").Value;
if (S("mld_num_prefix_mode") > 0 && oRs("mld_prefix").Value)
tekst = oRs("mld_prefix").Value + "#" + tekst;
return tekst;
};
function fncolSubHeader(oRs)

View File

@@ -152,7 +152,7 @@ function onBijlagenMobile(formurl, // protected
var html = '<iframe class="mfcltmodal"'
+' frameborder="0"'
+' id="fcltmodal" name="fcltmodal" scrolling="no" style="padding: 0px;"'
+' src="../shared/empty.html">'
+' src="' + rooturl + '/appl/shared/empty.html">'
+'</iframe>';
html = '<div id="bijlagepopup" data-role="popup" class="ui-content" data-theme="c">'
@@ -189,6 +189,7 @@ function onBijlagenMobile(formurl, // protected
$("iframe.mfcltmodal").attr("src", "../shared/empty.html");
});
// $("#bijlagepopup").show();
$("#bijlagepopup").popup({ history: false }).popup("open");
$html.find("iframe").attr("src", formurl);

View File

@@ -49,7 +49,7 @@ var sql = "";
lcl.set_dialect(mld_info.srtdisc, "MLD_SRTDISCIPLINE_KEY");
pnote.subject = mld_info.prefix + pkey;
pnote.fenotes = mld_info.fenotes;
pnote.zichtbaar = (mld_info.fenotes & 1);
pnote.zichtbaar = (mld_info.fenotes == 1 || mld_info.fenotes == 3 );
pnote.eigenMelding = user_key == mld_info.melder_key || user.isCollega(mld_info.melder_key);
if (pnote.canwritenotes)
@@ -280,9 +280,12 @@ var sql = "";
var noti = $(deze).prop("checked");
$("#notioption").css("display", noti ? "inline":"none");
if (noti)
$("#notifyFE").prop("checked", <%=S("mld_note_default_notifyfe") == 1? 1 : 0%> == 1);
{
var v_actie_bij_melder = <%=(S("mld_note_default_notifyFE") == 1? 1 : 0)%> == 1;
$("#notifyFE").prop("checked", v_actie_bij_melder).checkboxradio("refresh");
}
else
$("#notifyFE").prop("checked", false);
$("#notifyFE").prop("checked", false).checkboxradio("refresh");
}
</script>
<%
@@ -299,12 +302,15 @@ var sql = "";
{
if (pnote.note_key == -1 && !pnote.eigenMelding && pnote.fenotes != 1)
{
// keuze voor wel of niet zichtbaar FE
CHB_FIELD("zichtbaarFE", "<nobr>" + L("lcl_mld_zichtbaar_FE") + "</nobr>", pnote.zichtbaar, {disabled: false, onclick: "notiToggler(this)"});
if (S("mld_flag_on_fenote")>0 && pnote.fenotes>0)
if (S("mld_flag_on_fenote"))
{
var actie_bij_melder = (pnote.zichtbaar && S("mld_note_default_notifyFE")==1 ? 1 : 0);
Response.Write("<span id='notioption'"+(pnote.zichtbaar? "style='display:inline'" :" style='display:none'")+">");
CHB_FIELD("notifyFE", "<nobr>" + L("lcl_mld_toekennen_FE") + "</nobr>", false, {disabled: false});
Response.Write("<label for='notifyFE'>{0}</label></span>".format(L("lcl_mld_toekennen_FE")));
CHB_FIELD("notifyFE", "<nobr>" + L("lcl_mld_toekennen_FE") + "</nobr>", actie_bij_melder, {disabled: false});
Response.Write("</span>");
}
}
else

View File

@@ -42,21 +42,21 @@ var photoMap = thisUser.photomap; // map waarin de foto wordt opgeslagen
<script type="text/javascript" >
function edit_werkplek(img, pwp_key)
{
var url = "../../appl/prs/prs_move_perslidwerkplek.asp?pwp_key=" + pwp_key;
var url = rooturl + "/appl/prs/prs_move_perslidwerkplek.asp?pwp_key=" + pwp_key;
FcltMgr.openModalDetail(url, "<%=safe.jsstring(thisUser.naam)%>",
{ callback: function (data) { if (data.wp_aanduiding) {$(img).closest("tr").find("input").val(data.wp_aanduiding);} } });
}
function edit_werklocatie(img, prs_key)
{
var url = "../../appl/prs/prs_move_huidigewerkplek.asp?prs_key=" + prs_key;
var url = rooturl + "/appl/prs/prs_move_huidigewerkplek.asp?prs_key=" + prs_key;
FcltMgr.openModalDetail(url, "<%=safe.jsstring(thisUser.naam)%>",
{ callback: function (data) { if (data.wp_aanduiding) {$(img).closest("tr").find("input").val(data.wp_aanduiding);} } });
}
function edit_phone(inp)
{
var url = "../../appl/prs/prs_edit_perslid_modal.asp?prs_key=<%=prs_key%>"
var url = rooturl + "/appl/prs/prs_edit_perslid_modal.asp?prs_key=<%=prs_key%>"
FcltMgr.openModalDetail(url, "<%=safe.jsstring(thisUser.naam)%>",
{ callback: function(data) { if (data.refresh) FcltMgr.reload() } });
}
@@ -101,7 +101,7 @@ var photoMap = thisUser.photomap; // map waarin de foto wordt opgeslagen
function edit_photo(img)
{
// multi=0: Er mag slechts 1 bestand bestaan.
var formurl = "<%=protectQS.create("../pda/BijlagenForm.asp?module=SML&multi=0&key=" + prs_key)%>";
var formurl = "<%=protectQS.create(rooturl + "/appl/pda/BijlagenForm.asp?module=SML&multi=0&key=" + prs_key)%>";
var saveurl = "";
onBijlagenMobile(formurl, // protected
saveurl, // protected
@@ -114,8 +114,7 @@ var photoMap = thisUser.photomap; // map waarin de foto wordt opgeslagen
$("#photo").attr("src", "<%=photoMap%>"+return_data); // refresh foto
}
</script>
<form name="u2" id="u2" method="post" action="../prs/prs_edit_perslid_save.asp?prs_key=<%=prs_key%>">
<form name="u2" id="u2" method="post" action="<%=rooturl%>/appl/prs/prs_edit_perslid_save.asp?prs_key=<%=prs_key%>">
<div style="text-align:center;">
<img id="photo" class="selfie" src="<%=photoFile %>"

View File

@@ -39,6 +39,22 @@
"location": "https:\/\/example.com\/v2\/ResourceTypes\/Group",
"resourceType": "ResourceType"
}
}
},
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:ResourceType"
],
"id": "OrgUnits",
"name": "OrgUnits",
"endpoint": "\/OrgUnits",
"description": "Organisatie Units",
"schema": "urn:ietf:params:scim:schemas:core:2.0:OrgUnits",
"meta": {
"location": "https:\/\/example.com\/v2\/ResourceTypes\/OrgUnits",
"resourceType": "ResourceType"
}
},
]
}

View File

@@ -18,6 +18,38 @@
"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"
},
{
"name": "userFacilitor",
"type": "complex",
"multiValued": false,
"description": "The components of the user's real name. Providers MAY return just the full name as a single string in the formatted sub-attribute, or they MAY return just the individual component attributes using the other sub-attributes, or they MAY return both. If both variants are returned, they SHOULD be describing the same name, with the formatted name indicating how the component attributes should be combined.",
"required": false,
"subAttributes": [{
"name": "initials",
"type": "string",
"multiValued": false,
"description": "Initials of the person. E.g. 'A.T.M.'.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "server"
}],
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "name",
"type": "complex",
@@ -28,7 +60,7 @@
"name": "formatted",
"type": "string",
"multiValued": false,
"description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display (e.g., 'Ms. Barbara J Jensen, III').",
"description": "The full name, including all middle names, Titles, and suffixes as appropriate, formatted for display (e.g., 'Ms. Barbara J Jensen, III').",
"required": false,
"caseExact": false,
"mutability": "readWrite",
@@ -72,72 +104,6 @@
"returned": "default",
"uniqueness": "none"
},
{
"name": "displayName",
"type": "string",
"multiValued": false,
"description": "The name of the User, suitable for display to end-users. The name SHOULD be the full name of the User being described, if known.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "title",
"type": "string",
"multiValued": false,
"description": "The user's title, such as \"Vice President.\"",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "userType",
"type": "string",
"multiValued": false,
"description": "Used to identify the relationship between the organization and the user. Typical values used might be 'Contractor', 'Employee', 'Intern', 'Temp', 'External', and 'Unknown', but any value may be used.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "preferredLanguage",
"type": "string",
"multiValued": false,
"description": "Indicates the User's preferred written or spoken language. Generally used for selecting a localized user interface; e.g., 'en_US' specifies the language English and country US.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "locale",
"type": "string",
"multiValued": false,
"description": "Used to indicate the User's default location for purposes of localizing items such as currency, date time format, or numerical representations.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "timezone",
"type": "string",
"multiValued": false,
"description": "The User's time zone in the 'Olson' time zone database format, e.g., 'America\/Los_Angeles'.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "active",
"type": "boolean",
@@ -147,17 +113,6 @@
"mutability": "readWrite",
"returned": "default"
},
{
"name": "password",
"type": "string",
"multiValued": false,
"description": "The User's cleartext password. This attribute is intended to be used as a means to specify an initial password when creating a new User or to reset an existing User's password.",
"required": false,
"caseExact": false,
"mutability": "writeOnly",
"returned": "never",
"uniqueness": "none"
},
{
"name": "emails",
"type": "complex",
@@ -175,17 +130,6 @@
"returned": "default",
"uniqueness": "none"
},
{
"name": "display",
"type": "string",
"multiValued": false,
"description": "A human-readable name, primarily used for display purposes. READ-ONLY.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "type",
"type": "string",
@@ -230,17 +174,6 @@
"returned": "default",
"uniqueness": "none"
},
{
"name": "display",
"type": "string",
"multiValued": false,
"description": "A human-readable name, primarily used for display purposes. READ-ONLY.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "type",
"type": "string",
@@ -270,60 +203,6 @@
"mutability": "readWrite",
"returned": "default"
},
{
"name": "photos",
"type": "complex",
"multiValued": true,
"description": "URLs of photos of the User.",
"required": false,
"subAttributes": [{
"name": "value",
"type": "reference",
"referenceTypes": ["external"],
"multiValued": false,
"description": "URL of a photo of the User.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "display",
"type": "string",
"multiValued": false,
"description": "A human-readable name, primarily used for display purposes. READ-ONLY.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "type",
"type": "string",
"multiValued": false,
"description": "A label indicating the attribute's function, i.e., 'photo' or 'thumbnail'.",
"required": false,
"caseExact": false,
"canonicalValues": ["photo",
"thumbnail"],
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "primary",
"type": "boolean",
"multiValued": false,
"description": "A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g., the preferred photo or thumbnail. The primary attribute value 'true' MUST appear no more than once.",
"required": false,
"mutability": "readWrite",
"returned": "default"
}],
"mutability": "readWrite",
"returned": "default"
},
{
"name": "groups",
"type": "complex",
@@ -380,12 +259,77 @@
}],
"mutability": "readOnly",
"returned": "default"
}],
"meta": {
},
{
"name": "orgUnit",
"type": "complex",
"multiValued": false,
"description": "User organisation.",
"required": false,
"subAttributes": [{
"name": "id",
"type": "string",
"multiValued": false,
"description": "The organisation unit id.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "$ref",
"type": "reference",
"referenceTypes": ["User",
"OrgUnits"],
"multiValued": false,
"description": "The URI of the corresponding 'OrgUnit' resource to which the user belongs.",
"required": false,
"caseExact": false,
"mutability": "immutable",
"returned": "default",
"uniqueness": "none"
}],
"mutability": "readWrite",
"returned": "default"
}],
"meta": {
"resourceType": "Schema",
"location": "\/v2\/Schemas\/urn:ietf:params:scim:schemas:core:2.0:User"
}
},
},
{
"id": "urn:ietf:params:scim:schemas:core:2.0:OrgUnits",
"name": "OrgUnits",
"description": "OrganisationUnit",
"attributes": [
{
"name": "code",
"type": "string",
"multiValued": false,
"description": "The organisation unit code (naam).",
"required": true,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "costCenter",
"type": "string",
"multiValued": false,
"description": "The organisation unit cost center (kostenplaats).",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
}],
"meta": {
"resourceType": "Schema",
"location": "\/v2\/Schemas\/urn:ietf:params:scim:schemas:core:2.0:OrgUnits"
}
},
{
"id": "urn:ietf:params:scim:schemas:core:2.0:Group",
"name": "Group",
@@ -466,97 +410,10 @@
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "costCenter",
"type": "string",
"multiValued": false,
"description": "Identifies the name of a cost center.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "organization",
"type": "string",
"multiValued": false,
"description": "Identifies the name of an organization.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "division",
"type": "string",
"multiValued": false,
"description": "Identifies the name of a division.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "department",
"type": "string",
"multiValued": false,
"description": "Identifies the name of a department.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "manager",
"type": "complex",
"multiValued": false,
"description": "The User's manager. A complex type that optionally allows service providers to represent organizational hierarchy by referencing the 'id' attribute of another User.",
"required": false,
"subAttributes": [{
"name": "value",
"type": "string",
"multiValued": false,
"description": "The id of the SCIM resource representing the User's manager. REQUIRED.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "$ref",
"type": "reference",
"referenceTypes": ["User"],
"multiValued": false,
"description": "The URI of the SCIM resource representing the User's manager. REQUIRED.",
"required": false,
"caseExact": false,
"mutability": "readWrite",
"returned": "default",
"uniqueness": "none"
},
{
"name": "displayName",
"type": "string",
"multiValued": false,
"description": "The displayName of the User's manager. OPTIONAL and READ-ONLY.",
"required": false,
"caseExact": false,
"mutability": "readOnly",
"returned": "default",
"uniqueness": "none"
}],
"mutability": "readWrite",
"returned": "default"
}],
"meta": {
"resourceType": "Schema",
"location": "\/v2\/Schemas\/urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
}
}]
}]
}

View File

@@ -236,7 +236,7 @@ function flexProps(pModule, pKey, pSubpath, pNiveau, params)
result.AttachRootPath = S("flexFilesPath");
result.AttachPath = result.AttachRootPath + "/" + pModule + "/";
result.AttachPath += (pKey > 0? subfolderKey(bepaalNiveau(pModule, pNiveau), pKey)
: subfolderNew(bepaalNiveau(pModule, pNiveau), user_key + "_" + getQParam("tmpfolder")));
: subfolderNew(bepaalNiveau(pModule, pNiveau), user_key + "_" + (params.tmpfolder||getQParam("tmpfolder"))));
result.AttachPath += "/" + pSubpath + "/";
result.extFilter = getQParam("extFilter", S("flexExtensionFilter"));
result.regexp = getQParam("pregexp", ""); //P800x600 cropt/resized naar 800x600
@@ -495,8 +495,11 @@ function oneFileInfo(fsoFile, result, pModule, pKey, pSubpath, pNiveau, params)
}
}
}
if (params.api2name)
if (params.tmpfolder)
{
filedata.token = params.tmpfolder;
}
else if (params.api2name)
{
var deepurl = HTTP.urlzelf() + "/api2/{0}/{1}/attachments/{2}/{3}".format(
params.api2name,

View File

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

View File

@@ -2357,16 +2357,16 @@ END:VCALENDAR
</tr>
<xsl:if test="string(omschrijving)!=string(//reservering/rsv_ruimte[volgnr=$min_volgnr]/omschrijving)">
<tr>
<td class="label" frame="box" style="border-style:solid;border-width:0px;"><xsl:value-of select="//lcl/FAC/omschrijving"/></td>
<td class="value" colspan="9" frame="box" style="border-style:solid;border-width:0px;">
<td class="label"><xsl:value-of select="//lcl/FAC/omschrijving"/></td>
<td class="value" colspan="9">
: <xsl:value-of select="omschrijving"/>
</td>
</tr>
</xsl:if>
<xsl:if test="string(contact_user/naam_full)!=string(//reservering/rsv_ruimte[volgnr=$min_volgnr]/contact_user/naam_full)">
<tr>
<td class="label" frame="box" style="border-style:solid;border-width:0px;"><xsl:value-of select="//lcl/FAC/aanvrager"/></td>
<td class="value" colspan="9" frame="box" style="border-style:solid;border-width:0px;">
<td class="label"><xsl:value-of select="//lcl/FAC/aanvrager"/></td>
<td class="value" colspan="9">
: <xsl:value-of select="contact_user/naam_full"/>/ <xsl:value-of select="contact_user/werkplek/plaats/regio/district/locatie/omschrijving"/></td>
</tr>
</xsl:if>
@@ -2387,8 +2387,8 @@ END:VCALENDAR
</tr>
<xsl:if test="string(opmerking)!=''">
<tr>
<td class="label" frame="box" style="border-style:solid;border-width:0px;"> <xsl:value-of select="//lcl/FAC/opmerking"/></td>
<td class="value" colspan="9" frame="box" style="border-style:solid;border-width:0px;">
<td class="label"> <xsl:value-of select="//lcl/FAC/opmerking"/></td>
<td class="value" colspan="9">
: <xsl:call-template name="linebreaks">
<xsl:with-param name="string" select="opmerking"/>
</xsl:call-template>
@@ -2490,8 +2490,8 @@ END:VCALENDAR
<td colspan="10" style="border-top:1px solid #000;"/>
</tr>
<tr>
<td class="tekst" colspan="4" style="border-style:solid;border-width:0px;"></td>
<td class="tekst" colspan="2" style="text-align:right;border-style:solid;border-width:0px;"><b>
<td class="tekst" colspan="4"></td>
<td class="tekst" colspan="2" style="text-align:right;"><b>
<xsl:call-template name="europrijs">
<xsl:with-param name="prijs" select="sum(prijs[string(number(.))!='NaN'])+sum(rsv_deel/prijs[string(number(.))!='NaN'])+sum(rsv_artikel/prijs[string(number(.))!='NaN'])"/>
</xsl:call-template></b>
@@ -2503,7 +2503,7 @@ END:VCALENDAR
<xsl:choose>
<xsl:when test="position() = 1">
<tr>
<td class="tekst" style="border-style:solid;border-width:0px;">
<td class="tekst">
<br/><xsl:value-of select="//lcl/BEZ/bezoekers"/></td>
</tr>
<tr>

View File

@@ -54,6 +54,7 @@ Omschrijving: <xsl:value-of select="omschrijving" />
Melding: <xsl:value-of select="melding/omschrijving" /></omschrijving>
<kenmerk naam="Kosten"><xsl:value-of select="kosten" /></kenmerk>
<kenmerk naam="Locatiecode klant"><xsl:value-of select="melding/plaats/regio/district/locatie/code"/></kenmerk>
<kenmerk naam="Gebouwcode klant"><xsl:value-of select="melding/plaats/regio/district/locatie/gebouw/code"/></kenmerk>
<kenmerk naam="Werkbon/Opdracht nr. klant"><xsl:value-of select="melding_key" />/<xsl:value-of select="bedrijfopdr_volgnr" /></kenmerk>
<kenmerk naam="Einddatum klant"><xsl:value-of select="einddatum/datum" /><xsl:text> </xsl:text><xsl:value-of select="einddatum/tijd" />:00</kenmerk>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -122,7 +122,7 @@
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<img align="left" src="../../cust/asle/xsl/logo_asito.jpg"/>
<img align="left" src="../../cust/asle/xsl/logo_gom.jpg"/>
</td>
<td>
<img align="right" src="../../cust/asle/xsl/logo_nh.jpg"/>
@@ -311,7 +311,7 @@
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<img align="left" src="../../cust/asle/xsl/logo_asito.jpg"/>
<img align="left" src="../../cust/asle/xsl/logo_gom.jpg"/>
</td>
<td>
<img align="right" src="../../cust/asle/xsl/logo_nh.jpg"/>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

BIN
CUST/ASLE/xsl/logo_gom.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@@ -582,6 +582,7 @@
<xsl:variable name="sortfilter">
<xsl:for-each select="verkoopfactuurregel">
<xsl:sort select="substring-after(omschrijving, '/=')"/>
<xsl:sort select="btwpercentage"/>
<xsl:copy-of select="."/>
</xsl:for-each>
</xsl:variable>
@@ -658,14 +659,23 @@
<xsl:variable name="this_reg">
<xsl:value-of select="substring-after(omschrijving, '/=')"/>
</xsl:variable>
<xsl:variable name="prev_btw">
<xsl:choose>
<xsl:when test="position()=1">Quqelequ</xsl:when>
<xsl:otherwise><xsl:value-of select="preceding-sibling::verkoopfactuurregel[1]/btwpercentage"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="this_btw">
<xsl:value-of select="btwpercentage"/>
</xsl:variable>
<!-- Als 'this' != 'prev', dan nieuwe factuurregel! -->
<xsl:if test="$this_reg!=$prev_reg">
<xsl:if test="$this_reg!=$prev_reg or $this_btw!=$prev_btw">
<tr>
<td style="border-bottom:1px solid black;"><xsl:value-of select="substring-before(omschrijving, '/=')"/></td>
<td colspan="3" style="border-bottom:1px solid black;"><xsl:value-of select="substring($this_reg, 4)"/></td>
<td style="border-bottom:1px solid black;"><xsl:value-of select="btwpercentage"/> %</td>
<td style="text-align:right;border-bottom:1px solid black;"><xsl:value-of select="format-number(sum(msxml:node-set($sortfilter)/verkoopfactuurregel[substring-after(omschrijving, '/=')=$this_reg]/bedrag), '###.###.##0,00', 'european')"/></td>
<td style="text-align:right;border-bottom:1px solid black;"><xsl:value-of select="format-number(sum(msxml:node-set($sortfilter)/verkoopfactuurregel[substring-after(omschrijving, '/=')=$this_reg and btwpercentage=$this_btw]/bedrag), '###.###.##0,00', 'european')"/></td>
</tr>
</xsl:if>
</xsl:for-each>
@@ -787,6 +797,7 @@
<xsl:for-each select="rapport_data/data_row">
<xsl:sort select="SORTERING"/>
<xsl:sort select="REGEL"/>
<xsl:sort select="FIN_BTWTABELWAARDE_PERC"/>
<xsl:if test="FIN_VERKOOPFACTUUR_ID=$max_factuur and PO_NR=$min_po and PRS_BEDRIJF_KEY=$min_bedrijf">
<xsl:copy-of select="."/>
</xsl:if>
@@ -850,14 +861,23 @@
<xsl:variable name="this_reg">
<xsl:value-of select="REGEL"/>
</xsl:variable>
<xsl:variable name="prev_btw">
<xsl:choose>
<xsl:when test="position()=1">Quqelequ</xsl:when>
<xsl:otherwise><xsl:value-of select="preceding-sibling::data_row[1]/FIN_BTWTABELWAARDE_PERC"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="this_btw">
<xsl:value-of select="FIN_BTWTABELWAARDE_PERC"/>
</xsl:variable>
<!-- Als 'this' != 'prev', dan nieuwe factuurregel! -->
<xsl:if test="$this_reg!=$prev_reg">
<xsl:if test="$this_reg!=$prev_reg or $this_btw!=$prev_btw">
<tr>
<td style="border-bottom:1px solid black;"><xsl:value-of select="CNT_CONTRACT_NUMMER"/></td>
<td colspan="3" style="border-bottom:1px solid black;"><xsl:value-of select="REGEL"/></td>
<td style="border-bottom:1px solid black;"><xsl:value-of select="FIN_BTWTABELWAARDE_PERC"/> %</td>
<td style="text-align:right;border-bottom:1px solid black;"><xsl:value-of select="format-number(sum(msxml:node-set($sortfilter)/data_row[REGEL=$this_reg]/MNDNET), '###.###.##0,00', 'european')"/></td>
<td style="text-align:right;border-bottom:1px solid black;"><xsl:value-of select="format-number(sum(msxml:node-set($sortfilter)/data_row[REGEL=$this_reg and FIN_BTWTABELWAARDE_PERC=$this_btw]/MNDNET), '###.###.##0,00', 'european')"/></td>
</tr>
</xsl:if>
</xsl:for-each>

View File

@@ -5,9 +5,9 @@
<xsl:variable name="new_line" select="'&#xA;'"/>
<xsl:template match="/">
<xsl:if test="DC/credit">BEDRIJFSNAAM;LEVERANCIERNUMMER;BEZOEK_ADRES;BEZOEK_POSTCODE;BEZOEK_PLAATS;BEZOEK_LAND;POST_ADRES;POST_POSTCODE;POST_PLAATS;POST_LAND;BEDRIJF_TELEFOON;BEDRIJF_FAX;BEDRIJF_EMAIL;CONTACTPERSOON;CONTACT_TELEFOON;CONTACT_FAX;BEDRIJF_XSL;BEDRIJF_ORDER_ADRES;LEVERANCIER;UITVOERENDE;CONTRACTANT;HUURDER;TOONINGIDS;UURLOON;OVEREENKOMSTNUMMER;OVEREENKOMSTDATUM;OPMERKING;DIENST;LOCATIECODE;GEBOUWCODE<xsl:value-of select="$new_line"/></xsl:if>
<xsl:if test="DC/credit">BEDRIJFSNAAM;LEVERANCIERNUMMER;BEZOEK_ADRES;BEZOEK_POSTCODE;BEZOEK_PLAATS;BEZOEK_LAND;POST_ADRES;POST_POSTCODE;POST_PLAATS;POST_LAND;BEDRIJF_TELEFOON;BEDRIJF_FAX;BEDRIJF_EMAIL;CONTACTPERSOON;CONTACT_TELEFOON;CONTACT_FAX;BEDRIJF_XSL;BEDRIJF_ORDER_ADRES;LEVERANCIER;UITVOERENDE;CONTRACTANT;HUURDER;TOONINGIDS;UURLOON;OVEREENKOMSTNUMMER;OVEREENKOMSTDATUM;OPMERKING;DIENST;LOCATIECODE;GEBOUWCODE;RELATIETYPE<xsl:value-of select="$new_line"/></xsl:if>
<xsl:for-each select="DC/credit">
<xsl:value-of select="name"/>;<xsl:value-of select="creditor"/>;<xsl:value-of select="address_1"/><xsl:text> </xsl:text><xsl:value-of select="house_nr"/><xsl:value-of select="house_nr_addition"/>;<xsl:value-of select="postal_code"/>;<xsl:value-of select="city"/>;<xsl:value-of select="country"/>;;;;;<xsl:value-of select="telephone"/>;<xsl:value-of select="fax_nr"/>;<xsl:value-of select="e_mail"/>;<xsl:value-of select="contact"/>;<xsl:value-of select="telephone_contact"/>;;;;;J;J;;;;;;;;;<xsl:value-of select="$new_line"/>
<xsl:value-of select="name"/>;<xsl:value-of select="creditor"/>;<xsl:value-of select="address_1"/><xsl:text> </xsl:text><xsl:value-of select="house_nr"/><xsl:value-of select="house_nr_addition"/>;<xsl:value-of select="postal_code"/>;<xsl:value-of select="city"/>;<xsl:value-of select="country"/>;;;;;<xsl:value-of select="telephone"/>;<xsl:value-of select="fax_nr"/>;<xsl:value-of select="e_mail"/>;<xsl:value-of select="contact"/>;<xsl:value-of select="telephone_contact"/>;;;;;J;J;;;;;;;;;;<xsl:value-of select="$new_line"/>
</xsl:for-each>
</xsl:template>

View File

@@ -6,14 +6,7 @@
*/
#headerfunctions, #headerdate {
color: white;
}
.headerToggle i, .headerToggle:hover i {
color: #fff;
}
/* HOUT#39495 recent gewijzigd + uitvoertijd overschreden */
tr.updated.expired2 td {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -2052,6 +2052,263 @@ Beste <xsl:value-of select="voor/naam_friendly"/>,
</xsl:choose>
</xsl:template>
<xsl:template match="bestelopdracht" mode="include">
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">
<TR>
<TD WIDTH="40" ROWSPAN="30" ID="LINKERMARGE"></TD>
<TD>
<!-- Bestelopdracht -->
<table border="0" bordercolor="#ffffff" width="100%">
<tr>
<td colspan="4" class="caption" style="text-align:center">
<b><xsl:value-of select="//lcl/BES/inkooporder"/></b>
</td>
</tr>
<tr>
<td colspan="4" style="height:30px"/>
</tr>
<tr>
<td colspan="2" class="label" style="width:50%">
<b><xsl:value-of select="//lcl/BES/factuur_aan"/>:</b>
</td>
<td class="label" colspan="2" style="width:50%">
<b><xsl:value-of select="//lcl/BES/leverancier"/>:</b>
</td>
</tr>
<tr>
<td colspan="2" class="value">
<xsl:value-of select="factuuradres/naam"/>
<br/>
<xsl:value-of select="factuuradres/post_adres"/>
<br/>
<xsl:value-of select="factuuradres/post_postcode"/>&#xA0;
<xsl:value-of select="factuuradres/post_plaats"/>
<br/>
<xsl:value-of select="factuuradres/post_land"/>
</td>
<td colspan="2" class="value">
<xsl:value-of select="bedrijf/naam"/>
<br/>
<xsl:value-of select="bedrijf/post_adres"/>
<br/>
<xsl:value-of select="bedrijf/post_postcode"/>&#xA0;
<xsl:value-of select="bedrijf/post_plaats"/>
<br/>
<xsl:value-of select="bedrijf/post_land"/>
</td>
</tr>
<tr>
<td colspan="4" style="height:20px"/>
</tr>
<tr>
<td colspan="2" class="label">
<b><xsl:value-of select="//lcl/FAC/contactgegevens"/>:</b>
</td>
<td/>
<td colspan="2">
<b/>
</td>
</tr>
<tr>
<td style="vertical-align:top" class="label" width="20%">
<b><xsl:value-of select="//lcl/BES/besteller"/></b>
</td>
<td class="value" width="30%">:
<xsl:value-of select="bestelling/aanvrager/naam_full"/>
</td>
<td class="label" width="22%">
<b><xsl:value-of select="//lcl/BES/aanvraagnummers"/></b>
</td>
<td class="value" width="28%">:
<xsl:value-of select="bestelling/key"/>
</td>
</tr>
<tr>
<td class="label">
<b><xsl:value-of select="//lcl/FAC/e-mail"/></b>
</td>
<td class="value">:
<xsl:value-of select="bestelling/aanvrager/email"/>
</td>
<td class="label">
<b><xsl:value-of select="//lcl/BES/opdrachtnummer"/></b>
</td>
<td class="value">:
<xsl:value-of select="id"/>
</td>
</tr>
<tr>
<td class="label">
<b><xsl:value-of select="//lcl/FAC/telefoon"/></b>
</td>
<td class="value">:
<xsl:choose>
<xsl:when test="bestelling/aanvrager/telefoonnr">
<xsl:value-of select="bestelling/aanvrager/telefoonnr"/>
</xsl:when>
<xsl:when test="bestelling/aanvrager/mobiel!=''">
<xsl:value-of select="bestelling/aanvrager/mobiel"/>
</xsl:when>
</xsl:choose>
</td>
<td class="label">
<b><xsl:value-of select="//lcl/BES/orderdatum"/></b>
</td>
<td class="value">:
<xsl:value-of select="datum/datum"/>
</td>
</tr>
<tr>
<td class="label">
<b><xsl:value-of select="//lcl/FAC/kostenplaats"/></b>
</td>
<td class="value">:
<xsl:value-of select="bestelling/kostenplaats/nr"/>
</td>
<td class="label">
<b><xsl:value-of select="//lcl/BES/gewenste_afleverdatum"/></b>
</td>
<td class="value">:
<xsl:value-of select="bestelling/leverdatum/datum"/>
</td>
</tr>
<tr>
<td class="label">
<b><xsl:value-of select="//lcl/FAC/werkplek"/></b>
</td>
<td class="value">:
<xsl:value-of select="bestelling/plaats"/>
</td>
<td colspan="2"/>
</tr>
<tr>
<td colspan="4" style="height:20px"/>
</tr>
<tr>
<td colspan="2" class="label">
<b><xsl:value-of select="//lcl/BES/afleveradres"/>:</b>
</td>
<td colspan="2">
<b/>
</td>
</tr>
<tr>
<td colspan="2" style="vertical-align:top" class="value">
<xsl:value-of select="afleveradres/naam"/>
<xsl:if test="afleveradres/bezoek_adres">
<br/>
<xsl:value-of select="afleveradres/bezoek_adres"/>
<br/>
<xsl:value-of select="afleveradres/bezoek_postcode"/>&#xA0;
<xsl:value-of select="afleveradres/bezoek_plaats"/>
<br/>
<xsl:value-of select="afleveradres/bezoek_land"/>
</xsl:if>
</td>
<td colspan="2"/>
</tr>
<xsl:if test="bestelling/bestel_opm">
<tr>
<td height="10px" colspan="4"/>
</tr>
<tr>
<td class="label" style="vertical-align:top"><b><xsl:value-of select="//lcl/FAC/opmerkingen"/></b></td>
<td class="value" colspan="3">:
<xsl:call-template name="linebreaks">
<xsl:with-param name="string" select="bestelling/bestel_opm"/>
</xsl:call-template>
</td>
</tr>
</xsl:if>
<tr>
<td colspan="4" style="height:20px"/>
</tr>
<tr>
<xsl:for-each select="bestelling/kenmerk[@type!='L' and @type!='l' and @type!='Q']">
<td class="label" style="vertical-align:top">
<b><xsl:value-of select="@naam"/></b>
</td>
<td class="value">:
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
<tr>
<td colspan="4" style="height:20px"/>
</tr>
<tr>
<td colspan="4" style="border-top:1px solid #000;"/>
</tr>
<TR>
<TD colspan="7">
<TABLE cellpadding="1" cellspacing="0" border="0" bordercolor="#000000" frame="box" width="99%">
<tr>
<th class="besth" style="width:9%; text-align:left"><xsl:value-of select="//lcl/BES/regel"/></th>
<th class="besth" style="width:13%; text-align:left"><xsl:value-of select="//lcl/BES/artikelnr"/></th>
<th class="besth" style="width:36%"><xsl:value-of select="//lcl/FAC/omschrijving"/></th>
<th class="besth" style="width:11%; text-align:left"><xsl:value-of select="//lcl/FAC/eenheid"/></th>
<th class="besth" style="width:9%; text-align:right"><xsl:value-of select="//lcl/FAC/aantal"/></th>
<th class="besth" style="width:11%; text-align:right"><xsl:value-of select="//lcl/FAC/prijs"/></th>
<th class="besth" style="width:11%; text-align:right"><xsl:value-of select="//lcl/FAC/totaal"/></th>
</tr>
<xsl:for-each select="bestelopdrachtitem">
<xsl:sort select="srtdeel/omschrijving"/>
<xsl:sort select="posnr" data-type="number"/>
<tr>
<td class="besresult">
<xsl:value-of select="posnr"/>
</td>
<td class="besresult">
<xsl:value-of select="bestelitem/srtdeel/artikel_nummer"/>
</td>
<td class="besresult">
<xsl:value-of select="bestelitem/srtdeel/omschrijving"/>&#xA0;
<xsl:for-each select="bestelitem/kenmerk">
<br/>
<xsl:value-of select="@naam"/>: <xsl:value-of select="."/></xsl:for-each>
</td>
<td class="besresult">
<xsl:value-of select="bestelitem/srtdeel/eenheid"/>
</td>
<td class="besresult" style="text-align:right">
<xsl:value-of select="aantal"/>
</td>
<td class="besresult" style="text-align:right">
<xsl:value-of select="format-number(prijs, '0,00', 'european')"/>
</td>
<td class="besresult" style="text-align:right">
<xsl:value-of select="format-number(totaal, '0,00', 'european')"/>
</td>
</tr>
</xsl:for-each>
<tr>
<td colspan="7" height="6px" style="border-top:1px solid #000;"/>
</tr>
<tr>
<td colspan="6"/>
<td style="text-align:right">
<b>
<xsl:value-of select="format-number(sum(bestelopdrachtitem/totaal), '0,00', 'european')"/>
</b>
</td>
</tr>
</TABLE>
</TD>
</TR>
<tr>
<td colspan="4" style="height:40px"/>
</tr>
<tr>
<td colspan="4" style="text-align:center; font-size:9px"><xsl:value-of select="//lcl/BES/order_disclaimer1"/>(<xsl:value-of select="id"/>)<xsl:value-of select="//lcl/BES/order_disclaimer2"/></td>
</tr>
</table>
</TD>
<TD WIDTH="30" ROWSPAN="30" ID="RECHTERMARGE"/>
</TR>
</TABLE>
</xsl:template>
<xsl:template match="bezoeker" mode="full">
<xsl:choose>
<xsl:when test="$mode='summary'"><xsl:value-of select="naam"/> van <xsl:value-of select="bedrijf"/> is gearriveerd bij de receptie. Wil je zo vriendelijk zijn je bezoek op te halen?</xsl:when>
@@ -2246,20 +2503,27 @@ Beste <xsl:value-of select="voor/naam_friendly"/>,
<xsl:sort select="NUMMER"/>
<xsl:if test="position() &gt;= $p_pos and position() &lt;= $p_pos + $p_cols - 1">
<td style="width:33%;text-align:left;font-size: 12pt;padding-left:10px;padding-top:5px">
<xsl:value-of select="GASTHEER"/><br/>
<xsl:value-of select="VOORZIENING_AANTAL"/>&#160;<xsl:value-of select="VOORZIENING_PRODUCT"/><br/>
<xsl:value-of select="substring(VAN,9,2)"/>-<xsl:value-of select="substring(VAN,6,2)"/>-<xsl:value-of select="substring(VAN,1,4)"/>&#160;&#160;
<xsl:value-of select="substring(substring-after(VAN,'T'),1,5)"/>-<xsl:value-of select="substring(substring-after(TOT,'T'),1,5)"/><br/>
<xsl:choose>
<xsl:when test="substring(RES_OMSCHRIJVING, 1, 5) = 'Afl: '">
<xsl:value-of select="GEBOUW"/>-<xsl:value-of select="substring-after(RES_OMSCHRIJVING, 'Afl: ')"/><br/>
<xsl:when test="STATUS = 'Vervallen'">
VERVALLEN
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="GEBOUW"/>-<xsl:value-of select="VERDIEPING"/>-<xsl:value-of select="RUIMTE"/><br/>
<xsl:value-of select="GASTHEER"/><br/>
<xsl:value-of select="VOORZIENING_AANTAL"/>&#160;<xsl:value-of select="VOORZIENING_PRODUCT"/><br/>
<xsl:value-of select="substring(VAN,9,2)"/>-<xsl:value-of select="substring(VAN,6,2)"/>-<xsl:value-of select="substring(VAN,1,4)"/>&#160;&#160;
<xsl:value-of select="substring(substring-after(VAN,'T'),1,5)"/>-<xsl:value-of select="substring(substring-after(TOT,'T'),1,5)"/><br/>
<xsl:choose>
<xsl:when test="substring(RES_OMSCHRIJVING, 1, 5) = 'Afl: '">
<xsl:value-of select="GEBOUW"/>-<xsl:value-of select="substring-after(RES_OMSCHRIJVING, 'Afl: ')"/><br/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="GEBOUW"/>-<xsl:value-of select="VERDIEPING"/>-<xsl:value-of select="RUIMTE"/><br/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="BEZOEKERS != ''">(<xsl:value-of select="BEZOEKERS"/> personen)<br/></xsl:if>
<xsl:value-of select="NUMMER"/><br/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="BEZOEKERS != ''">(<xsl:value-of select="BEZOEKERS"/> personen)<br/></xsl:if>
<xsl:value-of select="NUMMER"/><br/>
</td>
</xsl:if>
@@ -2782,4 +3046,4 @@ END:VCALENDAR
</html>
</xsl:template>
</xsl:stylesheet>
<!-- Stylesheet edited using Stylus Studio - (c) 2004-2009. Progress Software Corporation. All rights reserved. --><!-- Stylesheet edited using Stylus Studio - (c) 2004-2009. Progress Software Corporation. All rights reserved. --><!-- Stylesheet edited using Stylus Studio - (c) 2004-2009. Progress Software Corporation. All rights reserved. --><!-- Stylesheet edited using Stylus Studio - (c) 2004-2009. Progress Software Corporation. All rights reserved. --><!-- Stylesheet edited using Stylus Studio - (c) 2004-2009. Progress Software Corporation. All rights reserved. --><!-- Stylesheet edited using Stylus Studio - (c) 2004-2009. Progress Software Corporation. All rights reserved. -->
<!-- Stylesheet edited using Stylus Studio - (c) 2004-2009. Progress Software Corporation. All rights reserved. --><!-- Stylesheet edited using Stylus Studio - (c) 2004-2009. Progress Software Corporation. All rights reserved. --><!-- Stylesheet edited using Stylus Studio - (c) 2004-2009. Progress Software Corporation. All rights reserved. --><!-- Stylesheet edited using Stylus Studio - (c) 2004-2009. Progress Software Corporation. All rights reserved. --><!-- Stylesheet edited using Stylus Studio - (c) 2004-2009. Progress Software Corporation. All rights reserved. --><!-- Stylesheet edited using Stylus Studio - (c) 2004-2009. Progress Software Corporation. All rights reserved. --><!-- Stylesheet edited using Stylus Studio - (c) 2004-2009. Progress Software Corporation. All rights reserved. -->

View File

@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="urn:sap-com:document:sap:idoc:messages"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:comment>woconr;leveranciernr;factuurnr;factuurdatum;onderwerp;opdrachtnr;omschrijving;bedrag;btwperc;btwbedrag;btw_verlegd;document;iban;G_iban;G_bedrag;kvk_nr;btw_nr;afleverdatum</xsl:comment>
<xsl:for-each select="//ns0:INVOIC02/IDOC/E1EDP01">
<xsl:value-of select="../E1EDKA1[PARVW='RG']/PARTN"/>;<xsl:value-of select="../E1EDKA1[PARVW='BK']/LIFNR"/>;<xsl:value-of select="../E1EDK01/BELNR"/>;<xsl:call-template name="get_factuurdatum"/>;;<xsl:call-template name="get_customer_po"/>;<xsl:call-template name="construct_factuurregel_omschr"/>;<xsl:value-of select="E1EDP26[QUALF='003']/BETRG"/>;<xsl:call-template name="VATInformation"/>;<xsl:call-template name="get_filename_attachment"/>;<xsl:value-of select="../E1EDK28[1]/ACNUM"/>;<xsl:value-of select="../E1EDK28[2]/ACNUM"/>;<xsl:call-template name="get_gbedrag"/>;<xsl:call-template name="get_kvk"/>;<xsl:call-template name="get_btwnr"/>;<xsl:call-template name="get_opleverdatum"/>;&#10;</xsl:for-each>
</xsl:template>
<xsl:template name="get_factuurdatum">
<!-- Factuurdatum staat in formaat yyyymmdd, gaan we overzetten met streepjes ertussen, in dd-mm-yyyy -->
<xsl:variable name="l_datum"><xsl:value-of select="../E1EDK02[QUALF='009']/DATUM"/></xsl:variable>
<xsl:value-of select="substring($l_datum,7,2)"/>-<xsl:value-of select="substring($l_datum,5,2)"/>-<xsl:value-of select="substring($l_datum,1,4)"/>
</xsl:template>
<xsl:template name="get_customer_po">
<xsl:variable name="l_marnr"><xsl:value-of select="substring-before(../E1EDK02[QUALF='001']/BELNR,' / ')"/></xsl:variable>
<xsl:choose>
<xsl:when test="$l_marnr != ''"><xsl:value-of select="$l_marnr"/></xsl:when>
<xsl:otherwise><xsl:value-of select="../E1EDK02[QUALF='001']/BELNR"/></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="get_filename_attachment">
<xsl:choose>
<xsl:when test="../Attachments/Attachment/@fileName != ''"><xsl:value-of select="../Attachments/Attachment/@fileName"/></xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template name="VATInformation">
<!-- Deze template levert het gedeelte [btwperc;btwbedrag;btw_verlegd] op -->
<!-- Let even op: geen voorgaande ; en zeker ook geen ; op einde, dat gebeurt in de aanroepende regel (hierboven dus) -->
<!-- Let op: btw bedrag wordt niet uit SidB uit de node InvoiceLine aangeboden, dus deze is hier altijd leeg. -->
<xsl:choose>
<xsl:when test="E1EDP04/MSATZ != ''"><xsl:value-of select="E1EDP04/MSATZ"/>;</xsl:when>
<xsl:otherwise>21;</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<!-- BTW verlegd = Ja -->
<xsl:when test="E1EDK05[KSCHL='ZWKA']/BETRG != '' or
E1EDK05[KSCHL='ZWKA']/BETRG != '0' or
E1EDK05[KSCHL='ZWKA']/BETRG != '0.00'">;Ja</xsl:when>
<!-- BTW verlegd = Nee, veld btw_verlegd in CSV gewoon leeg laten-->
<xsl:otherwise>;</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="construct_factuurregel_omschr">
<xsl:call-template name="vrije_tekst">
<xsl:with-param name="p_string">
<xsl:if test="MENGE != ''"><xsl:value-of select="MENGE"/><xsl:text> </xsl:text></xsl:if>
<xsl:if test="MENEE != ''"><xsl:value-of select="MENEE"/><xsl:text> </xsl:text></xsl:if>
<xsl:if test="E1EDP19[QUALF='002']/IDTNR != ''"><xsl:value-of select="E1EDP19[QUALF='002']/IDTNR"/><xsl:text> - </xsl:text></xsl:if>
<xsl:if test="E1EDP19[QUALF='002']/KTEXT != ''"><xsl:value-of select="E1EDP19[QUALF='002']/KTEXT"/></xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="get_gbedrag">
<xsl:value-of select="../E1EDK05[KSCHL='ZWKA']/BETRG"/>
</xsl:template>
<xsl:template name="get_kvk">
<xsl:variable name="l_kvk"><xsl:value-of select="substring-before(../E1EDKA1[PARVW='BK']/TELBX,' / ')"/></xsl:variable>
<xsl:choose>
<xsl:when test="$l_kvk != ''"><xsl:value-of select="$l_kvk"/></xsl:when>
<xsl:otherwise><xsl:value-of select="../E1EDKA1[PARVW='BK']/TELBX"/></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="get_btwnr">
<xsl:value-of select="../E1EDK01/EIGENUINR"/>
</xsl:template>
<xsl:template name="get_opleverdatum">
<xsl:value-of select="../E1EDK03[IDDAT='001']/DATUM"/>
</xsl:template>
<xsl:template name="vrije_tekst">
<xsl:param name="p_string"/>
<xsl:variable name="l_string_esc_quotes"><xsl:call-template name="escape_quote"><xsl:with-param name="string" select="$p_string"/></xsl:call-template></xsl:variable>
<xsl:variable name="l_string_esc_linebreaks"><xsl:call-template name="escape_linebreaks"><xsl:with-param name="string" select="$l_string_esc_quotes"/></xsl:call-template></xsl:variable>"<xsl:value-of select="$l_string_esc_linebreaks"/>"</xsl:template>
<xsl:template name="escape_quote">
<xsl:param name="string"/>
<xsl:choose>
<xsl:when test="contains($string, '&quot;')"><xsl:value-of select="substring-before($string, '&quot;')"/>&quot;&quot;<xsl:call-template name="escape_quote">
<xsl:with-param name="string" select="substring-after($string, '&quot;')"/></xsl:call-template></xsl:when>
<xsl:otherwise><xsl:value-of select="$string"/></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="escape_linebreaks">
<xsl:param name="string"/>
<xsl:choose>
<xsl:when test="contains($string, '&#xA;')"><xsl:value-of select="substring-before($string, '&#xA;')"/>@@<xsl:call-template name="escape_linebreaks">
<xsl:with-param name="string" select="substring-after($string, '&#xA;')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise><xsl:value-of select="$string"/></xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View File

@@ -171,7 +171,6 @@
<tr>
<td colspan="2" class="tekst">
<xsl:choose>
<xsl:when test="$srtnotificatiecode='RESNEW'"/>
<xsl:when test="$srtnotificatiecode='RESDEL'"><xsl:value-of select="//lcl/RES/reservering_vervallen"/></xsl:when>
<xsl:otherwise>
<xsl:call-template name="res_begintext"/>

BIN
CUST/VEST/banner.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

0
CUST/VEST/export/.gitignore vendored Normal file
View File

0
CUST/VEST/import/.gitignore vendored Normal file
View File

BIN
CUST/VEST/oracle.udl Normal file

Binary file not shown.

View File

@@ -0,0 +1,4 @@
@echo off
REM Moet gescheduled worden (normaliter 1 keer per uur) om door de applicatiebeheerder
REM ingeregelde notificaties te genereren.
cscript ..\..\..\utils\gen_notify\gen_notify.js ../oracle.udl VEST

View File

@@ -0,0 +1,4 @@
@echo off
REM Moet gescheduled worden (normaliter 1 keer per dag) om door de applicatiebeheerder
REM ingeregelde jobs (aanmaak van periodieke opdrachten) uit te voeren.
cscript ..\..\..\utils\gen_scheduler\gen_scheduler.js ../oracle.udl

View File

@@ -0,0 +1 @@
call ..\..\..\utils\putOrders\putOrders.bat

BIN
CUST/VEST/tmp_logo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

0
CUST/VEST/xsl/.gitignore vendored Normal file
View File

View File

@@ -610,10 +610,30 @@ Kempen &amp; Co N.V. is statutair gevestigd aan de Beethovenstraat 300, 1077 WZ
</td>
</tr>
</table>
<xsl:choose>
<xsl:choose>
<!--301=Interne opdracht-->
<xsl:when test="opdrachttype/key!='301'">
<table border="0" width="100%" cellpadding="2" cellspacing="2">
<xsl:if test="extra_key">
<xsl:variable name="ox_key"><xsl:value-of select="extra_key"/></xsl:variable>
<tr>
<td align="right" width="15%" colspan="1" valign="top" style="padding-top:15px;padding-bottom:10px;align:left">
<b><xsl:value-of select="//lcl/FAC/bericht"/>:</b>
</td>
<td colspan="3" style="padding-top:15px;padding-bottom:10px;align:right">
<xsl:call-template name="linebreaks">
<xsl:with-param name="string" select="notes/note[key=$ox_key]/omschrijving"/>
</xsl:call-template>
</td>
</tr>
<tr>
<td colspan="4" style="padding-bottom:15px;">
<hr/>
</td>
</tr>
</xsl:if>
<tr>
<td colspan="4">
<br/><xsl:value-of select="uitvoerende/bedrijf/naam"/>
@@ -627,6 +647,24 @@ Kempen &amp; Co N.V. is statutair gevestigd aan de Beethovenstraat 300, 1077 WZ
</xsl:when>
<xsl:otherwise>
<table border="0" width="100%" cellpadding="2" cellspacing="2">
<xsl:if test="extra_key">
<xsl:variable name="ox_key"><xsl:value-of select="extra_key"/></xsl:variable>
<tr>
<td align="right" width="15%" colspan="1" valign="top" style="padding-top:15px;padding-bottom:10px;align:left">
<b><xsl:value-of select="//lcl/FAC/bericht"/>:</b>
</td>
<td colspan="3" style="padding-top:15px;padding-bottom:10px;align:right">
<xsl:call-template name="linebreaks">
<xsl:with-param name="string" select="notes/note[key=$ox_key]/omschrijving"/>
</xsl:call-template>
</td>
</tr>
<tr>
<td colspan="4" style="padding-bottom:15px;">
<hr/>
</td>
</tr>
</xsl:if>
<tr>
<td colspan="4">
<br/><xsl:value-of select="uitvoerende/bedrijf/naam"/>