Merge 2017.3 Gold D patches

svn path=/Website/trunk/; revision=38121
This commit is contained in:
Jos Groot Lipman
2018-06-07 13:05:54 +00:00
19 changed files with 78 additions and 200 deletions

View File

@@ -92,44 +92,11 @@ function model_bez_kenmerk(params)
"dbs": "bez_kenmerk_systeem",
"label": L("mgt_srtkenmerk_systeem_adv"),
"typ": "number",
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 15,
"radios": [
{
"name": "ksystem",
"label": L("mgt_kenmerk_systeem"),
"mask": 1,
"defaultvalue": 1
},
{
"name": "overview",
"label": L("mgt_kenmerk_systeem_overview"),
"mask": 2,
"defaultvalue": 1
},
{
"name": "conf",
"label": L("mgt_kenmerk_systeem_conf"),
"mask": 4,
"defaultvalue": 1
},
{
"name": "ano",
"label": L("mgt_kenmerk_systeem_ano"),
"mask": 8,
"defaultvalue": 1
}
]
}
],
"LOV": L("mgt_kenmerk_systeemLOV"),
"defaultvalue": 0,
"required": true
},
"length": {
"length": {
"dbs": "bez_kenmerk_lengte",
"label": L("mgt_srtkenmerk_lengte"),
"typ": "number"

View File

@@ -61,41 +61,8 @@ function model_mld_srtkenmerk(params)
"dbs": "mld_srtkenmerk_systeem",
"label": L("mgt_srtkenmerk_systeem_adv"),
"typ": "number",
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 15,
"radios": [
{
"name": "ksystem",
"label": L("mgt_kenmerk_systeem"),
"mask": 1,
"defaultvalue": 1
},
{
"name": "overview",
"label": L("mgt_kenmerk_systeem_overview"),
"mask": 2,
"defaultvalue": 1
},
{
"name": "conf",
"label": L("mgt_kenmerk_systeem_conf"),
"mask": 4,
"defaultvalue": 1
},
{
"name": "ano",
"label": L("mgt_kenmerk_systeem_ano"),
"mask": 8,
"defaultvalue": 1
}
]
}
],
"defaultvalue": 0,
"LOV": L("mgt_srtkenmerk_systeemLOV"),
"defaultvalue": 0,
"required": true
},
"length": {

View File

@@ -97,41 +97,7 @@ function model_prs_kenmerk(niveau, params)
"system": {
"dbs": "prs_kenmerk_systeem",
"label": L("mgt_srtkenmerk_systeem"),
"typ": "number",
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 15,
"radios": [
{
"name": "ksystem",
"label": L("mgt_kenmerk_systeem"),
"mask": 1,
"defaultvalue": 1
},
{
"name": "overview",
"label": L("mgt_kenmerk_systeem_overview"),
"mask": 2,
"defaultvalue": 1
},
{
"name": "conf",
"label": L("mgt_kenmerk_systeem_conf"),
"mask": 4,
"defaultvalue": 1
},
{
"name": "ano",
"label": L("mgt_kenmerk_systeem_ano"),
"mask": 8,
"defaultvalue": 1
}
]
}
]
"typ": "check"
},
"length": {
"dbs": "prs_kenmerk_lengte",

View File

@@ -60,41 +60,7 @@ function model_res_srtkenmerk(params)
"dbs": "res_srtkenmerk_lengte",
"label": L("mgt_srtkenmerk_lengte"),
"typ": "number",
"bits": [
{
"name": "",
"label": "",
"typ": "check",
"mask": 15,
"radios": [
{
"name": "ksystem",
"label": L("mgt_kenmerk_systeem"),
"mask": 1,
"defaultvalue": 1
},
{
"name": "overview",
"label": L("mgt_kenmerk_systeem_overview"),
"mask": 2,
"defaultvalue": 1
},
{
"name": "conf",
"label": L("mgt_kenmerk_systeem_conf"),
"mask": 4,
"defaultvalue": 1
},
{
"name": "ano",
"label": L("mgt_kenmerk_systeem_ano"),
"mask": 8,
"defaultvalue": 1
}
]
}
],
"multiedit": true
"multiedit": true
},
"decimals": {
"dbs": "res_srtkenmerk_dec",

View File

@@ -303,8 +303,8 @@ function getSqlFiatCnt(fiatstatus, prsKeys, params)
+ " WHEN COALESCE (c.cnt_contract_approved, 0) <= " + S("cnt_contract_limit5")
+ " THEN '5'"
+ " ELSE '0'"
+ " END fiatteur"
: " , ' '")
+ " END"
: " , ' '") + " fiatteur"
+ " , NULL bes_bestelling_parentkey"
+ " , NULL prefix"
+ " , NULL uitvoerende"

