Merge 2016.2 Gold A patches

svn path=/Website/trunk/; revision=31089
This commit is contained in:
Jos Groot Lipman
2016-10-13 18:12:52 +00:00
41 changed files with 453 additions and 276 deletions

View File

@@ -132,6 +132,15 @@ function locatie_list(pautfunction, params)
eDelete = true;
return ({eDelete: eDelete})
}
function fnrowFlexParams(oRs)
{
var loc_key = oRs("alg_locatie_key").Value;
var this_alg = alg.func_enabled(loc_key, "L");
var flexParams = { readman: this_alg.readman, readuse: this_alg.readuse};
return flexParams;
}
%>
<html>
@@ -212,6 +221,7 @@ function locatie_list(pautfunction, params)
outputmode: outputmode,
flexModule: "ALG",
flexId: "alg_locatie_key",
flexParams: fnrowFlexParams,
filterParams: params,
buttons: addButton
});

View File

@@ -53,7 +53,10 @@ var JSON_Result = true;
}
if (callback)
{
Response.ContentType = "application/javascript";
Response.Write(callback + "(" + JSON.stringify(result) + ")");
}
else
Response.Write(JSON.stringify(result));
%>

View File

@@ -31,6 +31,7 @@ var EXPIRED_PASSWORD_OK = true; // performance
var sitenoroot = proto + "://" + Request.ServerVariables("SERVER_NAME");
var site = sitenoroot + rooturl;
Response.ContentType = "application/javascript";
//lcl.buildClientLCL();
// LET OP: Geen FcltMgr.js en dus niet (clientside) zelflerend
%>

View File

@@ -186,7 +186,7 @@ function model_reportcolumns(usrrap_key, params)
// PF: jawel, maar dan is het een procedure waarvan je de structuur niet zo op kunt vragen?!
// Vandaar de regel hiervoor, die zorgt dat we hier al weg zijn. Ik denk dat de shortname dan verder
// niet meer voorkomt eigenlijk.
var view_name_short = view_name;
var view_name_short = view_name.toUpperCase();
var i = view_name_short.indexOf('.');
if (i != -1)
view_name_short = view_name_short.substring(i+1);

View File

@@ -139,8 +139,12 @@ function opdr_list (pautfunction, params)
+ ", bes_bestelling_parentkey"
+ ", bes_bestelopdr_opmerking"
+ ", bes_bestelopdr_delivery_opmerk"
+ ", boi.bes_bestelopdr_item_aantal"
+ ", boi.bes_bestelopdr_item_aantalontv"
+ ", (SELECT SUM(boi1.bes_bestelopdr_item_aantal)"
+ " FROM bes_bestelopdr_item boi1"
+ " WHERE boi1.bes_bestelopdr_key = boi.bes_bestelopdr_key) bes_bestelopdr_item_aantal"
+ ", (SELECT SUM(boi1.bes_bestelopdr_item_aantalontv)"
+ " FROM bes_bestelopdr_item boi1"
+ " WHERE boi1.bes_bestelopdr_key = boi.bes_bestelopdr_key) bes_bestelopdr_item_aantalontv"
+ " FROM bes_bestelopdr b"
+ ", prs_bedrijf be"
+ ", mld_adres ma"

View File

@@ -1,3 +1,4 @@
<!-- #include file="../Shared/json2.js" -->
<% /*
$Revision$
$Id$
@@ -972,30 +973,15 @@ cnt = { setcontractstatus:
}
oRs_loc.Close();
// Alleen personen met rechten op de afdelingen van de contracten mogen deze inzien.
// Daarvoor hebben we de afdeling van het contract nodig.
var sql_afd = "SELECT k.prs_afdeling_key"
+ " FROM cnt_contract c"
+ " , prs_afdeling k"
+ " WHERE c.prs_kostenplaats_key = k.prs_kostenplaats_key"
+ " AND c.cnt_contract_key = " + pcnt_contract_key;
var oRs_afd = Oracle.Execute(sql_afd);
var afd_arr = [];
while (!oRs_afd.eof)
{
var ors_afd_key = oRs_afd("prs_afdeling_key").Value;
if (ors_afd_key)
afd_arr.push(ors_afd_key);
oRs_afd.MoveNext();
}
oRs_afd.Close();
var afd_key = cnt_info.afdeling_key_eig; // te controleren
if (user == cnt_info.perslid_key_eig || user == cnt_info.perslid_key_beh)
afd_key = null; // dan niet moeilijk doen over de afdeling
// Als een contract geen locaties heeft dan heb je alle rechten op dat contract.
var cresult = user.func_enabled2("CNT",
{ ins_discipline_key: cnt_info.discipline_key,
loc_key: loc_arr,
prs_key: user_key, // key_eig, // TODO: Vind de juiste perslid. Je hebt prs_afdeling_key_eig
afd_key: afd_arr,
afd_key: afd_key,
checkOptimistic: false, // checkOptimistic
isOptional: true
});

View File

@@ -119,6 +119,7 @@ function generateFlexKenmerkCode(params)
cnt_key,
{ flexcolumns: nrflexcolumns,
kenmerk_search: advanced,
hideVervallen: cnt_key<0,
fnIsReadonly: isReadonly,
fnIsInvisible: isInvisible,
parentKey: cnt_key }

View File

@@ -262,7 +262,7 @@ function fac_usrrap_list_graph (model, scf_params)
var l_labels = [];
for (y=0; y<l_axes.yas.length; y++)
{
l_labels.push(l_axes.yas[y].naam);
l_labels.push(l_axes.yas[y].naam || "&nbsp;");
}
var default_options = eval('(' + l_init.default_options + ')');

View File

@@ -21,7 +21,7 @@ user.checkAutorisation("WEB_FACFAC");
var fso = Server.CreateObject("Scripting.FileSystemObject")
var result = {};
var result = { svnrevision: parseInt("$Revision$".replace(/\D/g,'')) };
// Vrije ruimte
try
{
@@ -64,7 +64,7 @@ if (fname)
for (; !fc.atEnd(); fc.moveNext())
{
var f = fc.item();
var filedata = { name: f.Name, date: new Date(f.DateLastModified), size: f.Size };
var filedata = { name: f.Name, date: new Date(f.DateLastModified).getTime(), size: f.Size };
if (filedata.date < new Date().getTime() - 7*24*60*60*1000) // alleen laatste week
continue;
filedata.url = HTTP.urlzelf() + "/temp/" + fname + "/" + f.Name;

View File

@@ -52,10 +52,10 @@ for (; !fc1.atEnd(); fc1.moveNext())
tmStart2 = new Date();
var str = "File Name=" + udl;
Oracle.Open(str);
result.ora = Oracle.Properties("Data source").Value;
result.datasource = Oracle.Properties("Data source").Value;
result.uname = Oracle.Properties("User Name").Value;
result.logfilename = Application(fldr.Name + "_logfilename");
result.logfilename = Application(result.cust + "_logfilename");
if (typeof result.logfilename == "undefined")
{
var sql = "SELECT fac.getsetting('fac_logfilename') FROM DUAL";
@@ -66,28 +66,19 @@ for (; !fc1.atEnd(); fc1.moveNext())
if (result.logfilename)
result.logfilename += ".html";
else
result.logfilename = "temp/log_"+fldr.Name.toUpperCase()+".html"
result.logfilename = "temp/log_" + result.cust + ".html"
var sql = "select fac.getdbversion() fac_version, 'DB'||fac_version_schema fac_version_schema from fac_version";
var sql = "SELECT 'DB'||fac_version_schema fac_version_schema"
+ " FROM fac_version";
var oRs = Oracle.Execute(sql);
result.facversion = oRs("fac_version").Value;
result.schemaversion = oRs("fac_version_schema").Value;
oRs.Close();
var sql = "select count(*) from fac_v_orderqueue";
var sql = "SELECT count(*) FROM fac_v_orderqueue";
var oRs = Oracle.Execute(sql);
result.orderqueue = oRs(0).Value;
oRs.Close();
var sql = "SELECT max(adm_tracking_date) datum"
+ " FROM adm_tracking"
+ " WHERE adm_tracking_name LIKE '%recreate.%'";
oRs = Oracle.Execute(sql);
if (!oRs.Eof && oRs("datum").Value != null)
{
result.recreate_date = new Date(oRs("datum").Value).getTime();
}
oRs.Close();
Oracle.Close();
}
catch (e)
@@ -131,7 +122,8 @@ for (; !fc1.atEnd(); fc1.moveNext())
result = { aFCLT: aFCLT,
retrieved: new Date().getTime(),
duration : new Date().getTime() - tmStartAll
duration : new Date().getTime() - tmStartAll,
svnrevision: parseInt("$Revision$".replace(/\D/g,''))
};
var SHAinfo = findSHAinfo();

View File

@@ -20,9 +20,15 @@ var JSON_Result = true;
recent: [] };
tmStart2 = new Date();
result.ora = Oracle.RealConnection.Properties("Data source").Value;
result.datasource = Oracle.RealConnection.Properties("Data source").Value;
result.uname = Oracle.RealConnection.Properties("User Name").Value;
var sql = "SELECT SYS_CONTEXT('USERENV','DB_NAME') dbname,"
+ " SYS_CONTEXT('USERENV','SERVER_HOST') server FROM DUAL";
var oRs = Oracle.Execute(sql);
result.dbdomain = oRs('dbname').Value + '@' + oRs('server').Value;
oRs.Close();
result.logfilename = Application(customerId + "_logfilename");
if (typeof result.logfilename == "undefined")
{
@@ -117,6 +123,7 @@ var JSON_Result = true;
result.duration = diff;
result.retrieved = (new Date).getTime();
result.svnrevision = parseInt("$Revision$".replace(/\D/g,''));
Response.Write(JSON.stringify(result));
%>

View File

@@ -236,7 +236,7 @@ usrrap = {
{
oRs.Close();
// Stored procedures zijn XXXX.RAP_YYYYY
result.view_name_short = result.view_name;
result.view_name_short = result.view_name.toUpperCase();
var i = result.view_name_short.indexOf('.');
if (i != -1)
result.view_name_short = result.view_name_short.substring(i+1);

View File

@@ -1057,6 +1057,7 @@ checker("Database context",
'DB_DOMAIN',
'DB_NAME',
'HOST',
'SERVER_HOST',
'OS_USER',
'EXTERNAL_NAME',
'IP_ADDRESS',

View File

@@ -421,7 +421,7 @@ function FcltGetRefInfoCallback(json)
window.btwtabel_key = json.btwtabel_key;
window.btwtabel = json.btwtabel;
fin_materiaal = json.opdr_materiaal;
if (fin_materiaal.list.length && !fin_materiaal.readonly)
if (fin_materiaal && fin_materiaal.list.length && !fin_materiaal.readonly)
{
$("#imp_materiaal").show();
}

View File

@@ -72,11 +72,16 @@ authparams = last_this_ins.authparams(autfunction);
for (var i = 0; i < ingesloten.length; i++)
{ // Ik mag het object wijzigen dus voer wijziging uit
var insUpd = buildTrackingUpdate("ins_deel", " ins_deel_key = " + ingesloten[i], fields);
// Submit the changed data
var err = Oracle.Execute(insUpd.sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
if (fields.length)
{
var insUpd = buildTrackingUpdate("ins_deel", " ins_deel_key = " + ingesloten[i], fields);
// Submit the changed data
var err = Oracle.Execute(insUpd.sql, true);
if (err.friendlyMsg)
warning = err.friendlyMsg;
}
else
insUpd = { trackarray: [] };
/* flextrackarray = */ ins.updateKenmerkdeel(ingesloten[i], {multimode: true});