View File

@@ -792,6 +792,7 @@ ins = {checkAutLevel:
iresult.canShowXcp = iresult.hasCTRRead && iresult.canRead("WEB_INSMAN"); // Exceptions (xcp) waarden inspecties/taken bekijken (waarden in ins_srtcontroledl_xcp tabel).
iresult.canChangeXcp = iresult.hasCTRWrite && iresult.canWrite("WEB_INSMAN"); // Exceptions (xcp) waarden inspecties/taken wijzigen (waarden in ins_srtcontroledl_xcp tabel).
iresult.canAddToScen = iresult.canChangeXcp && ins_deelsrtcontrole_status != 2 && ins_deelsrtcontrole_status != 5;
// Op een scenario kun je geen inspecties doen. Je kunt alleen inplannen en een planning wijzigen. Verder geen inspectie rechten.
var isScenario = params.scen_key > 1;

View File

@@ -380,6 +380,7 @@ var authparams = user.checkAutorisation(autfunction);
label: L("lcl_company"),
trclass: "primsearch noxd",
filtercode: "CI", // Contract onderhoud inspectieobjecten
startempty: true,
whenEmpty: L("lcl_search_generic")
});

View File

@@ -54,13 +54,12 @@ while (!oRs.eof)
var this_ins = ins.func_enabled_deel(ins_key, {srtcont_key: srtcont_key});
autchecked = true;
}
if (this_ins.canChangeXcp) // Mag ik de AS xcp waarde wijzigen?
if (this_ins.canAddToScen) // Mag ik de AS xcp waarde wijzigen?
{
ingesloten.push({ins_key: ins_key, srtcont_key: srtcont_key});
oRs.MoveNext();
tobecomitted++;
}
oRs.MoveNext();
}
oRs.Close()
@@ -161,7 +160,8 @@ for (var i = 0; i < ingesloten.length; i++)
+ " FROM ins_deelsrtcontrole idsc"
+ " WHERE idsc.ins_deel_key = " + ingesloten[i].ins_key
+ " AND idsc.ins_srtcontrole_key = " + ingesloten[i].srtcont_key
+ " AND idsc.ins_scenario_key = 1";
+ " AND idsc.ins_scenario_key = 1"
+ " ORDER BY idsc.ins_deelsrtcontrole_key DESC";
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{

View File

@@ -36,7 +36,7 @@ FCLTHeader.Requires({ plugins: ["jQuery"],
for (var i = 0; i < ins_key_arr.length; i++)
{
var this_ins = ins.func_enabled_deel(ins_key_arr[i], {srtcont_key: srtcont_key_arr[i]});
if (this_ins.canChangeXcp) // Mag ik nieuwe exceptions (xcp) waarden van de taak voor het nieuwe scenario wijzigen?
if (this_ins.canAddToScen) // Mag ik nieuwe exceptions (xcp) waarden van de taak voor het nieuwe scenario wijzigen?
{
ingesloten.push(ins_key_arr[i]);
ingeslotensc.push(srtcont_key_arr[i]);

View File

@@ -167,7 +167,8 @@ function tryOffline(path)
{
var fso = Server.CreateObject("Scripting.FileSystemObject");
var offlinefile = Server.MapPath(path + "offline.html");
if (fso.FileExists(offlinefile))
var forceonlinefile = Server.MapPath(custpath + "/forceonline.txt");
if (fso.FileExists(offlinefile) && !fso.FileExists(forceonlinefile))
{
Response.AddHeader("FCLT-Offline","offline");
FCLToffline = true;

View File

@@ -25,6 +25,7 @@
readonly: geeft aan of het bedrijf veld readonly weergegeven moet worden (true|false(default)).
moreinfo: geeft een extra informatie button achter het suggest veld. Klikken hierop geeft informatie
over de geselecteerde waarde
startempty start with an empty bedrijfselector suggestbox.
*/ %>
<!-- #include file="./Suggest/bedrijfFilter.inc" -->
@@ -54,7 +55,7 @@ function FCLTbedrijfselector(fieldName, objectName, params)
lextraInit = oRs("extra").Value
}
}
else
else if (!params.startempty)
{
var filtClause = getFiltClauseBedrijf(params.filtercode, params);
var extraInf = getExtraInfbedrijf(params.extracode);

View File

@@ -8,7 +8,7 @@
Context: Vanuit ELK asp bestand
*/
var FCLTVersion="2017.3c";
var FCLTVersion="2017.3d";
var FCLTMinDatabaseSchema="33";
var custpath = rooturl + "/cust/" + customerId; // path to customer files

View File

@@ -291,11 +291,8 @@ custfunc.fin_postsave =
if (hook)
{
__DoLog('before in hook');
if ('fin_postsave' in hook) {
__DoLog('in hook');
if ('fin_postsave' in hook)
result = hook.fin_postsave(fin_factuur, presult);
}
hook = null; // zorg dat de GC het object kan opruimen.
}
return result;

View File

@@ -51,31 +51,35 @@ function STR2Stream(xmlstr, xslfile, Stream, params)
xslproc.transform();
p_bodyhtml = xslproc.output;
// eerst lockeduser(xmlnode,key,bdradr_key) vervangen
// lockeduser(opdracht,12345,910) met 12345 opdracht_key en 910 bedrijfadres_key
// Vergelijkbare code in puo_xmltools.js
// eerst lockeduser(xmlnode,key,bedrijf_key) vervangen
// lockeduser(opdracht,12345,910) met 12345 opdracht_key en 910 bedrijf_key
var hmacs = p_bodyhtml.match(/(lockeduser\([^\)]*\))/g); // heeft nu array van lockeduser(opdracht,12345,910)
for (var i =0; hmacs && i < hmacs.length; i++)
{
var params = hmacs[i].match(/\(([^,]+)\,(\d+),(\d+)\)/);
if (params && params.length == 4)
if (!params)
throw { description: "lockeduser is used in xsl but empty opdracht_key or bedrijf_key" };
if (params.length == 4)
{
var xmlnode = params[1]; // We ondersteunen alleen nog maar 'opdracht'
var key = params[2];
var bdradr_key = params[3];
var sql = "SELECT prs_bedrijfadres_locksecret"
var bedrijf_key = params[3];
// Let op: we pakken altijd het eerste bedrijfadres
var sql = "SELECT prs_bedrijfadres_key,"
+ " prs_bedrijfadres_locksecret"
+ " FROM prs_bedrijfadres"
+ " WHERE prs_bedrijfadres_key = " + bdradr_key
+ " WHERE prs_bedrijf_key = " + bedrijf_key
+ " AND prs_bedrijfadres_locksecret IS NOT NULL"
+ " AND prs_bedrijfadres_lockuser_key IS NOT NULL";
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
{ // Ergens in de bon staat
// <xsl:attribute name="href">https://aqqa.facilitor.nl/lockeduser(opdracht,<xsl:value-of select="key"/>,
// <xsl:value-of select="uitvoerende//bedrijf/bedrijfadres/key"/>)</xsl:attribute>
// <xsl:value-of select="uitvoerende//bedrijf/key"/>)</xsl:attribute>
// maar bij de leverancier is geen 'Vaste gebruiker' en 'Gedeeld geheim' ingevuld
INTERNAL_ERROR_MISSING_LOCKSECRET;
}
var bdradr_key = oRs("prs_bedrijfadres_key").Value;
var locksecret = oRs("prs_bedrijfadres_locksecret").Value;
oRs.Close()
var url = "?u={0}&k={1}&lbdr={2}".format(xmlnode, key, bdradr_key);
@@ -340,22 +344,7 @@ function xmlToJson(xml)
// Luie oplossing: Oracle kan dit simpeler dan JavaScript.
function XMLtoJsDate(xmlDate)
{
if (xmlDate.length > 20) // with offset
{
var offset = xmlDate.slice(-6);
xmlDate = xmlDate.slice(0, -6);
var sql = "SELECT CAST ( "
+ " FROM_TZ ( "
+ " CAST ( "
+ " TO_DATE (REPLACE ("+safe.quoted_sql(xmlDate)+", 'T', ' '), "
+ " 'YYYY-MM-DD HH24:MI:SS') AS TIMESTAMP), "
+ " "+safe.quoted_sql(offset)+") "
+ " AT TIME ZONE "+safe.quoted_sql(S("fac_server_timezone"))+" AS DATE) "
+ " AS newDate "
+ " FROM DUAL";
}
else
var sql = "SELECT TO_DATE(REPLACE("+safe.quoted_sql(xmlDate)+",'T',' '), 'YYYY-MM-DD HH24:MI:SS') FROM DUAL";
var sql = "SELECT TO_DATE(REPLACE("+safe.quoted_sql(xmlDate)+",'T',' '), 'YYYY-MM-DD HH24:MI:SS') FROM DUAL";
//var sql = "SELECT TO_CHAR (TRUNC (TO_DATE(REPLACE("+safe.quoted_sql(xmlDate)+",'T',' '), 'YYYY-MM-DD HH24:MI:SS'), 'HH') + (15 * ROUND (TO_CHAR (TRUNC (TO_DATE(REPLACE("+safe.quoted_sql(xmlDate)+",'T',' '), 'YYYY-MM-DD HH24:MI:SS'), 'MI'), 'MI') / 15)) / 1440, 'DD-MM-YYYY HH24:MI:SS') FROM DUAL";
var oRs = Oracle.Execute(sql);
var dt = new Date(oRs(0).Value);

View File

@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="./cust.xsl"/>
<xsl:import href="./aado.xsl"/>
<xsl:import href="../../aaxx/xsl/opdracht.xsl"/>
<xsl:import href="./cust_settings.xsl"/>
<xsl:variable name="Rev">
<!-- Revision van deze cust.xsl -->
<xsl:value-of select="substring(translate('$Revision$', '$ ', ''), 10)"/>
</xsl:variable>
<xsl:template match="opdracht" mode="full">
<xsl:apply-templates select="." mode="default_opdracht"/>
</xsl:template>
<xsl:template match="opdracht" mode="full">
<xsl:apply-templates select="." mode="default_opdracht"/>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,16 @@
REM GEN_EXPORT_KPI.BAT
REM
REM HCAS
REM
REM Exporteert informatie naar een export-bestand
REM
REM Context : roep deze file aan indien nodig, of schedule deze
REM Verseist: de randvoorwaarde voor het gebruik van gen_export
REM
REM $Revision$
REM $I$
REM
REM (c) 2013, SG|facilitor bv, +31 (53) 4800700, support@sgfacilitor.nl
REM
CALL ..\..\..\utils\gen_export\gen_export.bat KPI

View File

@@ -606,7 +606,7 @@
<td style="background-color: #ffffff" height="10"></td>
</tr>
<xsl:for-each select="rapport_data/data_row/LEVERANCIERCODE[not(.=preceding::*)]">
<xsl:for-each select="//data_row[not(.=preceding::*)]/LEVERANCIERCODE">
<xsl:sort select="../LEVERANCIERCODE"/>
<xsl:variable name="bedr_code" select="../LEVERANCIERCODE"/>
@@ -644,7 +644,7 @@
<table width="100%" cellspacing="0" cellpadding="5" class="tab_cat_sched nofloat">
<xsl:variable name="v_periode">
<xsl:call-template name="GET_PERIODE">
<xsl:with-param name="p_periode_veld">bgt_datum</xsl:with-param>
<xsl:with-param name="p_periode_veld">all_datum</xsl:with-param>
</xsl:call-template>
</xsl:variable>
@@ -1330,7 +1330,7 @@
<table width="100%" cellspacing="0" cellpadding="5" class="tab_cat_sched nofloat">
<xsl:variable name="v_periode">
<xsl:call-template name="GET_PERIODE">
<xsl:with-param name="p_periode_veld">bgt_datum</xsl:with-param>
<xsl:with-param name="p_periode_veld">all_datum</xsl:with-param>
</xsl:call-template>
</xsl:variable>
@@ -1508,7 +1508,7 @@
<table width="100%" cellspacing="0" cellpadding="5" class="tab_cat_sched nofloat">
<xsl:variable name="v_periode">
<xsl:call-template name="GET_PERIODE">
<xsl:with-param name="p_periode_veld">bgt_datum</xsl:with-param>
<xsl:with-param name="p_periode_veld">all_datum</xsl:with-param>
</xsl:call-template>
</xsl:variable>
@@ -1626,7 +1626,7 @@
<table width="100%" cellspacing="0" cellpadding="5" class="tab_cat_sched nofloat">
<xsl:variable name="v_periode">
<xsl:call-template name="GET_PERIODE">
<xsl:with-param name="p_periode_veld">bgt_datum</xsl:with-param>
<xsl:with-param name="p_periode_veld">all_datum</xsl:with-param>
</xsl:call-template>
</xsl:variable>
@@ -1742,11 +1742,9 @@
<xsl:template name="overzicht_meerminder_opdracht">
<table width="100%" cellspacing="0" cellpadding="5" class="tab_cat_sched nofloat">
<xsl:variable name="v_periode">
<!--
<xsl:call-template name="GET_PERIODE">
<xsl:with-param name="p_periode_veld">adviesdatum</xsl:with-param>
<xsl:with-param name="p_periode_veld">mld_opdr_datumbegin</xsl:with-param>
</xsl:call-template>
-->
</xsl:variable>
<thead>
@@ -2554,6 +2552,8 @@
<tr><td class="tdtl" colspan="8">&#xA0;</td></tr>
<xsl:for-each select="//data_row[FACTUURSTATUS = 6]">
<xsl:sort select="FACTUURDATUM"/>
<xsl:sort select="CONTRACTANT"/>
<xsl:sort select="FACTUURNR"/>
<xsl:variable name="v_bedrag_exc" select="BEDRAGEXCL"/>
<xsl:variable name="v_bedrag_btw" select="BEDRAGBTW"/>
<xsl:variable name="v_bedrag_inc" select="$v_bedrag_exc + $v_bedrag_btw"/>

View File

@@ -88,31 +88,35 @@ function XML2HTML( xmlDoc
xslProc.transform();
result = xslProc.output;
// eerst lockeduser(xmlnode,key,bdradr_key) vervangen
// lockeduser(opdracht,12345,910) met 12345 opdracht_key en 910 bedrijfadres_key
// Vergelijkbare code in shared/xml_converter.inc
// eerst lockeduser(xmlnode,key,bedrijf_key) vervangen
// lockeduser(opdracht,12345,910) met 12345 opdracht_key en 910 bedrijf_key
var hmacs = result && result.match(/(lockeduser\([^\)]*\))/g); // heeft nu array van lockeduser(opdracht,12345,910)
for (var i =0; hmacs && i < hmacs.length; i++)
{
var params = hmacs[i].match(/\(([^,]+)\,(\d+),(\d+)\)/);
if (params && params.length == 4)
if (!params)
throw { description: "lockeduser is used in xsl but empty opdracht_key or bedrijf_key" };
if (params.length == 4)
{
var xmlnode = params[1]; // We ondersteunen alleen nog maar 'opdracht'
var key = params[2];
var bdradr_key = params[3];
var sql = "SELECT prs_bedrijfadres_locksecret"
var bedrijf_key = params[3];
// Let op: we pakken altijd het eerste bedrijfadres
var sql = "SELECT prs_bedrijfadres_key,"
+ " prs_bedrijfadres_locksecret"
+ " FROM prs_bedrijfadres"
+ " WHERE prs_bedrijfadres_key = " + bdradr_key
+ " WHERE prs_bedrijf_key = " + bedrijf_key
+ " AND prs_bedrijfadres_locksecret IS NOT NULL"
+ " AND prs_bedrijfadres_lockuser_key IS NOT NULL";
var oRs = Oracle.Execute(sql);
if (oRs.Eof)
{ // Ergens in de bon staat
// <xsl:attribute name="href">https://aqqa.facilitor.nl/lockeduser(opdracht,<xsl:value-of select="key"/>,
// <xsl:value-of select="uitvoerende//bedrijf/bedrijfadres/key"/>)</xsl:attribute>
// <xsl:value-of select="uitvoerende/bedrijf/key"/>)</xsl:attribute>
// maar bij de leverancier is geen 'Vaste gebruiker' en 'Gedeeld geheim' ingevuld
throw { description: "/lockeduser is used in xsl but missing prs_bedrijfadres_locksecret/prs_bedrijfadres_lockuser_key" };
throw { description: "lockeduser is used in xsl but missing prs_bedrijfadres_locksecret/prs_bedrijfadres_lockuser_key" };
}
var bdradr_key = oRs("prs_bedrijfadres_key").Value;
var locksecret = oRs("prs_bedrijfadres_locksecret").Value;
oRs.Close();
var url = "?u={0}&k={1}&lbdr={2}".format(xmlnode, key, bdradr_key);

View File

@@ -39,6 +39,8 @@ function Fill(i, c)
function isOffline()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FileExists("../forceonline.txt"))
return false;
if (fso.FileExists("../offline.html"))
return true;
if (fso.FileExists("../../offline.html"))