View File

@@ -103,6 +103,9 @@ for (var i = 0; i < ins_key_arr.length; i++)
}
// Ik mag inplannen, gereed melden of wijzigen.
// Alleen de vervallen LOPENDE inspecties zitten hier nog tussen.
// De rest van de vervallen inspecties zijn er door canInspPlan, canInspClose en canInspEdit uitgefilterd.
// Vervallen LOPENDE inspecties kunnen nu behandeld worden als gewone inspecties.
// Alle Arrays zijn even groot.
ingesloten.push(ins_key_arr[i]);
ingeslotensc.push(srtcont_key_arr[i]);
@@ -147,14 +150,12 @@ if (ins_key_arr.length == 1)
var sctype = -1;
var vervaldatum = null;
var aanmaakdatum = null;
var vervallen = false;
var info = "";
sql = "SELECT *"
+ " FROM (SELECT DISTINCT COALESCE (xcp.ins_srtcontroledl_xcp_eenheid, di.ins_srtcontrole_eenheid) eenheid"
+ " , di.ins_srtcontrole_info info"
+ " , di.ins_srtcontrole_mode scmode"
+ " , di.ctr_controle_type sctype"
+ " , xcp.ins_srtcontroledl_xcp_eind vervaldatum"
+ " , di.ins_deel_aanmaak"
+ " FROM ins_v_defined_inspect di"
+ " , ins_srtcontroledl_xcp xcp"
@@ -172,8 +173,6 @@ if (ins_key_arr.length == 1)
info = oRs("info").Value;
scmode = oRs("scmode").Value;
sctype = oRs("sctype").Value;
vervaldatum = oRs("vervaldatum").Value != null? new Date(oRs("vervaldatum").Value) : null;
vervallen = vervaldatum != null && vervaldatum < new Date();
aanmaakdatum = new Date(oRs("ins_deel_aanmaak").Value);
oRs.MoveNext();
while (!oRs.eof)
@@ -642,7 +641,7 @@ if (ins_key_arr.length == 1)
timeStep: 60,
startTime: 0,
endTime: 23.75,
readonly: vervallen || (insEdit && insstatus == 2), // In status "Ingepland(0)" is de plandatum altijd nog aan te passen.
readonly: (insEdit && insstatus == 2), // In status "Ingepland(0)" is de plandatum altijd nog aan te passen.
suppressEmpty: true
});
@@ -750,11 +749,9 @@ if (ins_key_arr.length == 1)
endTime: 23.75,
onChangeDate: "onChangeDeelsrtcdatum('D')",
onChangeTime: "onChangeDeelsrtcdatum('T')",
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties kunnen gereed melden en afronden. De datum moet je dan ook nog kunnen invullen.
readonly: ((vervallen && !(vervallen && (ins_deelsrtcontrole_status == 0 || ins_deelsrtcontrole_status == 2))) ||
(dsc_is_afgemeld && dmj_eenheid == 0) || // Als eenheid in uren(0) is, dan mag de uitvoerdatum/inspectiedatum niet aangepast worden als inspectie is gereed gemeld(5) of afgerond(6).
readonly: ((dsc_is_afgemeld && dmj_eenheid == 0) || // Als eenheid in uren(0) is, dan mag de uitvoerdatum/inspectiedatum niet aangepast worden als inspectie is gereed gemeld(5) of afgerond(6).
(insEdit && ins_deelsrtcontrole_status == 6 && !canMsuEdit) ||
inspect_data.deelsrtcontrole_datum < aanmaakdatum
(inspect_data.deelsrtcontrole_datum != null && inspect_data.deelsrtcontrole_datum < aanmaakdatum)
)
});
}
@@ -772,9 +769,7 @@ if (ins_key_arr.length == 1)
initKey: inspect_data.controlemode_key, // Als de controle mode bij multi verschillend is, dan is deze waarde -1.
emptyOption: L("lcl_select_controlemode"),
required: true,
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties kunnen gereed melden en afronden. De controlemode (methode) moet je dan ook nog kunnen invullen.
readonly: (vervallen && !(vervallen && (ins_deelsrtcontrole_status == 0 || ins_deelsrtcontrole_status == 2))) ||
(insEdit && !canMsuEdit) // Er geldt al (insEdit && insstatus >= 5). In status 6 met INSMSU rechten mag ik de methode aanpassen (canMsuEdit).
readonly: (insEdit && !canMsuEdit) // Er geldt al (insEdit && insstatus >= 5). In status 5 en 6 met INSMSU rechten mag ik de methode aanpassen (canMsuEdit).
});
}
@@ -784,9 +779,7 @@ if (ins_key_arr.length == 1)
inspect_data.deelsrtcontrole_opmerking,
{ html: "rows='8'",
trclass: "invoerinsp",
maxlength: 2000,
// Als de inspectie vervallen is moet je alleen nog de lopende inspecties kunnen gereed melden en afronden. De opmerking moet je dan ook nog kunnen invullen.
readonly: (vervallen && !(vervallen && (ins_deelsrtcontrole_status == 0 || ins_deelsrtcontrole_status == 2)))
maxlength: 2000
}
);
%>
@@ -816,7 +809,6 @@ if (ins_key_arr.length == 1)
generateFlexKenmerkBlock({deelsrtcontrole_key: (!multi && ingeslotendsc[0] > 0? ingeslotendsc[0] : -1),
srtcontrole_key: ingeslotensc[0],
reado: vervallen,
flexcolumns: 1,
ignorerequired: (insPlan || (insEdit && (insstatus == 0 || insstatus == 2))) // Kenmerken zijn pas verplicht bij het gereed melden en het afronden.
});

View File

@@ -12,6 +12,10 @@
<!-- #include file="../api2/model_persons.inc" -->
<%
if (mode == 'list')
{
Oracle.Execute("alter session set nls_comp = 'LINGUISTIC' NLS_SORT = 'BINARY_AI'"); // Zodat m<>ller gevonden wordt
}
var this_model = new model_persons();
scaffolding(this_model,

View File

@@ -203,9 +203,10 @@ var anyorders = !oRs.eof;
oRs.close();
// Fast check to see if we have anything to do with geographics
sql= "SELECT min(ins_srtdiscipline_alg) min_plaats FROM ins_srtdiscipline WHERE (ins_srtdiscipline_alg > 0 OR ins_srtdiscipline_ins > 0 OR ins_srtdiscipline_bes > 0) and ins_srtdiscipline_verwijder is null";
var min_plaats = -1;
sql= "SELECT MIN (ins_srtdiscipline_alg) min_plaats FROM ins_srtdiscipline WHERE ins_srtdiscipline_alg > 0 AND ins_srtdiscipline_verwijder IS NULL";
oRs = Oracle.Execute(sql);
var min_plaats = oRs("min_plaats").Value;
min_plaats = oRs("min_plaats").Value;
oRs.close();
// Fast check to see if we have anything to do with objects

View File

@@ -115,9 +115,10 @@ if (cnt)
var authparams = user.checkAutorisation(autfunction);
// Fast check to see if we have anything to do with geographics
sql= "SELECT min(ins_srtdiscipline_alg) min_plaats FROM ins_srtdiscipline WHERE (ins_srtdiscipline_alg > 0 OR ins_srtdiscipline_ins > 0 OR ins_srtdiscipline_bes > 0) and ins_srtdiscipline_verwijder is null";
var min_plaats = -1;
sql= "SELECT MIN (ins_srtdiscipline_alg) min_plaats FROM ins_srtdiscipline WHERE ins_srtdiscipline_alg > 0 AND ins_srtdiscipline_verwijder IS NULL";
oRs = Oracle.Execute(sql);
var min_plaats = oRs("min_plaats").Value;
min_plaats = oRs("min_plaats").Value;
oRs.close();
// Fast check to see if we have anything to do with call groups

View File

@@ -129,6 +129,8 @@ var this_ins = ins.func_enabled_deel(ins_key,
// Inplannen kan ik niet op mobile.
user.auth_required_or_abort(this_ins.canInspStart || this_ins.canInspClose || this_ins.canInspFinish || this_ins.canDoAnyInspect);
var canMsuEdit = this_ins.canMsuEdit;
if (srtcontrole_key < 0 || defaultmode_key > 0)
{ // Eerst een soort controle bepalen.
%>
@@ -510,7 +512,7 @@ else
emptyOption: L("lcl_select_controlemode"),
required: true,
mobile: true,
readonly: ins_deelsrtcontrole_status == 5
readonly: (ins_deelsrtcontrole_status >= 5 && !canMsuEdit) // In status 5 en 6 met INSMSU rechten mag ik de methode aanpassen (canMsuEdit).
}
);
@@ -521,7 +523,6 @@ else
fnpost : "",
deelsrtcontrole_key: deelsrtcont_key,
srtcontrole_key: srtcontrole_key,
reado: ins_deelsrtcontrole_status == 5,
flexcolumns: 1,
mobile: true
});

View File

@@ -986,20 +986,13 @@ res = {
rresult.couldCreate = false;
rresult.readoReason = L("lcl_res_notself");
}
}
// Als FE mag je een aantal velden en kenmerken wel wijzigen in een reservering.
rresult.canChangeFEExtended = false;
if ( rresult.canChange
&& !rresult.canWrite("WEB_RESFOF")
&& !rresult.canWrite("WEB_RESBOF")
)
{
// reservering is van mij of een collega.
if ( rresult.canChangeUrole == "fe"
|| rsv_ruimte_contact_key == user_key
|| user.isCollega(rsv_ruimte_contact_key)
|| user.isCollega(rsv_ruimte_host_key))
// Als FE mag je een aantal velden en kenmerken wel wijzigen in een reservering.
rresult.canChangeFEExtended = false;
// reservering is van mij of een collega (user.isCollega is altijd inclusief mezelf).
if ( user.isCollega(rsv_ruimte_contact_key)
|| user.isCollega(rsv_ruimte_host_key)
)
{
// status_bo is nog niet "afgemeld" (5) of "verwerkt" (6)
// status_fo is niet "vervallen" (4)

View File

@@ -88,14 +88,14 @@ FCLTHeader.Requires({plugins: ["jQuery", "kenmerk"],
else
{
var this_res = res.func_enabled(rsv_ruimte_key); // wat mag ik zoal op deze reservering
user.auth_required_or_abort(this_res.canChange || !this_res.canChangeFEExtended);
user.auth_required_or_abort(this_res.canChange || this_res.canChangeFEExtended);
}
var fronto = urole == "fo"; // DEPRECATED
var backo = urole == "bo";
var frontend = urole == "fe";
var readonlyFE = ( (rsv_ruimte_key != -1) && (frontend && !this_res.canChangeFEExtended) ? true : false);
var readonlyFE = (rsv_ruimte_key != -1 && frontend && !this_res.canChange && this_res.canChangeFEExtended);
// TODO??
rsv_ruimte_key = getQParamInt("next_rsv_ruimte_key", rsv_ruimte_key);

View File

@@ -159,8 +159,8 @@ if (restype == "R")
if (rsv_ruimte_key == -1 && // (update controle komt later wel)
date_from < res.discipline_expire(disc_key) && !adhoc)
{
if (urole == "fe" && (this_res?this_res.canChangeFEExtended:true))
abort_with_warning(L("lcl_res_lastmin"));
if (urole == "fe") // nieuwe is nooit canChangeFEExtended
abort_with_warning(L("lcl_res_lastmin"));
else
if (urole != "bo")
warning = L("lcl_res_obj_lastminute");
@@ -473,9 +473,9 @@ else // update
user.auth_required_or_abort(this_res.canChange || this_res.canChangeFEExtended);
// Bij wijzigen tijdstip ruimte (naar voren) schuiven voorzieningen mogelijk mee.
if (date_from < this_res.earliest_expire_change)
if (date_from < this_res.earliest_expire_change && this_res.canChange) // canChangeFEExtended kon toch niet bewerken
{
if (this_res.canChangeFEOnly && this_res.canChangeFEExtended)
if (this_res.canChangeFEOnly)
abort_with_warning(L("lcl_res_lastmin")); // te laat
else
if (urole != "bo")

View File

@@ -219,7 +219,7 @@ function forhours(fn)
+ ", ((fac.Count_Work_Days(" + ora_date1 + "-1 , " + ora_date2 + "))"
+ (dayschedule
? ""
: " * (LEAST(COALESCE(rr1.res_ruimte_eindtijd, " + S("res_t2") + ")," + S("res_rap_t2") + ")) - GREATEST(COALESCE(rr1.res_ruimte_begintijd, " + S("res_t1") + ")," + S("res_rap_t1") + ")") + ") beschikbaar"
: " * (LEAST(COALESCE(rr1.res_ruimte_eindtijd, " + S("res_t2") + ")," + S("res_rap_t2") + ") - GREATEST(COALESCE(rr1.res_ruimte_begintijd, " + S("res_t1") + ")," + S("res_rap_t1") + ")") + ")) beschikbaar"
+ " FROM res_ruimte rr1, res_alg_ruimte ra "
+ " WHERE rr1.res_ruimte_key = ra.res_ruimte_key "
+ " AND ra.res_alg_ruimte_aanmaak <= " + ora_date2

View File

@@ -530,7 +530,7 @@ FCLTHeader.Requires({plugins: ["jQuery"]})
ROFIELDTR("fldordernum", L("lcl_mld_inf_Ordernr"), rrr.res_ordernr, {suppressEmpty: true});
ROFIELDTR("fldresdesc", L("lcl_descr"), rrr.descript, {suppressEmpty: true});
ROTEXTAREATR('fldomschr', L("lcl_remark"), rrr.rsv_ruimte_opmerking, {suppressEmpty: true});
ROTEXTAREATR('fldomschr', L("lcl_remark"), rrr.rsv_ruimte_opmerking, {suppressEmpty: true, mldlink: true});
BLOCK_END();
%></div><%

View File

@@ -347,6 +347,7 @@ function LogErrorToFile()
__SafeDoLog(ASPErrorText());
if (Request.ServerVariables("HTTP_REFERER").Count)
__DoLog("Referer: " + Request.ServerVariables("HTTP_REFERER"));
__SafeDoLog(ShowSourcecode(-8, +4));
if (Request.QueryString.Count>0) // Hele URL is al wel gelogd maar dit is leesbaarder
@@ -355,6 +356,10 @@ function LogErrorToFile()
}
try
{
var method = Request.ServerVariables("REQUEST_METHOD");
if (method == "POST" || Request.TotalBytes > 0)
__DoLog("POSTed " + Request.TotalBytes + " bytes");
if (Request.Form.Count>0)
__DoLogForm();
}

View File

@@ -100,7 +100,7 @@ function bepaalKenmerkGegevens(pModule, pKenmerkkey)
+ (srttable
? " AND k." + srttable + "_key = sk." + srttable + "_key"
: "")
oRs = Oracle.Execute(sql);
var oRs = Oracle.Execute(sql);
var kenmerk_omschrijving = oRs("kenmerk_omschrijving").Value;
var kenmerk_type = oRs("kenmerk_type").Value;
oRs.close();

View File

@@ -92,7 +92,10 @@ function WriteResult2(sql, params)
jsonResult.checkExist = true;
if (callback)
{
Response.ContentType = "application/javascript";
Response.Write(callback + "(" + JSON.stringify(jsonResult) + ")");
}
else
Response.Write(JSON.stringify(jsonResult));
}

View File

@@ -82,7 +82,7 @@ if (params.extFilter)
// We doen de teller er ook nog maar bij.
var ext = safename.split(".")[safename.split(".").length - 1];
safename = "Image_{0}{1}.{2}".format(iso8601Date(new Date), counter>0?"_" + counter:"", ext);
__DoLog("-->Ios: " + safename);
__Log("-->Ios: " + safename);
}
found_files.push({ name: safename, data: data, contenttype: contenttype});
@@ -113,76 +113,79 @@ if (params.extFilter)
}
var VB_result = VB_getfiles();
var result = { message: VB_result("message"),
var result = { message: VB_result("message") || "",
safefilename: []
};
//__Log(found_fields);
//__Log(found_files);
protectRequest.validateToken(found_fields["__RequestVerificationToken"]);
// Obscuur: hier geen 'i' gebruiken omdat upload.inc/ getString die ook al gebruikt
// Je krijgt daar dan 'Illegal Assignment', ik verzin het niet
for (var j = 0; j < found_files.length; j++)
if (!result.message) // dikke kans dat dan het token er ook niet is
{
var finfo = found_files[j];
var safefilename = safe.filename(finfo.name);
var msg = check_filename(finfo);
protectRequest.validateToken(found_fields["__RequestVerificationToken"]);
if (msg == "")
// Obscuur: hier geen 'i' gebruiken omdat upload.inc/ getString die ook al gebruikt
// Je krijgt daar dan 'Illegal Assignment', ik verzin het niet
for (var j = 0; j < found_files.length; j++)
{
result.safefilename.push(safefilename);
if (doEncrypt) // Wordt (nog) niet gebruikt.
var finfo = found_files[j];
var safefilename = safe.filename(finfo.name);
var msg = check_filename(finfo);
if (msg == "")
{
var oZip = Server.CreateObject("SLNKDWF.Zip");
oZip.Open(fullpath + safefilename + ".encrypted");
oZip.EncryptFromString(safefilename, finfo.data);
result.safefilename.push(safefilename);
if (doEncrypt) // Wordt (nog) niet gebruikt.
{
var oZip = Server.CreateObject("SLNKDWF.Zip");
oZip.Open(fullpath + safefilename + ".encrypted");
oZip.EncryptFromString(safefilename, finfo.data);
}
else
{
var BinaryStream = Server.CreateObject("ADODB.Stream");
BinaryStream.Type = 1; // adTypeBinary
BinaryStream.Open();
try
{
BinaryStream.Write(finfo.data);
// Save binary data To disk
__Log("Saving to: " + params.AttachPath + safefilename);
CreateFullPath(params.AttachPath);
BinaryStream.SaveToFile(params.AttachPath + safefilename, 2); // adSaveCreateOverWrite
}
catch(e)
{
result.message += "Saving {0} failed: {1} ".format(safefilename, e.description);
__DoLog("Saving to {0} failed: {1}".format(params.AttachPath + safefilename, e.description), "#f0f");
}
}
}
else
result.message += msg;
}
//__Log(result);
// Toevoegen bijlage/bestand tracken.
if (pKey > -1 && params.trackcode && (params.kenmerktype == "E" || params.kenmerktype == "F" || params.kenmerktype == "M"))
{
if (pModule == "BEZ")
{ // Voor afpraken heb ik de afspraak key nodig i.p.v. de bezoekerskey om de kenmerk omschrijving te bepalen.
var sql = "SELECT bez_afspraak_key"
+ " FROM bez_bezoekers"
+ " WHERE bez_bezoekers_key = " + pKey;
oRs = Oracle.Execute(sql);
var afspr_key = oRs("bez_afspraak_key").Value;
oRs.close();
pKey = String(afspr_key);
}
for (j=0; j<result.safefilename.length; j++)
{
var BinaryStream = Server.CreateObject("ADODB.Stream");
BinaryStream.Type = 1; // adTypeBinary
BinaryStream.Open();
try
{
BinaryStream.Write(finfo.data);
// Save binary data To disk
__Log("Saving to: " + params.AttachPath + safefilename);
CreateFullPath(params.AttachPath);
BinaryStream.SaveToFile(params.AttachPath + safefilename, 2); // adSaveCreateOverWrite
}
catch(e)
{
HELP;
}
ptxt = L("lcl_shared_attachment_add").format(params.kenmerkoms, result.safefilename[j]);
shared.trackaction(params.trackcode, pKey, ptxt);
}
}
else
result.message += msg;
}
//__Log(result);
// Toevoegen bijlage/bestand tracken.
if (pKey > -1 && params.trackcode && (params.kenmerktype == "E" || params.kenmerktype == "F" || params.kenmerktype == "M"))
{
if (pModule == "BEZ")
{ // Voor afpraken heb ik de afspraak key nodig i.p.v. de bezoekerskey om de kenmerk omschrijving te bepalen.
var sql = "SELECT bez_afspraak_key"
+ " FROM bez_bezoekers"
+ " WHERE bez_bezoekers_key = " + pKey;
oRs = Oracle.Execute(sql);
var afspr_key = oRs("bez_afspraak_key").Value;
oRs.close();
pKey = String(afspr_key);
}
for (j=0; j<result.safefilename.length; j++)
{
ptxt = L("lcl_shared_attachment_add").format(params.kenmerkoms, result.safefilename[j]);
shared.trackaction(params.trackcode, pKey, ptxt);
}
}
}
if (!result.message && params.forcesingle)
{ // Er mag maar 1 bestand bestaan.

View File

@@ -1088,13 +1088,6 @@ Perslid.prototype.func_enabled2 = function _func_enabled2(module, params)
// params.alg_key is geen array.
loc_key_array.push(params.loc_key);
}
var afd_key_array = [];
if (typeof params.afd_key == "object" && params.afd_key instanceof Array)
// params.afd_key is een array.
afd_key_array = params.afd_key;
else if (params.afd_key > 0)
// params.afd_key is een enkele key.
afd_key_array.push(params.afd_key);
// twee vars die aangeven hoe dichtbij parameters alg_key en prs_key bij 'onszelf' zitten.
// alglevel=5 geeft bijvoorbeeld aan dat wij een werkplek hebben op alg_key
@@ -1177,29 +1170,36 @@ Perslid.prototype.func_enabled2 = function _func_enabled2(module, params)
if (( oRs.PRSreadlevel > -1 && oRs.PRSreadlevel < 9)
|| oRs.PRSwritelevel > -1 && oRs.PRSwritelevel < 9)
{ // Alleen als echt nodig is bepalen
// TODO: Bedrijf niveau ondersteunen?
if (PRSLevel == -2 && params.prs_key)
if (PRSLevel == -2) // Nog geen uitsluitsel
{
if (params.prs_key == user_key && afd_key_array.length == 0)
if (params.prs_key == user_key) // snel klaar, altijd goed
PRSLevel = 8;
else
else // Misschien via afdeling
{
// optimalisatie: haal de andere afd_key met een losse query op.
var afd_key = new Perslid(params.prs_key).prs_afdeling_key();
var sql = "SELECT MAX (a.niveau) niveau"
+ " FROM prs_v_afdeling_familie a, prs_v_afdeling_familie aa"
+ " WHERE a.prs_afdeling_key = " + afd_key // -- de ander
+ " AND a.prs_afdeling_elder_key = aa.prs_afdeling_elder_key"
+ " AND aa.prs_afdeling_key = " + this.prs_afdeling_key() // zelf
+ (afd_key_array.length > 0
? " AND aa.prs_afdeling_key IN (" + afd_key_array.join(",") + ")"
: "");
var oRs2 = Oracle.Execute(sql);
PRSLevel = (oRs2("niveau").Value == null
? (afd_key_array.length > 0 ? -1 : -2)
: oRs2("niveau").Value);
oRs2.Close();
__Log("PRSLevel vastgesteld op: " + PRSLevel);
if (params.prs_key)
{ // optimalisatie: haal de andere afd_key met een losse query op.
var afd_key = new Perslid(params.prs_key).prs_afdeling_key();
}
else
var afd_key = params.afd_key; // Misschien al meegegeven
if (afd_key > 0)
{
var sql = "SELECT MAX (a.niveau) niveau"
+ " FROM prs_v_afdeling_familie a, prs_v_afdeling_familie aa"
+ " WHERE a.prs_afdeling_key = " + afd_key // -- de ander
+ " AND a.prs_afdeling_elder_key = aa.prs_afdeling_elder_key"
+ " AND aa.prs_afdeling_key = " + this.prs_afdeling_key(); // zelf
var oRs2 = Oracle.Execute(sql);
PRSLevel = oRs2("niveau").Value; // NULL als ander bedrijf of alleen bedrijf als gelijke parent
oRs2.Close();
if (!(PRSLevel > 0)) // nog niet gevonden
{
var my_bedrijf = this.afdeling().prs_bedrijf_key();
var other_bedrijf = new Afdeling(afd_key).prs_bedrijf_key();
PRSLevel = (my_bedrijf == other_bedrijf?0:-1);
}
__Log("PRSLevel vastgesteld op: " + PRSLevel);
}
}
}
}
@@ -1461,7 +1461,7 @@ Afdeling.prototype.prs_bedrijf_key = function() // Voorheen user_comp
if (!this._prs_bedrijf_key)
{
var sql = "SELECT ab.prs_bedrijf_key"
+ " FROM PRS_V_AFDELING_BOOM ab"
+ " FROM prs_v_afdeling_boom ab"
+ " WHERE ab.prs_afdeling_key = " + this._prs_afdeling_key
var oRs = Oracle.Execute(sql);
this._prs_bedrijf_key = oRs(0).value;

View File

@@ -614,9 +614,10 @@ div.fcltframeheader {
}
.fcltframeheader.collapsed span {
color: ==blockheaderbackgroundcolor==;
-webkit-transition: color 1s; /* Safari */
transition: color 1s;
opacity: .75;
transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-webkit-transition: opacity 1s ease-in-out;
}
div.fcltframefooter {

View File

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

View File

@@ -129,7 +129,8 @@ function BijlagenButton(pModule, pNiveau, pKey, tmpfolder, pKenmerk_key,
var url = "../shared/BijlagenForm.asp?module=" + pModule
+ "&key=" + pKey
+ (pNiveau != ""? "&niveau=" + pNiveau : "")
+ "&kenmerk_key=" + pKenmerk_key;
+ "&kenmerk_key=" + pKenmerk_key
+ (params.kenmerk_module != ""? "&kenmerk_module=" + params.kenmerk_module : "");
if (pKey < 0)
{
url += "&tmpfolder=" + tmpfolder;
@@ -873,7 +874,8 @@ function listKenmerk(sql, module, key, props)
+ "&key=" + key
+ (niveau != ""? "&niveau=" + niveau : "")
+ "&kenmerk_key=" + kkey
+ "&mobile=" + (formobile ? 1 : 0);
+ "&mobile=" + (formobile ? 1 : 0)
+ (props.kenmerk_module != ""? "&kenmerk_module=" + props.kenmerk_module : "");
// nooit if (pReadonly) url += "&reado=1";
// nooit url += "&multi=1";
if (kdim) url += "&extFilter=" + escape(kdim);

View File

@@ -80,7 +80,10 @@ LCL_Disable = 1; // wij zijn veel slimmer
}
if (callback)
{
Response.ContentType = "application/javascript";
Response.Write(callback + "(" + JSON.stringify(result) + ")");
}
else
Response.Write(JSON.stringify(result));
%>

View File

@@ -116,7 +116,7 @@ if (user_key < 0 && jwt)
+ " AND fac_idp_audience = " + safe.quoted_sql(claim.payload.aud);
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
shared.internal_error("Unknown JWT issuer: " + claim.payload.iss);
shared.internal_error("Unknown JWT issuer {0} for audience {1}".format(claim.payload.iss, claim.payload.aud));
var verify = jwt_verify(claim, oRs("fac_idp_secret").Value, oRs("fac_idp_clockskew").Value, oRs("fac_idp_duration").Value);
if (verify.err)

View File

@@ -6,8 +6,8 @@
<xsl:value-of select="substring(translate('$Revision$', '$ ', ''), 10)"/>
</xsl:variable>
<xsl:key name="GROUP_BY_materiaal_taskid" match="//facilitor/opdracht/materialen" use="extra1"/>
<xsl:template name="pageheader">
<table border="0" width="100%">
<tr>
@@ -34,10 +34,10 @@
</xsl:template>
<xsl:template match="opdracht" mode="include">
<table border="0" width="100%" cellpadding="2">
<tr>
<td colspan="4" class="caption" style="padding-top:20px;padding-bottom:20px">
@@ -47,51 +47,50 @@
<xsl:attribute name="href">https://<xsl:value-of select="$FacilitorRoot"/>/?<xsl:value-of select="../bookmarks/opdracht"/><xsl:value-of select="key"/></xsl:attribute>
<xsl:value-of select="melding/stdmelding/discipline/srtdiscipline/prefix"/>
<xsl:value-of select="melding/key"/>/<xsl:value-of select="bedrijfopdr_volgnr"/>
</xsl:element>
</b>
</td>
</xsl:element>
</b>
</td>
</tr>
<!-- MARX#36901 - Extra optionele tekst -->
<xsl:if test="melding/voor/afdeling/bedrijf/kenmerk[@key='6'] != ''">
<tr>
<td colspan="5" style="text-align:left; color:red">
<xsl:call-template name="linebreaks">
<xsl:with-param name="string" select="melding/voor/afdeling/bedrijf/kenmerk[@key='6']"/>
</xsl:call-template>
</xsl:call-template>
</td>
</tr>
</xsl:if>
<tr><td colspan="4" valign="center"><hr/></td></tr>
<tr>
<td colspan="4" height="10px" valign="center">
<hr/>
</td>
<td colspan="4" style="font-size:20px"><xsl:value-of select="melding/voor/afdeling/bedrijf/naam"/><xsl:if test="melding/voor/afdeling/bedrijf/leverancier_nr!=''"><span style="font-size:9px;float:right;"><b>GLN</b>: <xsl:value-of select="melding/voor/afdeling/bedrijf/leverancier_nr"/></span></xsl:if></td>
</tr>
<tr>
<td colspan="4" style="font-size:20px"><b><xsl:value-of select="melding/voor/afdeling/bedrijf/naam"/></b>&#160;&#160;&#160;&#160;<span style="font-size:9px">(<b>GLN</b>: <xsl:value-of select="melding/voor/afdeling/bedrijf/leverancier_nr"/>)</span></td>
</tr>
<tr>
<td><b>Post<xsl:value-of select="//lcl/FAC/adres"/>: </b></td>
<td><xsl:value-of select="melding/voor/afdeling/bedrijf/post_adres"/></td>
<td><b>Bezoek<xsl:value-of select="//lcl/FAC/adres"/>: </b></td>
<td><xsl:value-of select="melding/voor/afdeling/bedrijf/bezoek_adres"/></td>
</tr>
<tr>
<td/>
<td><xsl:value-of select="melding/voor/afdeling/bedrijf/post_postcode"/>&#160;&#160;<xsl:value-of select="melding/voor/afdeling/bedrijf/post_plaats"/></td>
<td/>
<td><xsl:value-of select="melding/voor/afdeling/bedrijf/bezoek_postcode"/>&#160;&#160;<xsl:value-of select="melding/voor/afdeling/bedrijf/bezoek_plaats"/></td>
</tr>
<tr>
<td><b><xsl:value-of select="//lcl/FAC/telefoon"/>: </b></td>
<td><xsl:value-of select="melding/voor/afdeling/bedrijf/telefoon"/></td>
<xsl:if test="melding/voor/afdeling/bedrijf/fax!=''">
<td><b>Fax: </b></td>
<td><xsl:value-of select="melding/voor/afdeling/bedrijf/fax"/></td>
</xsl:if>
</tr>
<tr>
<td><b><xsl:value-of select="//lcl/FAC/e-mail"/>: </b></td>
@@ -99,36 +98,34 @@
<td colspan="2"/>
</tr>
<tr><td colspan="4" valign="center"><hr style="border-style: dashed;"/></td></tr>
<tr>
<td colspan="4" height="10px" valign="center">
<hr/>
</td>
<td colspan="4" style="font-size:20px"><xsl:value-of select="uitvoerende/bedrijf/naam"/><xsl:if test="uitvoerende/bedrijf/leverancier_nr!=''"><span style="font-size:9px;float:right;"><b>GLN</b>: <xsl:value-of select="uitvoerende/bedrijf/leverancier_nr"/></span></xsl:if></td>
</tr>
<tr>
<td colspan="4" style="font-size:20px"><b><xsl:value-of select="uitvoerende/bedrijf/naam"/></b>&#160;&#160;&#160;&#160;<span style="font-size:9px">(<b>GLN</b>: <xsl:value-of select="uitvoerende/bedrijf/leverancier_nr"/>)</span></td>
</tr>
<tr>
<td><b>Post<xsl:value-of select="//lcl/FAC/adres"/>: </b></td>
<td><xsl:value-of select="uitvoerende/bedrijf/post_adres"/></td>
<td><b>Bezoek<xsl:value-of select="//lcl/FAC/adres"/>: </b></td>
<td><xsl:value-of select="uitvoerende/bedrijf/bezoek_adres"/></td>
</tr>
<tr>
<td/>
<td><xsl:value-of select="uitvoerende/bedrijf/post_postcode"/>&#160;&#160;<xsl:value-of select="uitvoerende/bedrijf/post_plaats"/></td>
<td/>
<td><xsl:value-of select="uitvoerende/bedrijf/bezoek_postcode"/>&#160;&#160;<xsl:value-of select="uitvoerende/bedrijf/bezoek_plaats"/></td>
</tr>
<tr>
<td><b><xsl:value-of select="//lcl/FAC/telefoon"/>: </b></td>
<td><xsl:value-of select="uitvoerende/bedrijf/telefoon"/></td>
<xsl:if test="uitvoerende/bedrijf/fax!=''">
<td><b>Fax: </b></td>
<td><xsl:value-of select="uitvoerende/bedrijf/fax"/></td>
</xsl:if>
</tr>
<tr>
<td><b><xsl:value-of select="//lcl/FAC/e-mail"/>: </b></td>
@@ -136,24 +133,21 @@
<td colspan="2"/>
</tr>
<tr><td colspan="4" valign="center"><hr/></td></tr>
<tr>
<td colspan="4" height="10px" valign="center">
<hr/>
</td>
<td colspan="4" style="font-size:20px">Algemene opdrachtgegevens</td>
</tr>
<tr>
<td colspan="4" style="font-size:20px"><b>Algemene opdrachtgegevens</b></td>
</tr>
<tr><td colspan="4" height="4px"></td></tr>
<tr>
<td colspan="2" style="font-size:14px"><b>MAREON NUMMER: </b>
<xsl:value-of select="melding/stdmelding/discipline/srtdiscipline/prefix"/>
<xsl:value-of select="melding/key"/>/<xsl:value-of select="bedrijfopdr_volgnr"/></td>
<td colspan="2" style="font-size:14px"><b>INKOOPORDER OPDRACHTGEVER: </b> <xsl:value-of select="opdr_id"/></td>
</tr>
<tr><td colspan="4" height="4px"></td></tr>
<tr>
<td><b>Status: </b></td>
<td><xsl:value-of select="status"/></td>
@@ -165,18 +159,16 @@
<td><b>Uitvoeren voor: </b></td>
<td><xsl:value-of select="einddatum/datum"/></td>
</tr>
<xsl:if test="plandatum/datum!=''">
<tr>
<td><b>Plandatum / tijd: </b></td>
<td><b>Plandatum/-tijd: </b></td>
<td><xsl:value-of select="plandatum/datum"/>&#160;<xsl:value-of select="plandatum/tijd"/></td>
<td colspan="2"/>
</tr>
<tr>
<td colspan="4" height="10px" valign="center">
</td>
</tr>
</xsl:if>
<tr><td colspan="4" height="4px"></td></tr>
<tr>
<td align="right">
<b><xsl:value-of select="melding/kenmerk[@key='1']/@naam"/>:</b>
@@ -184,14 +176,16 @@
<td>
<xsl:value-of select="melding/kenmerk[@key='1']"/>
</td>
<xsl:if test="melding/kenmerk[@key='5']!=''">
<td align="right">
<b>Telefoon:</b>
</td>
<td>
<xsl:value-of select="melding/kenmerk[@key='5']"/>
</td>
</xsl:if>
</tr>
<tr>
<td align="right">
<b>Adres:</b>
@@ -199,14 +193,16 @@
<td>
<xsl:value-of select="melding/kenmerk[@key='9']"/>&#160;<xsl:value-of select="melding/kenmerk[@key='10']"/>
</td>
<xsl:if test="melding/kenmerk[@key='8']!=''">
<td align="right">
<b>Mobiel:</b>
</td>
<td>
<xsl:value-of select="melding/kenmerk[@key='8']"/>
</td>
</xsl:if>
</tr>
<tr>
<td align="right">
<b>Plaats:</b>
@@ -215,7 +211,7 @@
<xsl:value-of select="melding/kenmerk[@key='3']"/>&#160;<xsl:value-of select="melding/kenmerk[@key='4']"/>
</td>
</tr>
<tr>
<td align="right">
<b>Object:</b>
@@ -224,7 +220,7 @@
<xsl:value-of select="melding/kenmerk[@key='6']"/>
</td>
</tr>
<tr>
<td align="right">
<b>Pandnummer:</b>
@@ -239,7 +235,7 @@
<xsl:value-of select="kenmerk[@key='16']"/>
</td>
</tr>
<tr>
<td align="right">
<b>Opzichter:</b>
@@ -248,9 +244,9 @@
<xsl:value-of select="kenmerk[@key=13]"/>
</td>
</tr>
<tr><td colspan="4" height="4px"></td></tr>
<tr>
<td align="right" valign="top">
<b><xsl:value-of select="//lcl/FAC/omschrijving"/>:</b>
@@ -267,6 +263,7 @@
</xsl:choose>
</td>
</tr>
<xsl:if test="opmerking!=''">
<tr>
<td align="right" valign="top">
<b><xsl:value-of select="//lcl/FAC/opmerking"/>:</b>
@@ -277,18 +274,19 @@
</xsl:call-template>
</td>
</tr>
</xsl:if>
<!-- Als er materialen zijn, dan gaan we deze in een tabel tonen -->
<xsl:if test="count(materialen) &gt; 0">
<tr>
<td colspan="4" height="10px" valign="center">
<hr/>
<hr style="border-style: dashed;"/>
</td>
</tr>
<tr>
<td colspan="4" style="font-size:20px"><b>Details</b></td>
<td colspan="4" style="font-size:20px">Details</td>
</tr>
<xsl:for-each select="materialen[generate-id(.)=generate-id(key('GROUP_BY_materiaal_taskid', extra1)[1])]">
<xsl:sort select="extra1"/>
<tr>
@@ -296,35 +294,32 @@
</tr>
<tr>
<td colspan="4"><xsl:value-of select="extra3"/></td>
</tr>
<tr>
<td colspan="4" style="font-size:16px">Opdrachtregels</td>
</tr>
<tr>
<td colspan="4">
<table cellpadding="0" cellspacing="0" border="1" bordercolor="#303030" width="100%">
<table cellpadding="2" cellspacing="0" border="1" bordercolor="#303030" width="100%">
<tr>
<td width="30%"><b>Omschrijving</b></td>
<td><b>Eenheid</b></td>
<td><b>Stuksprijs</b></td>
<td><b>Aantal</b></td>
<td><b>Totaalprijs<br/>excl. BTW</b></td>
<td><b>BTW<br/>percentage</b></td>
<td><b>Totaalprijs<br/>incl. BTW</b></td>
</tr>
<td style='text-align:right'><b>Stuksprijs</b></td>
<td style='text-align:right'><b>Aantal</b></td>
<td style='text-align:right'><b>Totaalprijs<br/>excl. BTW</b></td>
<td style='text-align:right'><b>BTW<br/>percentage</b></td>
<td style='text-align:right'><b>Totaalprijs<br/>incl. BTW</b></td>
</tr>
<xsl:call-template name="print_materiaal_regels"><xsl:with-param name="p_extra1" select="extra1"/></xsl:call-template>
</table>
</table>
</td>
</tr>
<tr>
<td colspan="4" height="20px" valign="center">
</td>
</tr>
</tr>
</xsl:for-each>
</xsl:if>
<tr>
<td colspan="4" height="10px" valign="center">
<hr/>
<hr style="border-style: dashed;"/>
</td>
</tr>
@@ -338,7 +333,7 @@
<b><xsl:value-of select="//lcl/FAC/totaal"/> (excl. BTW):</b>
</td>
<td style="width:1in;text-align:right">
<b>&#x20AC;&#xA0;<xsl:value-of select="format-number(kosten, '0,00', 'european')"/></b>
<b>&#x20AC;&#xA0;<xsl:value-of select="format-number(kosten, '0,00', 'european')"/></b>
</td>
<td/>
</tr>
@@ -349,7 +344,7 @@
</tr>
-->
<tr>
<td colspan="5" style="text-align:left; font-size:9px; color:red">
<td colspan="5" style="text-align:left; font-size:9px; color:red;font-weight:bold;">
<xsl:call-template name="escape_marnr_tobiasnr"><xsl:with-param name="string" select="melding/voor/afdeling/bedrijf/opmerking2"/></xsl:call-template>
</td>
</tr>
@@ -357,10 +352,10 @@
<td colspan="5" style="text-align:left; font-size:9px">
<xsl:value-of select="melding/voor/afdeling/bedrijf/opmerking"/>
</td>
</tr>
</tr>
</table>
</xsl:template>
<xsl:template name="escape_marnr_tobiasnr">
<xsl:param name="string"/>
<xsl:variable name="l_marnr" select="'MAR###'"/>
@@ -383,7 +378,7 @@
<xsl:otherwise><xsl:value-of select="$string"/></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="print_materiaal_regels">
<xsl:param name="p_extra1"/>
<xsl:for-each select="//facilitor/opdracht/materialen[extra1=$p_extra1]">
@@ -391,14 +386,14 @@
<tr>
<td><xsl:value-of select="omschrijving"/></td>
<td><xsl:value-of select="eenheid"/></td>
<td>&#x20AC;&#xA0;<xsl:value-of select="format-number(stuksprijs, '0,00', 'european')"/></td>
<td><xsl:value-of select="aantal"/></td>
<td>&#x20AC;&#xA0;<xsl:value-of select="format-number(totaalprijs, '0,00', 'european')"/></td>
<td><xsl:value-of select="btwpercentage"/>%</td>
<td>&#x20AC;&#xA0;<xsl:value-of select="format-number(totaalprijs + btwbedrag, '0,00', 'european')"/></td>
<td style='text-align:right'>&#x20AC;&#xA0;<xsl:value-of select="format-number(stuksprijs, '0,00', 'european')"/></td>
<td style='text-align:right'><xsl:value-of select="aantal"/></td>
<td style='text-align:right'>&#x20AC;&#xA0;<xsl:value-of select="format-number(totaalprijs, '0,00', 'european')"/></td>
<td style='text-align:right'><xsl:value-of select="btwpercentage"/>%</td>
<td style='text-align:right'>&#x20AC;&#xA0;<xsl:value-of select="format-number(totaalprijs + btwbedrag, '0,00', 'european')"/></td>
</tr>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,49 @@
<html>
<head>
<script type="text/javascript">
function doSubmit()
{
var http_request = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
SXH_PROXY_SET_PROXY = 2
//http_request.setProxy(SXH_PROXY_SET_PROXY, "127.0.0.1:8888"); // Fiddler
var url = document.getElementById("url").value;
http_request.open("POST", url, false);
var body = document.getElementById("xml").value;
http_request.setRequestHeader("Content-Type", "text/xml; charset=utf-8")
http_request.send(body);
document.getElementById("Status").innerText = http_request.status;
document.getElementById("StatusText").innerText = http_request.statusText;
document.getElementById("Result").innerText = http_request.responseText;
}
</script>
</head>
<body style='background-color:#c0c0c0'>
<form method="post"
target="uitvoer">
<input id="url" type="text" style="width:800px"
value="https://mdux-a.facilitor.nl/?API=XXX&APIKEY=YYY"
xvalue="http://facws001/branch20162/?fac_id=MDUX&API=XXX&APIKEY=YYY">
<br>
<textarea id="xml" style="height:200px;width:800px">
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetBES4AX>
<bes_opdr_key_van>6300</bes_opdr_key_van>
<bes_lever_datum_van>2016-08-01T12:00:00</bes_lever_datum_van>
</GetBES4AX>
</soap:Body>
</soap:Envelope>
</textarea>
<input type="button" onclick="doSubmit()" value="Verstuur">
</form>
<table>
<tr><td>Status:</td><td><span id="Status"></span></td>
<tr><td>StatusText:</td><td><span id="StatusText"></span></td>
<tr><td>Result:</td><td style='border:1px solid blue;font-size:0.8em;'><xmp id="Result"></xmp></td>
</table>
</body>
</html>

83
CUST/MDUX/xsl/bes4ax.xsl Normal file
View File

@@ -0,0 +1,83 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxml="urn:schemas-microsoft-com:xslt" version="1.0">
<xsl:output method="xml" indent="yes" encoding="utf-8"/>
<xsl:decimal-format name="european" decimal-separator="." grouping-separator=","/>
<xsl:param name="mode"/>
<xsl:variable name="Rev">
<!-- Revision van deze cust.xsl -->
<xsl:value-of select="substring(translate('$Revision$', '$ ', ''), 10)"/>
</xsl:variable>
<xsl:key name="GROUP_BY_bes_opdr_key" match="//data_row" use="BES_OPDR_KEY"/>
<xsl:template match="rapport">
<!-- ******************************************************************* -->
<!-- *****FlexWhere-request: GetBES4AX -->
<!-- ******************************************************************* -->
<xsl:if test="@view='mdux_bes_4_ax'">
<xsl:choose>
<xsl:when test="$mode='BES4AX'">
<GetBES4AXResponse>
<BESTELOPDRACHTEN>
<xsl:for-each select="//data_row[generate-id(.)=generate-id(key('GROUP_BY_bes_opdr_key',BES_OPDR_KEY)[1])]">
<xsl:sort select="BES_OPDR_KEY"/>
<BESTELOPDRACHT>
<BES_OPDR_KEY><xsl:value-of select="BES_OPDR_KEY"/></BES_OPDR_KEY>
<PRS_LEVERANCIER_NR><xsl:value-of select="PRS_LEVERANCIER_NR"/></PRS_LEVERANCIER_NR>
<PRS_BEDRIJF_KEY><xsl:value-of select="PRS_BEDRIJF_KEY"/></PRS_BEDRIJF_KEY>
<BES_NR><xsl:value-of select="OPDRACHT_ID"/></BES_NR>
<PRS_KOSTENPLAATS_NR><xsl:value-of select="PRS_KOSTENPLAATS_NR"/></PRS_KOSTENPLAATS_NR>
<BES_BESTELOPDR_STATUS><xsl:value-of select="BES_BESTELOPDR_STATUS"/></BES_BESTELOPDR_STATUS>
<BES_BESTELOPDR_LEVERDATUM><xsl:value-of select="BES_BESOTV_DATUM"/></BES_BESTELOPDR_LEVERDATUM>
<BES_BESTELOPDR_LEVKOSTEN><xsl:value-of select="BES_BESTELOPDR_LEVKOSTEN"/></BES_BESTELOPDR_LEVKOSTEN>
<BES_BESTELOPDR_KORTING><xsl:value-of select="BES_BESTELOPDR_KORTING"/></BES_BESTELOPDR_KORTING>
<xsl:call-template name="BES4AX_response_per_BES_OPDR_KEY">
<xsl:with-param name="p_bes_opdr_key" select="BES_OPDR_KEY"/>
</xsl:call-template>
</BESTELOPDRACHT>
</xsl:for-each>
</BESTELOPDRACHTEN>
</GetBES4AXResponse>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<xsl:template name="BES4AX_response_per_BES_OPDR_KEY">
<xsl:param name="p_bes_opdr_key"/>
<BESTELOPDRACHTREGELS>
<xsl:for-each select="//data_row[BES_OPDR_KEY = $p_bes_opdr_key]">
<BESTELREGEL>
<BES_BESTELOPDR_ITEM_POSNR><xsl:value-of select="BES_BESTELOPDR_ITEM_POSNR"/></BES_BESTELOPDR_ITEM_POSNR>
<BES_BESTELOPDR_ITEM_OMSCHRIJV><xsl:value-of select="BES_BESTELOPDR_ITEM_OMSCHRIJV"/></BES_BESTELOPDR_ITEM_OMSCHRIJV>
<BES_BESTELOPDR_ITEM_AANTAL><xsl:value-of select="BES_BESTELOPDR_ITEM_AANTAL"/></BES_BESTELOPDR_ITEM_AANTAL>
<BES_BESTELOPDR_ITEM_AANTALONTV><xsl:value-of select="BES_BESTELOPDR_ITEM_AANTALONTV"/></BES_BESTELOPDR_ITEM_AANTALONTV>
<BES_BESTELOPDR_ITEM_PRIJS><xsl:value-of select="BES_BESTELOPDR_ITEM_PRIJS"/></BES_BESTELOPDR_ITEM_PRIJS>
<BES_BESTELOPDR_ITEM_STATUS><xsl:value-of select="BES_BESTELOPDR_ITEM_STATUS"/></BES_BESTELOPDR_ITEM_STATUS>
</BESTELREGEL>
</xsl:for-each>
</BESTELOPDRACHTREGELS>
</xsl:template>
<!-- SOAP envelope met de afgesproken 'payload' in response op FlexWhere-request! -->
<xsl:template match="facilitor">
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<xsl:apply-templates select="rapport"/>
</soap:Body>
</soap:Envelope>
</xsl:template>
<!-- De afgesproken 'payload' in response op FlexWhere-request (zonder envelope)! -->
<!--xsl:template match="facilitor">
<xsl:apply-templates select="rapport"/>
</xsl:template-->
<!-- Root -->
<xsl:template match="/">
<xsl:apply-templates select="facilitor"/>
</xsl:template>
</xsl:stylesheet>

View File

@@ -11,6 +11,8 @@ REM
REM (c) 2010, SG|facilitor bv, +31 (53) 4800700, support@sgfacilitor.nl
REM
CALL ..\..\..\utils\gen_export\gen_export.bat ANNULEER_FACTUUR
CALL ..\..\..\utils\gen_export\gen_export.bat EXACT
CALL ..\..\..\utils\gen_export\gen_export.bat EXACT_MAAND

View File

@@ -10,7 +10,7 @@
<xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
<xsl:variable name="Xsrtnotificatiecode">CUST21</xsl:variable>
<xsl:variable name="Xsrtnotificatiecode">MLDFWD</xsl:variable>
<xsl:template name="adres">
<tr>
@@ -1116,13 +1116,41 @@
</td>
</tr>
<tr>
<td class="label">Omschrijving</td>
<td class="value">:
<td class="label" style="padding-bottom:10px;">Omschrijving</td>
<td class="value" style="padding-bottom:10px;">:
<xsl:call-template name="linebreaks">
<xsl:with-param name="string" select="omschrijving"/>
</xsl:call-template>
</td>
</tr>
<xsl:if test="$srtnotificatiecode = 'MLDFWD' and not(/facilitor/opdracht)">
<xsl:for-each select="notes/note[flag=1]">
<xsl:sort select="aanmaak/timestamp" order="ascending"/>
<tr>
<xsl:choose>
<xsl:when test="position() = 1">
<td align="right" valign="top" class="label">
<xsl:value-of select="//lcl/MLD/behandeling"/>
</td>
</xsl:when>
<xsl:otherwise>
<td/>
</xsl:otherwise>
</xsl:choose>
<td colspan="3" class="value">
<span>
<xsl:choose>
<xsl:when test="position() = 1">:&#xA0;</xsl:when>
<xsl:otherwise>&#xA0;&#xA0;</xsl:otherwise>
</xsl:choose><xsl:value-of select="aanmaak/datum"/>&#xA0;<xsl:value-of select="aanmaak/tijd"/>&#xA0;-&#xA0;<xsl:value-of select="noteur/naam_friendly"/>
</span>&#xA0;
<xsl:call-template name="linebreaks">
<xsl:with-param name="string" select="omschrijving"/>
</xsl:call-template>
</td>
</tr>
</xsl:for-each>
</xsl:if>
<xsl:if test="opmerking!=''">
<tr>
<td class="label">Status</td>

View File

@@ -521,6 +521,7 @@
<BEZ_BEDRIJF><xsl:value-of select="BEZ_BEDRIJF"/></BEZ_BEDRIJF>
<PERS_NAAM><xsl:value-of select="PERS_NAAM"/></PERS_NAAM>
<GASTHEER><xsl:value-of select="GASTHEER"/></GASTHEER>
<VERDIEPING><xsl:value-of select="VERDIEPING"/></VERDIEPING>
<RUIMTE><xsl:value-of select="RUIMTE"/></RUIMTE>
<BEZ_AFSPRAAK_EIND><xsl:value-of select="BEZ_AFSPRAAK_EIND"/></BEZ_AFSPRAAK_EIND>
<EINDTIJD><xsl:value-of select="EINDTIJD"/></EINDTIJD>