Merge 2017.1 Gold B patches

svn path=/Website/trunk/; revision=34303
This commit is contained in:
Jos Groot Lipman
2017-06-15 15:02:54 +00:00
parent 704f21899d
commit 284aadb8fb
54 changed files with 857 additions and 527 deletions

View File

@@ -17,6 +17,7 @@ var JSON_Result = true;
%>
<!--#include file="../Shared/common.inc"-->
<!--#include file="../Shared/json2.js" -->
<!--#include file="alg.inc" -->
<%
protectRequest.validateToken();
@@ -34,6 +35,54 @@ var autfunction = {D : "WEB_ALGMAN",
PW: "WEB_PRSBOF"}[level];
var authParams = user.checkAutorisation(autfunction);
var authparamsAlg = alg.checkAutorisation();
var tobedeleted = 0;
var ingesloten = [];
// Bepaal de opdrachten in de selectie die
// ook echt geaccepteerd kunnen of mogen worden.
for (var i = 0; i < dis_key_arr.length; i++)
{
var canDelete = false;
switch (level)
{
case "RE": canDelete = alg.canWriteRegio(dis_key_arr[i], authparamsAlg.mALGwritelevel);
break;
case "D": canDelete = alg.canWriteDistrict(dis_key_arr[i], authparamsAlg.mALGwritelevel);
break;
case "L": canDelete = alg.canWriteLocatie(dis_key_arr[i], authparamsAlg.mALGwritelevel);
break;
case "T": var sql = "SELECT alg_locatie_key"
+ " FROM alg_v_aanwezigterreinsector"
+ " WHERE alg_terreinsector_key = " + dis_key_arr[i];
oRs = Oracle.Execute(sql);
canDelete = alg.canWriteLocatie(oRs("alg_locatie_key").Value, authparamsAlg.mALGwritelevel);
oRs.Close()
break;
case "G": canDelete = alg.canWriteGebouw(dis_key_arr[i], authparamsAlg.mALGwritelevel);
break;
case "V": canDelete = alg.canWriteVerdieping(dis_key_arr[i], authparamsAlg.mALGwritelevel);
break;
case "R": canDelete = alg.canWriteRuimte(dis_key_arr[i], authparamsAlg.mALGwritelevel);
break;
case "W": var sql = "SELECT alg_ruimte_key"
+ " FROM prs_v_werkplek_gegevens"
+ " WHERE prs_werkplek_key = " + dis_key_arr[i];
oRs = Oracle.Execute(sql);
canDelete = alg.canWriteRuimte(oRs("alg_ruimte_key").Value, authparamsAlg.mALGwritelevel);
oRs.Close()
break;
case "PW": canDelete = authparamsAlg.ALGwritelevel < 9;
break;
}
if (canDelete)
{
ingesloten.push(dis_key_arr[i]);
tobedeleted++;
}
}
user.auth_required_or_abort(tobedeleted > 0); // We klagen niet over enkele wel en enkele niet
var table = {D : "ALG_DISTRICT",
RE: "ALG_REGIO",
@@ -46,41 +95,41 @@ var table = {D : "ALG_DISTRICT",
PW: "PRS_PERSLIDWERKPLEK"}[level];
result = { success: true, deleted: true };
for (var i = 0; i < dis_key_arr.length; i++)
for (var i = 0; i < ingesloten.length; i++)
{
// W en WP hebben geen verwijderveld (meer), die gaan echt weg.
if (level == "W" || level == "PW")
// W en WP hebben geen verwijderveld (meer), die gaan echt weg.
if (level == "W" || level == "PW")
{
// Een WP gooit via de cascade zijn bezetting mee weg.
// Een bezetting verwijderen doet niets extra
// Bij impliciet verwijderen van wp-bezetting dus ook de werkplek weggooien
// die nu (per definitie) leeg wordt. Dit moet eerst, want straks weet
// ik niet meer genoeg
if (level == "PW" && S("prs_werkplek_implicit") == 1)
{
// Een WP gooit via de cascade zijn bezetting mee weg.
// Een bezetting verwijderen doet niets extra
// Bij impliciet verwijderen van wp-bezetting dus ook de werkplek weggooien
// die nu (per definitie) leeg wordt. Dit moet eerst, want straks weet
// ik niet meer genoeg
if (level == "PW" && S("prs_werkplek_implicit") == 1)
{
sql = "DELETE FROM prs_werkplek"
+ " WHERE prs_werkplek_key IN "
+ " (SELECT prs_werkplek_key "
+ " FROM prs_perslidwerkplek"
+ " WHERE prs_perslidwerkplek_key IN (" + dis_key_arr[i] + "))"
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
}
// En dit moet ongeacht impliciet of expliciet.
// Alleen bij PW&implicit zal dit niets meer verwijderen vanwege de cascade hiervoor
sql = "DELETE FROM " + table
+ " WHERE " + table + "_key IN (" + dis_key_arr[i] + ")";
sql = "DELETE FROM prs_werkplek"
+ " WHERE prs_werkplek_key IN "
+ " (SELECT prs_werkplek_key "
+ " FROM prs_perslidwerkplek"
+ " WHERE prs_perslidwerkplek_key IN (" + ingesloten[i] + "))"
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
}
else
{
sql = "UPDATE " + table
+ " SET " + table + "_VERWIJDER = " + "SYSDATE"
+ " WHERE " + table + "_key IN (" + dis_key_arr[i] + ")";
}
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
// En dit moet ongeacht impliciet of expliciet.
// Alleen bij PW&implicit zal dit niets meer verwijderen vanwege de cascade hiervoor
sql = "DELETE FROM " + table
+ " WHERE " + table + "_key IN (" + ingesloten[i] + ")";
}
else
{
sql = "UPDATE " + table
+ " SET " + table + "_VERWIJDER = " + "SYSDATE"
+ " WHERE " + table + "_key IN (" + ingesloten[i] + ")";
}
var err = Oracle.Execute(sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
}
Response.Write(JSON.stringify(result));

View File

@@ -25,7 +25,16 @@ var API = new API_func();
// TODO checkAuthorization("WEB_PUOxxx") ?
var flexcode = getQParam("flexcode");
if (flexcode.match(/^M=CAD/))
{
// <xsl:element name="img">
// <xsl:attribute name="frc">M=CAD&amp;labelPos=2&amp;vKey=<xsl:value-of select="//afspraak/plaats/regio/district/locatie/gebouw/verdieping/key"/>&amp;highlight=<xsl:value-of select="//afspraak/plaats/regio/district/locatie/gebouw/verdieping/ruimte/key"/>&amp;mode=0&amp;discs=981&amp;sizeX=700&amp;sizeY=400&amp;offsetX=10&amp;offsetY=10&amp;scale=950&amp;paperColor=16777215
// </xsl:attribute>
// </xsl:element>
Server.Transfer(rooturl + "/APPL/CAD/mySlnk2IMG.asp"); // Die kan het ook wel oplossen
}
// Else gewone flexfiles
var props = flexProps2(flexcode);
__Log(props);

View File

@@ -105,6 +105,7 @@ for (i = 0; i < meldingen.length; i++)
var meldrnr = XMLval(meldingen[i], "ruimtecode");
var locatie_key = -1; // Bepaald op basis van meldloc
var plaats_key = -1; // Bepaald op basis van meldgeb/meldver/meldrnr
var meld_kpn = XMLval(meldingen[i], "kostenplaats");
var meld_oms = XMLval(meldingen[i], "omschrijving");
//var mldkenmerken = (meldingen[i].getElementsByTagName("kenmerk"))[0].childNodes[0].nodeValue; // Unsupported yet
var mldkenmerken = meldingen[i].getElementsByTagName("kenmerk");
@@ -136,7 +137,7 @@ for (i = 0; i < meldingen.length; i++)
resultcode = 1;
resulttekst = "Undefined external ID (key)";
}
else if (meldaction == 'update')
else if (meldaction == "update")
{
resultcode = 0;
// verder nog even kijken wat we willen doen.
@@ -145,7 +146,7 @@ for (i = 0; i < meldingen.length; i++)
var mldUpd = buildTrackingUpdate("mld_melding", "mld_melding_key = " + mld_key, fields, { noValidateToken: true });
Oracle.Execute(mldUpd.sql);
}
else if (meldaction != 'insert')
else if (meldaction != "insert")
{
resultcode = 2;
resulttekst = "Undefined operation (type)";
@@ -313,12 +314,42 @@ for (i = 0; i < meldingen.length; i++)
__DoLog(resulttekst, "#00FF00");
}
var kpn_key = user.afdeling().prs_kostenplaats_key();
if (meld_kpn && meld_kpn != "")
{
tsql = "SELECT prs_kostenplaats_key"
+ " FROM prs_kostenplaats"
+ " WHERE prs_kostenplaats_verwijder IS NULL"
+ " AND (prs_kostenplaats_begin IS NULL"
+ " OR prs_kostenplaats_begin < SYSDATE)"
+ " AND (prs_kostenplaats_eind IS NULL"
+ " OR prs_kostenplaats_eind > SYSDATE)"
+ " AND prs_kostenplaats_upper = " + safe.quoted_sql_upper(meld_kpn); // Unique
oRs = Oracle.Execute(tsql);
if (!oRs.EoF)
{
var meld_kpn_key = oRs("prs_kostenplaats_key").Value;
tsql = "SELECT ''"
+ " FROM prs_perslidkostenplaats"
+ " WHERE prs_perslidkostenplaats_boeken = 1"
+ " AND (prs_kostenplaats_key = " + meld_kpn_key
+ " OR prs_kostenplaats_key IS NULL)" // Mandated for all
+ " AND prs_perslid_key = " + perslid_key;
oRs = Oracle.Execute(tsql);
if (!oRs.EoF) // persoon is gemandateerd voor gegeven kostenplaats
kpn_key = meld_kpn_key;
}
oRs.Close();
}
fields = fields.concat(
[ { dbs: "mld_melding_key", typ: "key", seq: "mld_s_mld_melding_key" },
{ dbs: "mld_melding_module", typ: "varchar", val: "MLD" },
{ dbs: "mld_meldbron_key", typ: "key", val: 6 }, // system
{ dbs: "mld_melding_omschrijving", typ: "varchar", val: meld_oms, len: 4000 },
{ dbs: "prs_kostenplaats_key", typ: "key", val: user.afdeling().prs_kostenplaats_key() },
{ dbs: "prs_kostenplaats_key", typ: "key", val: kpn_key },
{ dbs: "prs_perslid_key", typ: "key", val: perslid_key },
{ dbs: "prs_perslid_key_voor", typ: "key", val: voor_key },
{ dbs: "mld_melding_spoed", typ: "key", val: 3 }, // default (frontend) = 3

View File

@@ -142,6 +142,7 @@ for (i=0; i < opdrachten.length; i++)
var opdrachttekst = XMLval(opdrachten[i], "opdrachttekst"); // NEW
var meldingtekst = XMLval(opdrachten[i], "meldingtekst"); // NEW
var onderwerp = XMLval(opdrachten[i], "onderwerp"); // NEW
var opdr_kpn = XMLval(opdrachten[i], "kostenplaats");
var txt_mut_datum = XMLval(opdrachten[i], "mut_datum"); // UPD
var opdrstatus = XMLval(opdrachten[i], "status"); // UPD
@@ -260,6 +261,36 @@ for (i=0; i < opdrachten.length; i++)
__Log("Uitsluitend gemandateerd voor kostenplaats: " + kpn_nr);
}
}
if (opdr_kpn && opdr_kpn != "")
{
tsql = "SELECT prs_kostenplaats_key"
+ " FROM prs_kostenplaats"
+ " WHERE prs_kostenplaats_verwijder IS NULL"
+ " AND (prs_kostenplaats_begin IS NULL"
+ " OR prs_kostenplaats_begin < SYSDATE)"
+ " AND (prs_kostenplaats_eind IS NULL"
+ " OR prs_kostenplaats_eind > SYSDATE)"
+ " AND prs_kostenplaats_upper = " + safe.quoted_sql_upper(opdr_kpn); // Unique
oRs = Oracle.Execute(tsql);
if (!oRs.EoF)
{
var opdr_kpn_key = oRs("prs_kostenplaats_key").Value;
tsql = "SELECT ''"
+ " FROM prs_perslidkostenplaats"
+ " WHERE prs_perslidkostenplaats_boeken = 1"
+ " AND (prs_kostenplaats_key = " + opdr_kpn_key
+ " OR prs_kostenplaats_key IS NULL)" // Mandated for all
+ " AND prs_perslid_key = " + voor_key;
oRs = Oracle.Execute(tsql);
if (!oRs.EoF) // persoon gemandateerd voor gegeven kostenplaats
kpn_key = opdr_kpn_key;
}
oRs.Close();
}
if (resultcode == -1) // Nog steeds geen fouten.
{
var meld_oms = "Automatisch aangemaakte melding tbv. werkzaamheden ge<67>nitieerd in extern systeem met referentie: "+ externnr;

View File

@@ -99,7 +99,8 @@ function model_bgt_budget()
"dbs": "bgt_budget_isreserve",
"label": L("bgt_budget_isreserve"),
"typ": "check0",
"defaultvalue": 1
"defaultvalue": 1,
"filterdefault": "1"
},
"begin": {
"dbs": "bgt_budget_begin",

View File

@@ -167,6 +167,12 @@ function model_fac_srtnotificatie(cust)
"label": L("fac_srtnotificatie_alert"),
"typ": "varchar",
"hidden_fld": true
},
"modeapp": {
"dbs": "notimode.apppush",
"label": L("fac_srtnotificatie_app"),
"typ": "varchar",
"hidden_fld": true
}
};
@@ -178,7 +184,7 @@ function model_fac_srtnotificatie(cust)
+ " , DECODE(BITAND(fac_srtnotificatie_mode, 2), 2,"+ safe.qL("lcl_on") +", '') email"
+ " , DECODE(BITAND(fac_srtnotificatie_mode, 4), 4,"+ safe.qL("lcl_on") +", '') sms"
+ " , DECODE(BITAND(fac_srtnotificatie_mode, 8), 8,"+ safe.qL("lcl_on") +", '') portal"
+ " , DECODE(BITAND(fac_srtnotificatie_mode, 32), 8,"+ safe.qL("lcl_on") +", '') apppush"
+ " , DECODE(BITAND(fac_srtnotificatie_mode, 32),32,"+ safe.qL("lcl_on") +", '') apppush"
+ " FROM fac_srtnotificatie) notimode ";
var get_param = {

View File

@@ -27,7 +27,7 @@ function model_prs_kostensoort()
+ "SELECT fac_audit_tabelkey" // Verwijderde kosten combinaties.
+ " FROM fac_audit"
+ " WHERE fac_audit_tabelnaam = 'prs_kostencombinatie'"
+ " AND fac_audit_waarde_oud IN ('{0}')"
+ " AND fac_audit_waarde_oud IN ('{1}')"
}
};
this.primary = "prs_kostensoort_key";

View File

@@ -48,7 +48,7 @@ function model_prs_perslid(params)
"childaudit": {"sql": "SELECT fac_audit_tabelkey"
+ " FROM fac_audit"
+ " WHERE fac_audit_tabelnaam = 'fac_gebruikersgroep'"
+ " AND fac_audit_waarde_oud IN ('{0}')"
+ " AND fac_audit_waarde_oud IN ('{1}')"
}
};
this.softdelete = true;
@@ -68,7 +68,7 @@ function model_prs_perslid(params)
"dbs": "pf.prs_perslid_naam_friendly",
"dbsa": "(SELECT pf.prs_perslid_naam_friendly FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = x.prs_perslid_key)",
"label": L("lcl_prs_person_name"),
" typ": "varchar"
"typ": "varchar"
},
"lastname": {
"dbs": "prs_perslid_naam",

View File

@@ -26,7 +26,8 @@ scaffolding(this_model,
"budgetproject",
"budgetcostcategory",
"costtypegroup",
"costtype"
"costtype",
"contingency"
],
"requires": {
"js": ["../bgt/bgt_budget.js"]

View File

@@ -91,8 +91,6 @@ function change_groep()
function change_soort()
{
var soort_key = $("#costtype").val();
if ($("#contingency").length)
$("#contingency").prop("disabled", (soort_key > 0 ? false: true) );
if ($("#costtype option:selected").attr("incl_btw") == "1")
{
@@ -191,6 +189,5 @@ function process_info(data)
if (sel_key > -1)
select.val(sel_key);
if ($("#contingency").length) // dit veld bestaat alleen in bgt_budget.
$("#contingency").prop("disabled", true);
$("input#contingency").prop("disabled", true);
}

View File

@@ -32,6 +32,7 @@ var autosearch = getQParamInt("autosearch", 0) == 1;
var bgtdisc_key = getQParamInt("dis_key"); // Project
var bgtproj_key = getQParamInt("bgtproj_key", -1); // Deelproject
var bgtrubr_key = getQParamInt("bgtrubr_key", -1); // Rubriek
var groupby = getQParamInt("groupby", -1); // Groepering
var autfunctionBGTUSE = "WEB_BGTUSE";
@@ -49,6 +50,71 @@ var authparamsBGTUSE = user.checkAutorisation("WEB_BGTUSE");
<% if (autosearch) { %>
$(document).ready(function() { doSubmit(); });
<%}%>
function change_project()
{
fill_selector("R", $("#bgtproj_key :selected").val());
}
function change_rubriek()
{
fill_selector("G", $("#budgetcostcategory :selected").val());
}
function fill_selector(niveau, parent_key, init_key)
{
$.getJSON( "../bgt/get_bgt_info_ajax.asp",
{ req_info: "projectsearch",
niveau: niveau,
parent_key: parent_key,
init_key: init_key
},
process_info);
}
function process_info(data)
{
var select;
switch(data.niveau)
{
//case "D": select = $("#budgetdiscipline"); break;
//case "P": select = $("#budgetproject"); break;
case "R": select = $("#budgetcostcategory"); break;
case "G": select = $("#costtypegroup"); break;
//case "S": select = $("#costtype"); break;
//case "KP": select = $("#account"); break;
}
var add_data = "";
var sel_key = -1;
var new_lov = '<option value="-1" ></option>';
if (data.lov.length > 0)
{
for (i=0; i < data.lov.length;i++)
{
var opt = data.lov[i];
if (data.niveau == "KP")
{
add_data = ' par_key="' + opt.atr.par_key + '"';
}
else
{
add_data = ' incl_btw="' + opt.atr.btw_inc + '"'
+ ' perc_btw="' + opt.atr.btw_val + '"';
}
new_lov += '<option value="' + opt.key + '"' + (opt.sel?" selected":"") + add_data + '>'+ opt.oms + '</option>';
if (opt.sel)
sel_key = opt.key;
}
select.prop("disabled", false);
}
else
{
select.prop("disabled", true);
}
select.empty().append(new_lov);
if (sel_key > -1)
select.val(sel_key);
}
</script>
</head>
@@ -64,10 +130,13 @@ var authparamsBGTUSE = user.checkAutorisation("WEB_BGTUSE");
<td class="searchkolom1"><!-- start column 1 -->
<table><!-- x rijen, 2 kolommen: label + veld -->
<%
var sql = "SELECT bgt_project_key, bgt_project_code||' '||bgt_project_omschrijving "
var sql = "SELECT bgt_project_key"
+ " , bgt_project_code||' '||bgt_project_omschrijving"
+ " FROM bgt_project"
+ " WHERE ins_discipline_key = "+ bgtdisc_key
+ " ORDER BY bgt_project_volgnr";
+ " WHERE bgt_project_verwijder IS NULL"
+ " AND ins_discipline_key = "+ bgtdisc_key
+ " ORDER BY bgt_project_volgnr"
+ " , bgt_project_code";
FCLTselector("bgtproj_key",
sql,
@@ -76,10 +145,34 @@ var authparamsBGTUSE = user.checkAutorisation("WEB_BGTUSE");
xreadonly: bgtproj_key > -1, // dan komt de waarde niet door, jammer
multi: true,
emptyOption: L("lcl_all"),
initKey: bgtproj_key
initKey: bgtproj_key,
onChange: "change_project()"
}
);
var sql = "SELECT bgt_kostenrubriek_key"
+ " , bgt_kostenrubriek_code||' '||bgt_kostenrubriek_oms"
+ " FROM bgt_kostenrubriek"
+ " WHERE bgt_project_key = " + bgtproj_key;
FCLTselector("budgetcostcategory",
sql,
{ "label": "Rubriek",
onChange: "change_rubriek()"
}
);
var sql = "SELECT prs_kostensoortgrp_key"
+ " , prs_kostensoortgrp_altcode||' '||prs_kostensoortgrp_oms"
+ " FROM prs_kostensoortgrp"
+ " WHERE bgt_kostenrubriek_key = " + bgtrubr_key;
FCLTselector("costtypegroup",
sql,
{ "label": "Groep"
}
);
sql = "SELECT "
+ " 1, " + safe.qL("lcl_fin_invoices") + ", 6 FROM DUAL"
+ " UNION SELECT 2, " + safe.qL("lcl_orders") + ", 5 FROM DUAL"

View File

@@ -31,6 +31,8 @@ var excel = (outputmode == 2 || outputmode == 6);
var bgtdisc_key = getQParamInt("dis_key"); // bgt discipline is echt vereist
var bgtproj_key_arr = getQParamIntArray("bgtproj_key", []);
var bgtrubr_key = getQParamInt("budgetcostcategory", -1);
var bgtgrp_key = getQParamInt("costtypegroup", -1);
if (bgtdisc_key > 0)
lcl.set_dialect(bgtdisc_key, "INS_TAB_DISCIPLINE_KEY"); // TBD. Nodig?
@@ -144,6 +146,23 @@ var transitParam = buildTransitParam([]);
</head>
<body id="listbody">
<%
var mutatie_sql = " (SELECT mutatie.bgt_budget_key"
+ " , SUM(mutatie.bedrag_van) bedrag_van"
+ " , SUM(mutatie.bedrag_naar) bedrag_naar"
+ " FROM (SELECT m1.bgt_budget_key_van bgt_budget_key"
+ " , SUM(COALESCE(m1.bgt_budget_bedrag_van,0)) bedrag_van"
+ " , 0 bedrag_naar"
+ " FROM bgt_budgetmutatie m1"
+ " GROUP BY m1.bgt_budget_key_van"
+ " UNION"
+ " SELECT m2.bgt_budget_key_naar bgt_budget_key"
+ " , 0 bedrag_van"
+ " , SUM(COALESCE(m2.bgt_budget_bedrag_naar,0)) bedrag_naar"
+ " FROM bgt_budgetmutatie m2"
+ " GROUP BY m2.bgt_budget_key_naar"
+ ") mutatie"
+ " GROUP BY mutatie.bgt_budget_key"
+ " ) mut";
// zoiets moet het dan gaan worden. Vast nog wat verfijnder. UNIONs met reserve e.d. nodig?
if (groupby == 1) // facturen
@@ -183,6 +202,8 @@ var transitParam = buildTransitParam([]);
+ (date_from ? " AND f.fin_factuur_datum >= "+ date_from.beginToSQL() : "")
+ (date_to ? " AND f.fin_factuur_datum < " + date_to.endToSQL() : "")
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ (bgtrubr_key > 0 ? " AND kr.bgt_kostenrubriek_key = " + bgtrubr_key : "")
+ (bgtgrp_key > 0 ? " AND ksg.prs_kostensoortgrp_key = " + bgtgrp_key : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql += " ORDER BY bgt_project_omschrijving"
@@ -198,14 +219,12 @@ var transitParam = buildTransitParam([]);
+ " ks.prs_kostensoort_oms onderdeel,"
+ " ks.prs_kostensoort_altcode rcode,"
+ " ks.prs_kostensoort_altcode sortcode,"
// + " bud.bgt_budget_bedrag budget,"
+ " b.prs_bedrijf_naam uitvoerder,"
+ " o.mld_opdr_key,"
+ " o.mld_opdr_id opdrachtnr,"
+ " o.mld_opdr_datumbegin opdrachtdatum,"
+ " o.prs_kostensoort_key,"
+ " o.mld_opdr_kosten gecontracteerd,"
// + " bud.bgt_budget_bedrag" + " - SUM (COALESCE(o.mld_opdr_kosten,0)) tecontracteren,"
+ " SUM (f.fin_factuur_totaal) gefactureerd,"
+ " COALESCE(o.mld_opdr_kosten,0) - SUM (COALESCE(f.fin_factuur_totaal,0)) tefactureren,"
+ " bgt_project_omschrijving deelproject,"
@@ -230,6 +249,8 @@ var transitParam = buildTransitParam([]);
+ (date_from ? " AND o.mld_opdr_datumbegin >= "+ date_from.beginToSQL() : "")
+ (date_to ? " AND o.mld_opdr_datumbegin < " + date_to.endToSQL() : "")
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ (bgtrubr_key > 0 ? " AND kr.bgt_kostenrubriek_key = " + bgtrubr_key : "")
+ (bgtgrp_key > 0 ? " AND ksg.prs_kostensoortgrp_key = " + bgtgrp_key : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql += " GROUP BY kr.bgt_kostenrubriek_oms,"
@@ -283,20 +304,25 @@ var transitParam = buildTransitParam([]);
+ " ks.prs_kostensoort_oms onderdeel,"
+ " ks.prs_kostensoort_altcode rcode,"
+ " ks.prs_kostensoort_altcode sortcode,"
+ " SUM(5) budget_start,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag,0)) budget"
+ " 0 budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag, 0)) budget_actueel,"
+ " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van, 0)) budget_mutatie"
+ " FROM prs_kostensoort ks,"
+ " prs_kostensoortgrp ksg,"
+ " bgt_kostenrubriek kr,"
+ " bgt_budget bud,"
+ " bgt_project pr,"
+ " ins_tab_discipline id"
+ " ins_tab_discipline id,"
+ mutatie_sql
+ " WHERE ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND ks.prs_kostensoort_key = bud.prs_kostensoort_key"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
+ " AND mut.bgt_budget_key(+) = bud.bgt_budget_key"
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ (bgtrubr_key > 0 ? "AND kr.bgt_kostenrubriek_key = " + bgtrubr_key : "")
+ (bgtgrp_key > 0 ? " AND ksg.prs_kostensoortgrp_key = " + bgtgrp_key : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql1 += " GROUP BY ksg.prs_kostensoortgrp_oms,"
+ " ks.prs_kostensoort_key,"
@@ -309,100 +335,36 @@ var transitParam = buildTransitParam([]);
+ " pr.bgt_project_key,"
+ " bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving";
// Dan de budgetten direct bij kostensoortgroep; daar kunnen geen opdrachten of facturen bij zijn (IS DIT DAN TOCH DE IMPLICIETE RESERVE?)
// NB: DIT IS DUS NIET HET CONSOLIDATIE-NIVEAU MET DE OPTELLING VAN DE ONDERLIGGENDE BUDGETTEN maar de op hoger niveau gedefinieerde budgetten
sql1 += " UNION SELECT ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject,"
+ " kr.bgt_kostenrubriek_oms rubriek,"
+ " ksg.prs_kostensoortgrp_oms groep,"
+ " bud.prs_kostensoortgrp_key,"
+ " bud.bgt_kostenrubriek_key,"
+ " NULL,"
+ " '"+ L("bgt_ksgbudget") +"' onderdeel,"
+ " ksg.prs_kostensoortgrp_altcode rcode,"
+ " ksg.prs_kostensoortgrp_altcode sortcode,"
+ " SUM(5) budget_start,"
+ " SUM(bud.bgt_budget_bedrag) budget"
+ " FROM prs_kostensoortgrp ksg,"
+ " bgt_kostenrubriek kr,"
+ " bgt_budget bud,"
+ " bgt_project pr,"
+ " ins_tab_discipline id"
+ " WHERE ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND ksg.prs_kostensoortgrp_key = bud.prs_kostensoortgrp_key"
+ " AND bud.prs_kostensoort_key IS NULL"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql1 += " GROUP BY ksg.prs_kostensoortgrp_oms,"
+ " ksg.prs_kostensoortgrp_altcode,"
+ " bud.prs_kostensoortgrp_key,"
+ " kr.bgt_kostenrubriek_oms,"
+ " bud.bgt_kostenrubriek_key,"
+ " pr.bgt_project_key,"
+ " bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving";
// En tenslotte de budgetten direct bij kostenrubriek; daar kunnen ook geen opdrachten of facturen bij zijn (IS DIT DAN TOCH DE IMPLICIETE RESERVE?)
// NB: OOK DIT IS DUS NIET HET CONSOLIDATIE-NIVEAU MET DE OPTELLING VAN DE ONDERLIGGENDE BUDGETTEN maar de op hoger niveau gedefinieerde budgetten
sql1 += " UNION SELECT ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject,"
+ " kr.bgt_kostenrubriek_oms rubriek,"
+ " '"+L("bgt_rubriekbudget")+"' groep,"
+ " NULL prs_kostensoortgrp_key,"
+ " bud.bgt_kostenrubriek_key,"
+ " NULL,"
+ " NULL onderdeel,"
+ " kr.bgt_kostenrubriek_code||'. "+L("bgt_rubriekbudget")+"' rcode,"
+ " kr.bgt_kostenrubriek_code||'. "+L("bgt_rubriekbudget")+"' sortcode,"
+ " SUM(5) budget_start,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag,0)) budget"
+ " FROM bgt_kostenrubriek kr,"
+ " bgt_budget bud,"
+ " bgt_project pr,"
+ " ins_tab_discipline id"
+ " WHERE kr.bgt_kostenrubriek_key = bud.bgt_kostenrubriek_key"
+ " AND bud.prs_kostensoort_key IS NULL"
+ " AND bud.prs_kostensoortgrp_key IS NULL"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql1 += " GROUP BY kr.bgt_kostenrubriek_oms,"
+ " kr.bgt_kostenrubriek_code,"
+ " bgt_budget_bedrag,"
+ " kr.bgt_kostenrubriek_oms,"
+ " bud.bgt_kostenrubriek_key,"
+ " bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving";
}
if (groupby == 4) // 4. kostensoortgrp
{
var sql1 = " SELECT ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject,"
+ " kr.bgt_kostenrubriek_oms rubriek,"
+ " ksg.prs_kostensoortgrp_altcode rcode,"
+ " ksg.prs_kostensoortgrp_altcode sortcode,"
+ " ksg.prs_kostensoortgrp_oms groep,"
+ " bud.prs_kostensoortgrp_key,"
+ " bud.bgt_kostenrubriek_key,"
+ " SUM(5) budget_start,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag,0)) budget"
+ " FROM prs_kostensoortgrp ksg,"
+ " bgt_kostenrubriek kr,"
+ " bgt_budget bud,"
+ " bgt_project pr,"
+ " ins_tab_discipline id"
+ " WHERE ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND bud.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
+ " AND bud.bgt_budget_isreserve = 0" // reserve afzonderlijk
var sql1 = "SELECT ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject,"
+ " kr.bgt_kostenrubriek_oms rubriek,"
+ " ksg.prs_kostensoortgrp_altcode rcode,"
+ " ksg.prs_kostensoortgrp_altcode sortcode,"
+ " ksg.prs_kostensoortgrp_oms groep,"
+ " bud.prs_kostensoortgrp_key,"
+ " bud.bgt_kostenrubriek_key,"
+ " 0 budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag, 0)) budget_actueel,"
+ " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van, 0)) budget_mutatie"
+ " FROM prs_kostensoortgrp ksg,"
+ " bgt_kostenrubriek kr,"
+ " bgt_budget bud,"
+ " bgt_project pr,"
+ " ins_tab_discipline id,"
+ mutatie_sql
+ " WHERE ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND bud.prs_kostensoortgrp_key = ksg.prs_kostensoortgrp_key"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
+ " AND mut.bgt_budget_key(+) = bud.bgt_budget_key"
+ " AND bud.bgt_budget_isreserve = 0" // reserve afzonderlijk
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
+ (bgtrubr_key > 0 ? " AND kr.bgt_kostenrubriek_key = " + bgtrubr_key : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql1 += " GROUP BY kr.bgt_kostenrubriek_oms,"
+ " ksg.prs_kostensoortgrp_altcode,"
+ " ksg.prs_kostensoortgrp_oms,"
@@ -411,35 +373,6 @@ var transitParam = buildTransitParam([]);
+ " pr.bgt_project_key,"
+ " bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving";
// Hier ook de budgetten direct bij kostenrubriek, die komen immers bij de kostensoortgroep niet mee
sql1 += " UNION SELECT ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject,"
+ " kr.bgt_kostenrubriek_oms rubriek,"
+ " kr.bgt_kostenrubriek_code||'. "+L("bgt_rubriekbudget")+"' rcode,"
+ " kr.bgt_kostenrubriek_code||'. "+L("bgt_rubriekbudget")+"' sortcode,"
+ " '"+L("bgt_rubriekbudget")+"' groep,"
+ " NULL prs_kostensoortgrp_key,"
+ " bud.bgt_kostenrubriek_key,"
+ " 5 budget_start,"
+ " bud.bgt_budget_bedrag budget"
+ " FROM bgt_kostenrubriek kr,"
+ " bgt_budget bud,"
+ " bgt_project pr,"
+ " ins_tab_discipline id"
+ " WHERE kr.bgt_kostenrubriek_key = bud.bgt_kostenrubriek_key"
+ " AND bud.prs_kostensoort_key IS NULL"
+ " AND bud.prs_kostensoortgrp_key IS NULL"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
+ " AND bud.bgt_budget_isreserve = 0" // reserve afzonderlijk
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql1 += " GROUP BY kr.bgt_kostenrubriek_oms,"
+ " kr.bgt_kostenrubriek_code,"
+ " bud.bgt_kostenrubriek_key,"
+ " bgt_budget_bedrag,"
+ " bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving";
}
if (groupby == 5) // 5. kostenrubriek
@@ -450,16 +383,18 @@ var transitParam = buildTransitParam([]);
+ " kr.bgt_kostenrubriek_code rcode,"
+ " kr.bgt_kostenrubriek_code sortcode,"
+ " kr.bgt_kostenrubriek_key,"
+ " SUM(5) budget_start,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag,0)) budget"
+ " 0 budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag, 0)) budget_actueel,"
+ " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van, 0)) budget_mutatie"
+ " FROM bgt_kostenrubriek kr,"
+ " bgt_budget bud,"
+ " bgt_project pr,"
+ " ins_tab_discipline id"
+ " ins_tab_discipline id,"
+ mutatie_sql
+ " WHERE bud.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
+ " AND bud.bgt_budget_isreserve = 0" // reserve afzonderlijk
+ " AND mut.bgt_budget_key(+) = bud.bgt_budget_key"
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key
+ " GROUP BY kr.bgt_kostenrubriek_oms,"
@@ -467,25 +402,7 @@ var transitParam = buildTransitParam([]);
+ " bgt_project_omschrijving ,"
+ " bgt_kostenrubriek_code ,"
+ " ins_discipline_omschrijving";
// RESERVE
sql1 += " UNION SELECT ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject,"
+ " 'Reserve' rubriek,"
+ " 'R' rcode,"
+ " '91' sortcode,"
+ " -1 bgt_kostenrubriek_key,"
+ " SUM(5) budget_start,"
+ " SUM(bud.bgt_budget_bedrag) budget"
+ " FROM bgt_budget bud,"
+ " bgt_project pr,"
+ " ins_tab_discipline id"
+ " WHERE pr.bgt_project_key = bud.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
+ " AND bud.bgt_budget_isreserve = 1" // reserve afzonderlijk
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key
+ " GROUP BY bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving";
if (bgt_inclbtw)
{
//BTW
@@ -495,14 +412,16 @@ var transitParam = buildTransitParam([]);
+ " 'B' rcode,"
+ " '92' sortcode,"
+ " -3 bgt_kostenrubriek_key,"
+ " SUM(5) budget_start,"
+ " SUM(bud.bgt_budget_btwbedrag) budget"
+ " 0 budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_btwbedrag, 0)) budget_actueel,"
+ " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van, 0)) budget_mutatie"
+ " FROM bgt_budget bud,"
+ " bgt_project pr,"
+ " ins_tab_discipline id"
+ " ins_tab_discipline id,"
+ mutatie_sql
+ " WHERE pr.bgt_project_key = bud.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
// ongeacht reserve
+ " AND mut.bgt_budget_key(+) = bud.bgt_budget_key"
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key
+ " GROUP BY bgt_project_omschrijving ,"
@@ -515,16 +434,20 @@ var transitParam = buildTransitParam([]);
var sql1 = "SELECT ins_discipline_omschrijving project,"
+ " bgt_project_omschrijving deelproject,"
+ " pr.bgt_project_key,"
+ " SUM(5) budget_start,"
+ " SUM(bud.bgt_budget_bedrag" + (bgt_inclbtw ? "+ bud.bgt_budget_btwbedrag" : "") + ") budget"
+ " 0 budget_reserve,"
+ " SUM(COALESCE(bud.bgt_budget_bedrag, 0)"
+ (bgt_inclbtw ? " + COALESCE(bud.bgt_budget_btwbedrag, 0)" : "")
+ ") budget_actueel,"
+ " SUM(COALESCE(mut.bedrag_naar, 0) + COALESCE(mut.bedrag_van,0)) budget_mutatie"
+ " FROM bgt_budget bud,"
+ " bgt_project pr,"
+ " ins_tab_discipline id"
+ " ins_tab_discipline id,"
+ mutatie_sql
+ " WHERE bud.bgt_project_key = pr.bgt_project_key"
//+ " AND bud.bgt_budget_isreserve = 0" // reserve hoeft in het totaal niet afzonderlijk
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
+ " AND mut.bgt_budget_key(+) = bud.bgt_budget_key"
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql1 += " GROUP BY pr.bgt_project_key,"
+ " bgt_project_omschrijving ,"
+ " ins_discipline_omschrijving";
@@ -541,85 +464,79 @@ var transitParam = buildTransitParam([]);
// Facturen: BTW obv fin_factuur_totaal_btw
// Eerst maar de OPDRACHTEN PER KOSTENSOORT
var sql2a ="SELECT"
+ " id.ins_discipline_key,"
+ " pr.bgt_project_key,"
+ " kr.bgt_kostenrubriek_key,"
+ " ksg.prs_kostensoortgrp_key,"
+ " ks.prs_kostensoort_key,"
+ " SUM (o.mld_opdr_kosten) gecontracteerd,"
+ " SUM (o.mld_opdr_kosten*0.21) gecontracteerdbtw" // TODO!
+ " FROM mld_opdr o," /* zonder de facturen, anders wordt verdubbeld */
+ " prs_kostensoort ks,"
+ " prs_kostensoortgrp ksg,"
+ " bgt_kostenrubriek kr,"
+ " bgt_project pr,"
+ " ins_tab_discipline id"
+ " WHERE ks.prs_kostensoort_key = o.prs_kostensoort_key(+)"
+ " AND ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
var sql2a ="SELECT id.ins_discipline_key,"
+ " pr.bgt_project_key,"
+ " kr.bgt_kostenrubriek_key,"
+ " ksg.prs_kostensoortgrp_key,"
+ " ks.prs_kostensoort_key,"
+ " SUM(COALESCE(o.mld_opdr_kosten, 0)) gecontracteerd,"
+ " SUM(COALESCE(o.mld_opdr_kosten, 0) *0.21) gecontracteerdbtw" // TODO!
+ " FROM mld_opdr o," /* zonder de facturen, anders wordt verdubbeld */
+ " prs_kostensoort ks,"
+ " prs_kostensoortgrp ksg,"
+ " bgt_kostenrubriek kr,"
+ " bgt_project pr,"
+ " ins_tab_discipline id"
+ " WHERE ks.prs_kostensoort_key = o.prs_kostensoort_key(+)"
+ " AND ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
+ (date_from ? " AND o.mld_opdr_datumbegin >= "+ date_from.beginToSQL() : "")
+ (date_to ? " AND o.mld_opdr_datumbegin < "+ date_to.endToSQL() : "")
+ (date_to ? " AND o.mld_opdr_datumbegin < "+ date_to.endToSQL() : "")
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql2a+= " GROUP BY "
+ " id.ins_discipline_key,"
+ " pr.bgt_project_key,"
+ " kr.bgt_kostenrubriek_key,"
+ " ksg.prs_kostensoortgrp_key,"
+ " ks.prs_kostensoort_key";
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql2a += " GROUP BY id.ins_discipline_key,"
+ " pr.bgt_project_key,"
+ " kr.bgt_kostenrubriek_key,"
+ " ksg.prs_kostensoortgrp_key,"
+ " ks.prs_kostensoort_key";
// Vervolgens de FACTURATIE PER KOSTENSOORT
var sql2b ="SELECT"
+ " id.ins_discipline_key,"
+ " pr.bgt_project_key,"
+ " kr.bgt_kostenrubriek_key,"
+ " ksg.prs_kostensoortgrp_key,"
+ " ks.prs_kostensoort_key,"
+ " SUM (f.fin_factuur_totaal) gefactureerd,"
+ " SUM (f.fin_factuur_totaal_btw) gefactureerdbtw"
+ " FROM fin_factuur f,"
+ " mld_opdr o,"
+ " prs_kostensoort ks,"
+ " prs_kostensoortgrp ksg,"
+ " bgt_kostenrubriek kr,"
+ " bgt_project pr,"
+ " ins_tab_discipline id"
+ " WHERE f.mld_opdr_key(+) = o.mld_opdr_key"
+ " AND ks.prs_kostensoort_key = o.prs_kostensoort_key(+)"
+ " AND ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
var sql2b ="SELECT id.ins_discipline_key,"
+ " pr.bgt_project_key,"
+ " kr.bgt_kostenrubriek_key,"
+ " ksg.prs_kostensoortgrp_key,"
+ " ks.prs_kostensoort_key,"
+ " SUM(COALESCE(f.fin_factuur_totaal, 0)) gefactureerd,"
+ " SUM(COALESCE(f.fin_factuur_totaal_btw, 0)) gefactureerdbtw"
+ " FROM fin_factuur f,"
+ " mld_opdr o,"
+ " prs_kostensoort ks,"
+ " prs_kostensoortgrp ksg,"
+ " bgt_kostenrubriek kr,"
+ " bgt_project pr,"
+ " ins_tab_discipline id"
+ " WHERE f.mld_opdr_key(+) = o.mld_opdr_key"
+ " AND ks.prs_kostensoort_key = o.prs_kostensoort_key(+)"
+ " AND ksg.bgt_kostenrubriek_key = kr.bgt_kostenrubriek_key"
+ " AND ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key"
+ " AND pr.bgt_project_key = kr.bgt_project_key"
+ " AND id.ins_discipline_key = pr.ins_discipline_key"
+ (date_from ? " AND f.fin_factuur_datum >= "+ date_from.beginToSQL() : "")
+ (date_to ? " AND f.fin_factuur_datum < "+ date_to.endToSQL() : "")
+ (date_to ? " AND f.fin_factuur_datum < "+ date_to.endToSQL() : "")
+ (bgtproj_key_arr.length > 0 ? " AND pr.bgt_project_key IN (" + bgtproj_key_arr.join(",") + ")" : "")
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql2b+= " GROUP BY "
+ " id.ins_discipline_key,"
+ " pr.bgt_project_key,"
+ " kr.bgt_kostenrubriek_key,"
+ " ksg.prs_kostensoortgrp_key,"
+ " ks.prs_kostensoort_key";
+ " AND pr.ins_discipline_key =" + bgtdisc_key;
sql2b += " GROUP BY id.ins_discipline_key,"
+ " pr.bgt_project_key,"
+ " kr.bgt_kostenrubriek_key,"
+ " ksg.prs_kostensoortgrp_key,"
+ " ks.prs_kostensoort_key";
// BESTEDING nu bepaald uit combinatie van bovenstaande opdrachten en facturen
var sql2 ="SELECT"
+ " opdr.ins_discipline_key,"
+ " opdr.bgt_project_key,"
+ " opdr.bgt_kostenrubriek_key,"
+ " opdr.prs_kostensoortgrp_key,"
+ " opdr.prs_kostensoort_key prs_kostensoort_key,"
+ " SUM(opdr.gecontracteerd) gecontracteerd,"
+ " SUM(opdr.gecontracteerdbtw) gecontracteerdbtw,"
+ " SUM (fact.gefactureerd) gefactureerd,"
+ " SUM (fact.gefactureerdbtw) gefactureerdbtw,"
+ " SUM(COALESCE(opdr.gecontracteerd,0)) - SUM (COALESCE(fact.gefactureerd,0)) tefactureren"
+ " FROM (" + sql2a + ") opdr, (" + sql2b + ") fact "
+ " WHERE opdr.prs_kostensoort_key(+) = fact.prs_kostensoort_key"
+ " GROUP BY "
+ " opdr.ins_discipline_key,"
var sql2 ="SELECT opdr.ins_discipline_key,"
+ " opdr.bgt_project_key,"
+ " opdr.bgt_kostenrubriek_key,"
+ " opdr.prs_kostensoortgrp_key,"
+ " opdr.prs_kostensoort_key prs_kostensoort_key,"
+ " SUM(opdr.gecontracteerd) gecontracteerd,"
+ " SUM(opdr.gecontracteerdbtw) gecontracteerdbtw,"
+ " SUM (fact.gefactureerd) gefactureerd,"
+ " SUM (fact.gefactureerdbtw) gefactureerdbtw,"
+ " SUM(COALESCE(opdr.gecontracteerd, 0)) - SUM(COALESCE(fact.gefactureerd, 0)) tefactureren"
+ " FROM (" + sql2a + ") opdr, (" + sql2b + ") fact "
+ " WHERE opdr.prs_kostensoort_key(+) = fact.prs_kostensoort_key"
+ " GROUP BY opdr.ins_discipline_key,"
+ " opdr.bgt_project_key,"
+ " opdr.bgt_kostenrubriek_key,"
+ " opdr.prs_kostensoortgrp_key,"
@@ -629,57 +546,68 @@ var transitParam = buildTransitParam([]);
// Hier komen ze bij elkaar: de budgetten en de besteding, met de respectievelijke groeperingen
// sql1 heeft de benamingen en de budgetten met kostensoort_key (die NULL kan zijn!), sql2 de kostensoort_key en de bestedingen
//
var sql ="SELECT * FROM (SELECT"
+ " bud.project project,"
+ " bud.deelproject deelproject,"
+ " besteding.bgt_project_key,"
var sql = "SELECT *"
+ " FROM (SELECT bud.project project,"
+ " bud.deelproject deelproject,"
+ " besteding.bgt_project_key,"
+ (groupby <= 5 ? " bud.sortcode, bud.rubriek rubriek, bud.rcode rcode, bud.bgt_kostenrubriek_key," : "")
+ (groupby <= 4 ? " bud.groep groep, bud.prs_kostensoortgrp_key," : "")
+ (groupby <= 3 ? " bud.onderdeel onderdeel, besteding.prs_kostensoort_key," : "")
+ " MAX(bud.budget_start) budget_start,"
+ " MAX(bud.budget) budget," /* is voor alle regels hetzelfde, kies er maar eentje, als je maar niet optelt */
+ " SUM(besteding.gecontracteerd) gecontracteerd,"
+ " MAX(bud.budget) - SUM(COALESCE(besteding.gecontracteerd,0)) tecontracteren,"
+ " SUM(besteding.gefactureerd) gefactureerd,"
+ " SUM(besteding.tefactureren) tefactureren"
+ " FROM (" + sql1 + ") bud, (" + sql2 + ") besteding "
+ " MAX(bud.budget_reserve) budget_reserve,"
+ " MAX(bud.budget_actueel) budget_actueel,"
+ " MAX(bud.budget_actueel - bud.budget_mutatie + bud.budget_reserve) budget_origineel,"
+ " MAX(bud.budget_mutatie) budget_mutatie,"
+ " SUM(besteding.gecontracteerd) gecontracteerd,"
+ " MAX(COALESCE(bud.budget_actueel, 0)) - SUM(COALESCE(besteding.gecontracteerd, 0)) tecontracteren,"
+ " SUM(besteding.gefactureerd) gefactureerd,"
+ " SUM(besteding.tefactureren) tefactureren"
+ " FROM (" + sql1 + ") bud,"
+ " (" + sql2 + ") besteding"
+ (groupby == 3 ? " WHERE bud.prs_kostensoort_key = besteding.prs_kostensoort_key " : "")
+ (groupby == 4 ? " WHERE bud.prs_kostensoortgrp_key = besteding.prs_kostensoortgrp_key " : "")
+ (groupby == 5 ? " WHERE bud.bgt_kostenrubriek_key = besteding.bgt_kostenrubriek_key(+) " : "") // de reserve en BTW hebben geen echte rubriek_key
+ (groupby == 6 ? " WHERE bud.bgt_project_key = besteding.bgt_project_key " : "")
// + " AND COALESCE(besteding.bgt_kostenrubriek_key, 99) <> -3"
+ " GROUP BY "
+ " bud.project, bud.deelproject, besteding.bgt_project_key"
+ " AND COALESCE(besteding.bgt_kostenrubriek_key, 99) <> -3"
+ " GROUP BY bud.project"
+ " , bud.deelproject"
+ " , besteding.bgt_project_key"
+ (groupby <= 5 ? " ,bud.rubriek, bud.rcode, bud.sortcode, bud.bgt_kostenrubriek_key" : "")
+ (groupby <= 4 ? " ,bud.groep, bud.prs_kostensoortgrp_key" : "")
+ (groupby <= 3 ? " ,bud.onderdeel, besteding.prs_kostensoort_key" : "");
if (false && bgt_inclbtw && groupby==5) // In rubriekoverzicht eventueel een BTW-regel
{
sql +=" UNION SELECT"
+ " bud.project project,"
+ " bud.deelproject deelproject,"
+ " besteding.bgt_project_key,"
+ " bud.sortcode,"
+ " bud.rubriek rubriek, bud.rcode rcode, bud.bgt_kostenrubriek_key,"
+ " MAX(bud.budget_start) budget_start,"
+ " MAX(bud.budget) budget,"
+ " SUM(besteding.gecontracteerdbtw) gecontracteerd,"
+ " MAX(bud.budget) - SUM(COALESCE(besteding.gecontracteerdbtw,0)) tecontracteren,"
+ " SUM(besteding.gefactureerdbtw) gefactureerd,"
+ " SUM(besteding.tefactureren) tefactureren"
+ " FROM (" + sql1 + ") bud, (" + sql2 + ") besteding "
+ " WHERE bud.bgt_kostenrubriek_key = -3 "
+ "GROUP BY "
+ " bud.project, bud.deelproject, besteding.bgt_project_key"
+ " ,bud.rubriek, bud.rcode, bud.sortcode, bud.bgt_kostenrubriek_key";
sql += " UNION"
+ " SELECT bud.project project,"
+ " bud.deelproject deelproject,"
+ " besteding.bgt_project_key,"
+ " bud.sortcode,"
+ " bud.rubriek rubriek, bud.rcode rcode, bud.bgt_kostenrubriek_key,"
+ " MAX(bud.budget_reserve) budget_reserve,"
+ " MAX(bud.budget_actueel) budget_actueel,"
+ " MAX(bud.budget_origineel) budget_origineel,"
+ " MAX(bud.budget_mutatie) budget_mutatie,"
+ " SUM(besteding.gecontracteerdbtw) gecontracteerd,"
+ " MAX(COALESCE(bud.budget_actueel, 0)) - SUM(COALESCE(besteding.gecontracteerdbtw, 0)) tecontracteren,"
+ " SUM(besteding.gefactureerdbtw) gefactureerd,"
+ " SUM(besteding.tefactureren) tefactureren"
+ " FROM (" + sql1 + ") bud,"
+ " (" + sql2 + ") besteding"
+ " WHERE bud.bgt_kostenrubriek_key = -3"
+ " GROUP BY bud.project"
+ " , bud.deelproject"
+ " , besteding.bgt_project_key"
+ " , bud.rubriek"
+ " , bud.rcode"
+ " , bud.sortcode"
+ " , bud.bgt_kostenrubriek_key";
}
sql += ") ORDER BY "
+ "project"
+ (groupby < 6 ? ",sortcode, rubriek" : "")
+ (groupby < 5 ? ",groep" : "")
+ (groupby < 4 ? ",onderdeel" : "");
sql += " )"
+ " ORDER BY project"
+ (groupby < 6 ? ",sortcode, rubriek" : "")
+ (groupby < 5 ? ",groep" : "")
+ (groupby < 4 ? ",onderdeel" : "");
}
@@ -687,59 +615,76 @@ var transitParam = buildTransitParam([]);
buttons.push({ icon: "page_refresh.png", title: L("lcl_refresh"), action: "FcltMgr.reload()" });
// KOLOM BUDGET
function budgetShow(oRs)
function budgetReserveAmount(oRs)
{
var v = safe.curr(Math.round(oRs("budget").Value), true);
if (groupby > 2)
{
v = "<span class='details"+ (v<0 ? " negative" : "") +"' onclick='FcltMgr.stopPropagation(event); naarbudget({0},{1},{2},{3},this)'>" + v +"</span>";
if (groupby == 6)
v = (v).format(oRs("bgt_project_key").Value, null, null, null);
else if (groupby == 5)
v = (v).format(oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, null, null);
else if (groupby == 4)
v = (v).format(oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, null);
else if (groupby == 3)
v = (v).format(oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, oRs("prs_kostensoort_key").Value);
}
else
{
v = ("<span class='details"+ (v<0 ? " negative" : "") +"'>" + v +"</span>");
}
var v = budget_Amount(oRs, "budget_reserve");
return v;
}
function budgetStartShow(oRs)
function budgetActueelAmount(oRs)
{
var v = safe.curr(Math.round(oRs("budget_start").Value), true);
if (groupby > 2)
{
v = "<span class='details"+ (v<0 ? " negative" : "") +"' onclick='FcltMgr.stopPropagation(event); naarbudget({0},{1},{2},{3},this)'>" + v +"</span>";
if (groupby == 6)
v = (v).format(oRs("bgt_project_key").Value, null, null, null);
else if (groupby == 5)
v = (v).format(oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, null, null);
else if (groupby == 4)
v = (v).format(oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, null);
else if (groupby == 3)
v = (v).format(oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, oRs("prs_kostensoort_key").Value);
}
else
{
v = ("<span class='details"+ (v<0 ? " negative" : "") +"'>" + v +"</span>");
}
var v = budget_Amount(oRs, "budget_actueel");
return v;
}
function budgetAmountStart(oRs)
function budgetOrigineelAmount(oRs)
{
var v = Math.round(oRs("budget_start").Value);
var v = budget_Amount(oRs, "budget_origineel");
return v;
}
function budgetAmount(oRs)
function budgetMutatieAmount(oRs)
{
var v = Math.round(oRs("budget").Value);
var v = budget_Amount(oRs, "budget_mutatie");
return v;
}
function budget_Amount(oRs, budget_naam)
{
var v = Math.round(oRs(budget_naam).Value);
return v;
}
function budgetReserveShow(oRs)
{
v = budget_Show(oRs, "budget_reserve");
return v;
}
function budgetActueelShow(oRs)
{
v = budget_Show(oRs, "budget_actueel");
return v;
}
function budgetOrigineelShow(oRs)
{
v = budget_Show(oRs, "budget_origineel");
return v;
}
function budgetMutatieShow(oRs)
{
v = budget_Show(oRs, "budget_mutatie");
return v;
}
function budget_Show(oRs, v)
{
var v = safe.curr(Math.round(oRs(v).Value), true);
if (groupby > 2)
{
v = "<span class='details"+ (v<0 ? " negative" : "") +"' onclick='FcltMgr.stopPropagation(event); naarbudget({0},{1},{2},{3},this)'>" + v +"</span>";
if (groupby == 6)
v = (v).format(oRs("bgt_project_key").Value, null, null, null);
else if (groupby == 5)
v = (v).format(oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, null, null);
else if (groupby == 4)
v = (v).format(oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, null);
else if (groupby == 3)
v = (v).format(oRs("bgt_project_key").Value, oRs("bgt_kostenrubriek_key").Value, oRs("prs_kostensoortgrp_key").Value, oRs("prs_kostensoort_key").Value);
}
else
{
v = ("<span class='details"+ (v<0 ? " negative" : "") +"'>" + v +"</span>");
}
return v;
}
// KOLOM GECONTRACTEERD
function ordersShow(oRs)
{
@@ -771,7 +716,10 @@ var transitParam = buildTransitParam([]);
var v = safe.curr(Math.round(oRs("tecontracteren").Value), true);
if (v < 0) v = "<span class='negative'>" + v +"</span>";
// en een onclick met params afh. van groupby
if (v != 0) return v;
var show_empty = false;
if (show_empty || v != 0)
return v;
}
function orderstogoAmount(oRs)
{
@@ -808,7 +756,10 @@ var transitParam = buildTransitParam([]);
var v = safe.curr(Math.round(oRs("tefactureren").Value), true);
if (v < 0) v = "<span class='negative'>" + v +"</span>";
// en een onclick
if (v != 0) return v;
var show_empty = false;
if (show_empty || v != 0)
return v;
}
function invoicestogoAmount(oRs)
{
@@ -858,9 +809,11 @@ var transitParam = buildTransitParam([]);
rst.addColumn(new Column({caption: L("prs_kostensoort"), content: "onderdeel"}));
if (groupby > 2) // denk ik
{
// PF: voor een release lijkt het me beter dit in deze staat nog achterwege te laten.. TODO
// rst.addColumn(new Column({caption: "start", content: budgetStartShow, fnAmount: budgetAmountStart, datatype: "currency", total: true}));
rst.addColumn(new Column({caption: L("bgt_budget_bedrag"), content: budgetShow, fnAmount: budgetAmount, datatype: "currency", total: true}));
rst.addColumn(new Column({caption: "Origineel", content: budgetOrigineelShow, fnAmount: budgetOrigineelAmount, datatype: "currency", total: true}));
// if (groupby == 5)
// rst.addColumn(new Column({caption: "Reserve", content: budgetReserveShow, fnAmount: budgetReserveAmount, datatype: "currency", total: true}));
rst.addColumn(new Column({caption: "Mutatie", content: budgetMutatieShow, fnAmount: budgetMutatieAmount, datatype: "currency", total: true}));
rst.addColumn(new Column({caption: L("bgt_budget_bedrag"), content: budgetActueelShow, fnAmount: budgetActueelAmount, datatype: "currency", total: true}));
}
if (groupby <= 2)
{

View File

@@ -42,7 +42,10 @@ switch (req_info)
+ " , -1 groep_key"
+ " , -1 soort_key"
+ " FROM bgt_disc_params d"
+ " WHERE d.bgt_ins_discipline_key = d.bgt_ins_discipline_key"
+ " , ins_tab_discipline t"
+ " WHERE t.ins_discipline_key = d.bgt_ins_discipline_key"
+ " AND t.ins_discipline_module = 'BGT'"
+ " AND t.in_discipline_verwijder IS NULL"
+ (init_key != -1 ? " AND d.bgt_ins_discipline_key = " + init_key : "");
break;
}
@@ -56,6 +59,7 @@ switch (req_info)
+ " FROM bgt_disc_params d"
+ " , bgt_project p"
+ " WHERE d.bgt_ins_discipline_key = p.ins_discipline_key"
+ " AND p.bgt_project_verwijder IS NULL"
+ (init_key != -1 ? " AND p.bgt_project_key = " + init_key : "");
break;
}
@@ -125,6 +129,7 @@ switch (req_info)
+ " WHERE d.bgt_ins_discipline_key = p.ins_discipline_key"
+ " AND p.bgt_project_key = g.bgt_project_key"
+ " AND g.prs_kostenplaatsgrp_key = s.prs_kostenplaatsgrp_key"
+ " AND s.prs_kostenplaats_verwijder IS NULL"
+ (init_key != -1 ? " AND s.prs_kostenplaats_key = " + init_key : "");
break;
}

View File

@@ -191,10 +191,11 @@ function myContourProcessor(cHandle)
var cnt = cHandle.Contour("R:" + highlight_arr[r]);
if (cnt)
{
cnt.SetColor(0x800000, 255); // Matig rood, door 255 onderliggend
cnt.Lineweight = 5 * getQParamFloat("hintScale", 100); // Constant 5 pixel width?
cnt.SetoutlineColor(0x800000, 255);
cnt.Hatch = 3; // Diagonal Cross
//cnt.Label = "[s200]" + cnt.Label;
cnt.SetColor(getQParamInt("highlightcolor", 0x800000), 255); // Matig rood, door 255 onderliggend
cnt.Lineweight = Math.min(250, 5 * getQParamFloat("hintScale", 100)); // Constant 5 pixel width maar niet te dik
cnt.SetoutlineColor(getQParamInt("highlightbordercolor", 0x800000), 255);
cnt.Hatch = getQParamInt("highlighthatch", 3); // Diagonal Cross
cnt.MoveTop();
}
}
@@ -536,7 +537,7 @@ if (dwfPath)
labelLayers : lLabel,
minArea : S("fg_contour_minArea"),
maximize : S("fg_maximize"),
tempFolder : Server.MapPath("../../Temp"),
tempFolder : Server.MapPath(rooturl + "/Temp"),
keepTemp : (__Logging & 8) == 8
});
mySLNKDWF.Process();

View File

@@ -424,8 +424,8 @@ function getSqlFiatMld(fiatstatus, prsKeys, params)
+ " ELSE l.alg_locatie_omschrijving || ' (' || l.alg_locatie_code || ')'"
+ " END locatie"
+ " , g.alg_gebouw_code || ' ' || g.alg_gebouw_naam gebouw"
+ " , t.alg_terreinsector_code || ' ' || alg_terreinsector_naam terrein")
+ " , m.mld_melding_omschrijving omschrijving"
+ " , t.alg_terreinsector_code || ' ' || alg_terreinsector_naam terrein"
+ " , m.mld_melding_omschrijving omschrijving")
+ " FROM mld_melding m"
+ " , mld_stdmelding sm"
+ " , mld_opdr op"

View File

@@ -428,9 +428,9 @@ function suggest_box_resruimte (titel, histograms, kolom, params)
}
else
{
if (resData.url.slice(0,1) == "*") // URL starting with '*' is interpreted like 'target=_new'
if (resData.url.slice(0,4) == "http")
{
window.open(resData.url.substr(1));
window.open(resData.url);
FcltMgr.stopPropagation(event);
}
else

View File

@@ -591,7 +591,7 @@ function fin_list (params)
loRs = Oracle.Execute(lsql);
var anybb = !loRs.eof;
loRs.close();
if (anybb)
if (anybb && !user.has("WEB_FINMSU")) // FINMSU is niet gebonden door bedrijf-scope
{
// Dan mogen het alleen facturen zijn van bedrijven waar ik zaken mee doe.
// Echter: die bedrijven kunnen ook met anderen zaken doen, en die facturen moeten we natuurlijk niet tonen.

View File

@@ -88,7 +88,8 @@ var ICONS = {
"magnifier.png" : "fa-desktop",
"paste.png" : "fa-clipboard",
"xslpreview.png" : "fa-eye",
"palette.png" : "fa-file-image-o"
"palette.png" : "fa-file-image-o",
"vcard.png" : "fa-address-card"
}
%>

View File

@@ -906,7 +906,7 @@ function ins_list (pautfunction, params)
rst.addAction({ action: "insDelete", caption: L("lcl_delete"), enabler: "eDelete", single: false, multi: !tiny, multiOnce: true});
if (hasWriteINSMAN) // Ik heb INSMAN rechten nodig om multi te kunnen editen. Met alleen INSUSE rechten mag ik dat vooralsnog niet.
rst.addAction({ action: "insMultiEdit", caption: L("lcl_ins_multi_edit"), enabler: "eEditMulti", multi: !tiny, single: false, multiOnce: true});
rst.addAction({ action: "insMultiMove", caption: L("lcl_ins_multi_move"), enabler: "NotExist", multi: !tiny, multiOnce: true});
rst.addAction({ action: "insMultiMove", caption: L("lcl_ins_multi_move"), enabler: "NotExist", multi: !tiny, single: false, multiOnce: true});
}
}

View File

@@ -234,7 +234,10 @@ if (srtcont_key > 0)
var mode = $("#sel_srtcontrole option:selected")[0].getAttribute("modus");
$("#mode").val(mode);
var stdeenheid = parseInt(getSrtControleValue("eenheid_std"), 10);
var eenheid = parseInt($("#eenheid").val(), 10);
if (eenheid < 0)
eenheid = stdeenheid;
var bits = 0;
if (eenheid == 1 || eenheid == 2 || eenheid == 3 || eenheid == 4)
{

View File

@@ -40,7 +40,7 @@ function gettablesql(ptable, pchildtable, pchildsql, precord, pmtable)
{
var pfac_audit_tabelkey = " COALESCE((SELECT x.{0}_key".format(pmtable? pmtable : ptable)
+ " FROM " + pchildtable + " x"
+ " WHERE x.{0}_key = a.fac_audit_tabelkey)".format(pchildtable) + ", " + precord + ") fac_audit_tabelkey"; // Als waarde null is dan is het record verwijderd. Dan gewoon key invullen (o.a. voor prs_kostensoort).
+ " WHERE x.{0}_key = a.fac_audit_tabelkey)".format(pchildtable) + ", " + precord[0] + ") fac_audit_tabelkey"; // Als waarde null is dan is het record verwijderd. Dan gewoon key (eerste) invullen (o.a. voor prs_kostensoort).
}
@@ -127,7 +127,7 @@ else
key_field = "{0}_ins_discipline_key".format(module);
var childsql = "SELECT {0}_disc_params_key disc_params_key".format(module)
+ " FROM {0}_disc_params".format(module)
+ " WHERE {0} IN ({1})".format(key_field, record);
+ " WHERE {0} IN ({1})".format(key_field, record.join(","));
if (module != "mrk")
{
@@ -143,25 +143,25 @@ else
{
case "fac_groep": childsql = "SELECT fac_groeprechten_key"
+ " FROM fac_groeprechten"
+ " WHERE fac_groep_key IN ({0})".format(record);
+ " WHERE fac_groep_key IN ({0})".format(record.join(","));
break;
case "fac_profiel": childsql = "SELECT fac_profielwaarde_key"
+ " FROM fac_profielwaarde"
+ " WHERE fac_profiel_key IN ({0})".format(record);
+ " WHERE fac_profiel_key IN ({0})".format(record.join(","));
break;
case "prs_kostensoort": childsql = "SELECT prs_kostencombinatie_key" // Huidige kosten combinaties.
+ " FROM prs_kostencombinatie"
+ " WHERE prs_kostensoort_key IN ({0})".format(record)
+ " WHERE prs_kostensoort_key IN ({0})".format(record.join(","))
+ " UNION "
+ "SELECT fac_audit_tabelkey" // Verwijderde kosten combinaties.
+ " FROM fac_audit"
+ " WHERE fac_audit_tabelnaam = 'prs_kostencombinatie'"
+ " AND fac_audit_waarde_oud IN ('{0}')".format(record);
+ " AND fac_audit_waarde_oud IN ('{1}')".format(record.join(","), record.join("','"));
break;
case "prs_perslid": childsql = "SELECT fac_audit_tabelkey"
+ " FROM fac_audit"
+ " WHERE fac_audit_tabelnaam = 'fac_gebruikersgroep'"
+ " AND fac_audit_waarde_oud IN ('{0}')".format(record);
+ " AND fac_audit_waarde_oud IN ('{0}')".format(record.join("','"));
break;
default : shared.simpel_page(L("lcl_internal_error")); // TODO: Abort en error geven.
}

View File

@@ -38,6 +38,7 @@ scaffolding(this_model,
"modeemail",
"modesms",
"modealert",
"modeapp",
"usermode",
"mailbuilding",
"delay"

View File

@@ -1033,7 +1033,7 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
if(stdm_info.kanverwijzen == 0 && mld_melding.kto_type) // Referentie (kanverwijzen > 0) verderop invoerbaar.
mld.referentielink(mld_melding.kto_type, mld_melding.kto_key, L("lcl_mld_kto"));
if (stdm_info.slabewaken)
if (stdm_info.slabewaken && this_mld.canSLAChange)
{
sql = "SELECT 'U', " + safe.quoted_sql(L("lcl_mld_hours")) + " FROM DUAL"
+ " UNION SELECT 'D', " + safe.quoted_sql(L("lcl_mld_days")) + " FROM DUAL"
@@ -1047,9 +1047,7 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
}
}
RWFIELDTR("respijt", "fldrespijt", L("lcl_mld_respijt"), mld_melding.respijt? Math.round(mld_melding.respijt * 1000) / 1000 : "", {maxlength: 8, datatype: "float", selector: selectparams});
if (this_mld.canSLAChange)
RWCHECKBOXTR("indult", "fldafr", L("lcl_mld_indult"), mld_melding.indult);
RWCHECKBOXTR("indult", "fldafr", L("lcl_mld_indult"), mld_melding.indult);
}
if (this_mld.canAfrond)
RWCHECKBOXTR("afgerond", "fldafr", L("lcl_mld_afgerond"), mld_melding.afgerond);

View File

@@ -36,8 +36,8 @@ var lvl = getQParamInt("lvl", 1);
{
if (p_url)
{ // URL starting with '*' is interpreted like 'target=_new'
if (p_url.slice(0,1) == "*")
window.open(p_url.substr(1));
if (p_url.slice(0,4) == "http")
window.open(p_url);
else
FcltMgr.openDetail(p_url, L("lcl_complain"));
}

View File

@@ -52,24 +52,16 @@ if (disc_key > -1 && srtdisc_key < 0)
function onChangeVakgroep(vakgroep_key)
{
sgStdm.setValue(-1, "", true, false, null, true);
sgStdm.CheckJustOne();
// Zet de srtdiscipline indien niet ingevuld.
if (vakgroep_key > 0)
{
$.getJSON("./get_mld_info_ajax.asp",
{ req_info: "mld_discipline",
mld_ins_discipline_key: vakgroep_key },
callback_disc_info);
callback_disc_info);
}
}
function onChangeShowExpired()
{ // Is de juiste waarde nog geldig i.v.m. wijzigen van de checkbox "Toon vervallen".
sgStdm.setValue($("#stdm").val(), $("#show_stdm").val(), true, true);
}
function callback_disc_info(disc_info, textStatus, jqXHR)
{
if ($("#srtdisc_key").val() <= 0)
@@ -146,7 +138,7 @@ if (disc_key > -1 && srtdisc_key < 0)
trclass: "primsearch",
emptyOption: "",
selectjustone: true,
onChange: "sgDisc.setValue(-1, '');sgStdm.setValue(-1, '')",
onChange: "sgDisc.setValue(-1, '')",
readonly: srtdisc_key > -1 || disc_key > -1
});
@@ -164,22 +156,13 @@ if (disc_key > -1 && srtdisc_key < 0)
onChange: "onChangeVakgroep",
readonly: disc_key > -1
});
// Melding / Stdmelding
FCLTstdmeldingselector("stdm",
"sgStdm",
{ stdmelding_key: stdm_key,
label: L("lcl_complain"),
trclass: "primsearch",
perslidKey: user_key,
autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey,
urlAdd: [{urlParam: "disc_key", field: "disc_key"},
{urlParam: "srtdisc_key", field: "srtdisc_key"},
{urlParam: "show_expired", field: "show_expired"}],
onChange: "onChangeStdMelding",
whenEmpty: L("lcl_search_generic") // blijkt niet supported
});
%>
// Melding / Stdmelding %>
<tr class="primsearch">
<td class="label"><label for="stdm"><%=L("lcl_complain")%>:</label></td>
<td>
<input type="text" class="fldsrch wildcard" name="stdm" value="">
</td>
</tr>
</table>
</td><!-- end column 1 -->

View File

@@ -18,7 +18,7 @@
var searchtext = getQParam("searchtext", null);
var srtdisc_key = getQParamInt("srtdisc_key", -1);
var disc_key = getQParamInt("disc_key", -1);
var stdm_key = getQParamInt("stdm", -1);
var stdm = getQParam("stdm", "");
var mldgrp_key = getQParamInt("mldgrp_key", -1);
var kenmerktype = getQParam("kenmerktype", null);
var kenmerk_niveau = getQParam("niveau", null);
@@ -68,22 +68,11 @@ oRs.Close();
FcltMgr.openModalDetail(url, scfKeyString.split(",").length + " "+ L("lcl_mld_stdmeldingen"), { callback: scf_reload });
}
*/
</script>
</script>
</head>
<body>
<%
if (stdm_key > 0)
{
var sql = "SELECT ins_discipline_key,"
+ " m2.ins_srtdiscipline_key"
+ " FROM mld_stdmelding md, mld_discipline m2"
+ " WHERE md.mld_ins_discipline_key = m2.ins_discipline_key"
+ " AND mld_stdmelding_key = " + stdm_key;
var oRs = Oracle.Execute(sql);
var dkey = oRs("ins_discipline_key").Value;
var skey = oRs("ins_srtdiscipline_key").Value;
}
if (disc_key > 0)
{
var sql = "SELECT m2.ins_srtdiscipline_key"
@@ -141,13 +130,11 @@ oRs.Close();
: " AND (sm.mld_stdmelding_vervaldatum IS NULL OR"
+ " sm.mld_stdmelding_vervaldatum > SYSDATE)");
if (stdm_key > 0)
if (stdm != "")
{
sql += " AND sm.mld_stdmelding_key = " + stdm_key
+ " AND md.ins_discipline_key = " + dkey
+ " AND isd.ins_srtdiscipline_key = " + skey;
sql += " AND sm.mld_stdmelding_upper LIKE " + safe.quoted_sql_wild("%" + stdm + "%");
}
else if (disc_key > 0)
if (disc_key > 0)
{
sql += " AND md.ins_discipline_key = " + disc_key
+ " AND isd.ins_srtdiscipline_key = " + skey;

View File

@@ -143,8 +143,9 @@ function FOOTER(params)
function PAGE_START(params)
{
// params.dialog is deprecated/unsupported due to app problems.
if (!params) params = {};
%><div data-role="page" id="<%=params.id ? params.id : 'page'%>" data-theme="<%= params.datatheme ? params.datatheme : jQDataTheme%>" data-dialog="<%=params.dialog ? params.dialog : 'false'%>"
%><div data-role="page" id="<%=params.id ? params.id : 'page'%>" data-theme="<%= params.datatheme ? params.datatheme : jQDataTheme%>"
<%= params.pclass?" class='"+params.pclass+"'":"" %> ><%
}
function PAGE_END()

View File

@@ -132,7 +132,7 @@ var mobile = {
trackingpage:
function (pnode, pkey, psubject)
{
HEADER({title: L("lcl_history")+" "+psubject, back: false, nohome: true}) ;
HEADER({title: L("lcl_history")+" "+psubject, back: true, nohome: true}) ;
CONTENT_START();
function fnTrackText (oRs)

View File

@@ -43,7 +43,7 @@ if (S("fac_emailtoken_auth_expire") == 0)
<body class="modal" id="mod_token2mail">
<div id="email">
<form name="u2" method="post" action="../shared/pass2mail_save.asp" onsubmit='pass_submit();return false;'>
<form name="u2" method="post" action="../aut/pass2mail_save.asp" onsubmit='pass_submit();return false;'>
<input type='hidden' name='mode' value='<%=mode%>'>
<%
BLOCK_START("emailInput", L("lcl_noti_sendbymail"));

View File

@@ -124,7 +124,7 @@ function scaffolding_show(model, scf_params)
}
else if (model.audit && model.audit.childaudit && model.audit.childaudit.sql)
{
var sql = model.audit.childaudit.sql.format(parent_key_array.join(","));
var sql = model.audit.childaudit.sql.format(parent_key_array.join(","), parent_key_array.join("','"));
var oRs = Oracle.Execute(sql);
var child_key_array = [];
while(!oRs.eof)

View File

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

View File

@@ -1121,7 +1121,7 @@ END:VCALENDAR
<xsl:when test="$mode='summary'"></xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="$srtnotificatiecode = 'OUTLOOK'">
<xsl:when test="$srtnotificatiecode = 'OUTLOOK' or $mode='ics'">
<xsl:apply-templates select="." mode="outlook"/>
</xsl:when>
<xsl:otherwise>

View File

@@ -912,6 +912,17 @@ function __rsProcessResultset(processParams) // processParams wordt blind aan al
var multiActions = 0;
for (var i=0; i < actions.length; i++)
{
/////
//
// Een bulk-actie wordt weergegeven indien:
//
// - multi = true, EN:
//
// - okformulti = true (oftewel, de enabler is succesvol)
// - OF: het is uitsluitend een multi actie, dan altijd weergeven. Oftewel: (onlyMulti || single === false)
//
/////
if (actions[i].multi && (actions[i].okformulti || actions[i].onlyMulti || actions[i].single === false))
{
multiActions++;
@@ -1217,7 +1228,7 @@ function __rsMakeTableRow(oRs, oRsFlexData, cnt, anyMultiActions, noFlexResult)
for (var i = 0; i < actions.length; i++)
{
if (actions[i].single === false) // triple '=' omdat undefined niet false mag zijn
if (actions[i].single === false || actions[i].onlyMulti) // triple '=' omdat undefined niet false mag zijn
{
// die negeren we altijd actionbits += "0";
continue; // niet ook nog inline

View File

@@ -102,43 +102,56 @@ function STR2Stream(xmlstr, xslfile, Stream, params)
while (startPos > 4 && eindPos > startPos)
{
var flexcode = p_bodyhtml.substring(startPos + 1, eindPos);
var props = flexProps2(flexcode);
if (!props.files.length)
{ // Geen bestanden gevonden? Dan hele img-tag gewoon er uit halen
var eindPos = p_bodyhtml.indexOf(">", startPos + 2);
// Let op: door de -9 werkt het alleen als de frc het eerste attribuut is van de img
var newbody = p_bodyhtml.substr(0, startPos - 9) + p_bodyhtml.substr(eindPos + 1);
if (flexcode.match(/^M=CAD/)) // Die roepen we gewoon on-the-fly op
{
// <xsl:element name="img">
// <xsl:attribute name="frc">M=CAD&amp;labelPos=2&amp;vKey=<xsl:value-of select="//afspraak/plaats/regio/district/locatie/gebouw/verdieping/key"/>&amp;highlight=<xsl:value-of select="//afspraak/plaats/regio/district/locatie/gebouw/verdieping/ruimte/key"/>&amp;mode=0&amp;discs=981&amp;sizeX=700&amp;sizeY=400&amp;offsetX=10&amp;offsetY=10&amp;scale=950&amp;paperColor=16777215
// </xsl:attribute>
// </xsl:element>
var newbody = p_bodyhtml.substr(0, startPos - 4) + "src=\"../cad/mySlnk2IMG.asp?" + flexcode.substr(10) + "\"" + p_bodyhtml.substr(eindPos + 1);
p_bodyhtml = newbody;
}
else
{
var filedata = props.files[0];
if (filedata.resized)
var file = filedata.resized;
else
var file = props.AttachPath + props.files[0].name;
var fileStream = new ActiveXObject("ADODB.Stream")
fileStream.Open();
fileStream.Type = 1; //adTypeBinary
fileStream.LoadFromFile(file);
fileStream.Position = 0; // We gaan nu over in uitvoermode
var oXML = new ActiveXObject("Msxml2.DOMDocument.6.0");
oNode = oXML.createElement("encodeddata");
oNode.dataType = "bin.base64"; // Zeer snelle oplossing
oNode.nodeTypedValue = fileStream.Read(fileStream.Size);
fileStream.Close();
if (filedata.tempdelete)
{
var fso = Server.CreateObject("Scripting.FileSystemObject");
fso.DeleteFile(filedata.tempdelete);
var props = flexProps2(flexcode);
if (!props.files.length)
{ // Geen bestanden gevonden? Dan hele img-tag gewoon er uit halen
var eindPos = p_bodyhtml.indexOf(">", startPos + 2);
// Let op: door de -9 werkt het alleen als de frc het eerste attribuut is van de img
var newbody = p_bodyhtml.substr(0, startPos - 9) + p_bodyhtml.substr(eindPos + 1);
p_bodyhtml = newbody;
}
else
{
var filedata = props.files[0];
if (filedata.resized)
var file = filedata.resized;
else
var file = props.AttachPath + props.files[0].name;
var b64 = oNode.text;
// TODO: Niet altijd als png, soms ook JPG, hoewel het goed lijkt te gaan in de meeste browsers
var newbody = p_bodyhtml.substr(0, startPos - 4) + "src=\"data:image/png;base64," + b64 + "\"" + p_bodyhtml.substr(eindPos + 1);
p_bodyhtml = newbody;
var fileStream = new ActiveXObject("ADODB.Stream")
fileStream.Open();
fileStream.Type = 1; //adTypeBinary
fileStream.LoadFromFile(file);
fileStream.Position = 0; // We gaan nu over in uitvoermode
var oXML = new ActiveXObject("Msxml2.DOMDocument.6.0");
oNode = oXML.createElement("encodeddata");
oNode.dataType = "bin.base64"; // Zeer snelle oplossing
oNode.nodeTypedValue = fileStream.Read(fileStream.Size);
fileStream.Close();
if (filedata.tempdelete)
{
var fso = Server.CreateObject("Scripting.FileSystemObject");
fso.DeleteFile(filedata.tempdelete);
}
var b64 = oNode.text;
// TODO: Niet altijd als png, soms ook JPG, hoewel het goed lijkt te gaan in de meeste browsers
var newbody = p_bodyhtml.substr(0, startPos - 4) + "src=\"data:image/png;base64," + b64 + "\"" + p_bodyhtml.substr(eindPos + 1);
p_bodyhtml = newbody;
}
}
var startPos = p_bodyhtml.indexOf("frc=", eindPos) + 4;
var quote = p_bodyhtml.substr(startPos, 1);

View File

@@ -264,7 +264,7 @@
<Price><xsl:value-of select="$p_price"/></Price>
</PriceInformation>
<VATInformation>
<VATRate></VATRate>
<VATRate>S</VATRate>
<VATPercentage><xsl:value-of select="$p_taxperc"/></VATPercentage>
</VATInformation>
</xsl:template>

View File

@@ -269,7 +269,7 @@
<Price><xsl:value-of select="$p_price"/></Price>
</PriceInformation>
<VATInformation>
<VATRate></VATRate>
<VATRate>S</VATRate>
<VATPercentage><xsl:value-of select="$p_taxperc"/></VATPercentage>
</VATInformation>
</xsl:template>

View File

@@ -257,7 +257,7 @@
<Price><xsl:value-of select="$p_price"/></Price>
</PriceInformation>
<VATInformation>
<VATRate></VATRate>
<VATRate>S</VATRate>
<VATPercentage><xsl:value-of select="$p_taxperc"/></VATPercentage>
</VATInformation>
</xsl:template>

View File

@@ -260,7 +260,7 @@
<Price><xsl:value-of select="$p_price"/></Price>
</PriceInformation>
<VATInformation>
<VATRate></VATRate>
<VATRate>S</VATRate>
<VATPercentage><xsl:value-of select="$p_taxperc"/></VATPercentage>
</VATInformation>
</xsl:template>

View File

@@ -1,8 +1,8 @@
<?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"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.ketenstandaard.nl/onderhoudsopdracht/SALES/005" version="1.0">
xmlns="http://www.ketenstandaard.nl/onderhoudsopdracht/SALES/005"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="1.0">
<xsl:import href="./F_SIDB_common.xsl"/>
<xsl:output method="xml" indent="yes" encoding="utf-8"/>
@@ -17,7 +17,7 @@
<xsl:template match="opdracht">
<!-- SIDB Onderhoudsopdracht 'insbou' Versie SALES005-beta (releasedatum jan 2017) -->
<MaintenanceInstruction>
<MaintenanceInstruction xsi:schemaLocation="http://www.ketenstandaard.nl/onderhoudsopdracht/SALES/005 Onderhoudsopdracht_SALES005Beta.xsd">
<!-- SIDB description - Nummer ter identificatie van een bericht. Mandatory, (C17) -->
<!-- Voorbeeldformaat: MAR24/1@dd-mm-jjjj hh:mm:ss -->
<MessageNumber><xsl:value-of select="key"/>@<xsl:value-of select="substring(//header/dateYear,3,2)"/><xsl:value-of select="//header/dateMonth"/><xsl:value-of select="//header/dateDay"/></MessageNumber>
@@ -265,7 +265,7 @@
</PriceBase>
</PriceInformation>
<VATInformation>
<VATRate></VATRate>
<VATRate>S</VATRate>
<VATPercentage><xsl:value-of select="$p_taxperc"/></VATPercentage>
</VATInformation>
</xsl:template>

View File

@@ -24,7 +24,7 @@
<etim_VersionId><xsl:value-of select="//header/version"/></etim_VersionId>
</header>
<!-- SIDB Onderhoudsopdracht 'insbou' Variant 'Basismodel010' versie 001 (releasedatum 11-2015) -->
<MaintenanceInstruction xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.ketenstandaard.nl/onderhoudsopdracht/SALES/005">
<MaintenanceInstruction xsi:schemaLocation="http://www.ketenstandaard.nl/onderhoudsopdracht/SALES/005 Onderhoudsopdracht_SALES005Beta.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ketenstandaard.nl/onderhoudsopdracht/SALES/005">
<!-- SIDB description - Nummer ter identificatie van een bericht. Mandatory, (C17) -->
<!-- Voorbeeldformaat: MAR24/1@dd-mm-jjjj hh:mm:ss -->
<MessageNumber><xsl:value-of select="key"/>@<xsl:value-of select="substring(//header/dateYear,3,2)"/><xsl:value-of select="//header/dateMonth"/><xsl:value-of select="//header/dateDay"/></MessageNumber>
@@ -273,7 +273,7 @@
</PriceBase>
</PriceInformation>
<VATInformation>
<VATRate></VATRate>
<VATRate>S</VATRate>
<VATPercentage><xsl:value-of select="$p_taxperc"/></VATPercentage>
</VATInformation>
</xsl:template>

View File

@@ -1455,7 +1455,7 @@
</tr>
</xsl:for-each>
</xsl:if>
<xsl:if test="discipline/srtdiscipline/key='1' and behandelwijze=2 and not(/facilitor/opdracht)">
<xsl:if test="behandelwijze=2 and not(/facilitor/opdracht)">
<xsl:for-each select="notes/note[flag=1]">
<xsl:sort select="aanmaak/timestamp" order="ascending"/>
<tr>
@@ -1485,7 +1485,22 @@
<timestamp><xsl:value-of select="datum/timestamp"/></timestamp>
<datumtijd><xsl:value-of select="datum/datum"/>&#xA0;<xsl:value-of select="datum/tijd"/></datumtijd>
<door><xsl:value-of select="user/naam_full"/></door>
<actie><xsl:value-of select="omschrijving"/><xsl:if test="not(omschrijving!='')"><xsl:value-of select="code"/></xsl:if></actie>
<code><xsl:value-of select="code"/></code>
<actie>
<xsl:value-of select="omschrijving"/>
<xsl:if test="not(omschrijving!='')">
<xsl:choose>
<xsl:when test="code='MLDNEW'">Melding is geregistreerd</xsl:when>
<xsl:when test="code='MLDING'">Gezien door de backoffice</xsl:when>
<xsl:when test="code='MLDDOO'">Doorgezet naar de backoffice</xsl:when>
<xsl:when test="code='MLDBWD'">In behandeling bij de frontoffice</xsl:when>
<xsl:when test="code='MLDACP'">Melding is geaccepteerd</xsl:when>
<xsl:when test="code='MLDAFM'">Melding is afgemeld</xsl:when>
<xsl:when test="code='MLDREJ'">Melding is afgewezen</xsl:when>
<xsl:otherwise><xsl:value-of select="code"/></xsl:otherwise>
</xsl:choose>
</xsl:if>
</actie>
</data_row>
</xsl:if>
</xsl:for-each>
@@ -1496,22 +1511,24 @@
<timestamp><xsl:value-of select="aanmaak/timestamp"/></timestamp>
<datumtijd><xsl:value-of select="aanmaak/datum"/>&#xA0;<xsl:value-of select="aanmaak/tijd"/></datumtijd>
<door><xsl:value-of select="noteur/naam_full"/></door>
<code></code>
<actie><xsl:call-template name="linebreaks"><xsl:with-param name="string" select="omschrijving"/></xsl:call-template></actie>
</data_row>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:if test="discipline/srtdiscipline/key!='1' and $mode!='email'">
<xsl:if test="$mode!='email'">
<tr><td colspan="4"><hr/></td></tr>
<xsl:for-each select="msxml:node-set($behandeling)/data_row">
<xsl:sort select="timestamp"/>
<xsl:sort select="code"/>
<tr>
<xsl:choose>
<xsl:when test="position()=1"><td><b>Behandeling:</b></td></xsl:when>
<xsl:otherwise><td/></xsl:otherwise>
</xsl:choose>
<td colspan="3">
<span class="mldbeh"><xsl:value-of select="datumtijd"/>&#xA0;-&#xA0;<xsl:value-of select="door"/></span>&#xA0;
<span class="mldbeh"><xsl:value-of select="datumtijd"/>&#xA0;-&#xA0;<xsl:value-of select="door"/> [<xsl:value-of select="code"/>]</span>&#xA0;
<xsl:call-template name="linebreaks"><xsl:with-param name="string" select="actie"/></xsl:call-template>
</td>
</tr>

View File

@@ -1173,6 +1173,14 @@
<b>
<xsl:value-of select="//lcl/FAC/werkplek"/>: </b>
<xsl:value-of select="bestelling/plaats"/>
<br/>
<xsl:if test="bestelling/bestel_opm">
<b>
<xsl:value-of select="//lcl/FAC/opmerking"/>: </b><br/>
<xsl:call-template name="linebreaks">
<xsl:with-param name="string" select="bestelling/bestel_opm"/>
</xsl:call-template>
</xsl:if>
</td>
<td/>
<td colspan="2" style="vertical-align:top">

View File

@@ -235,7 +235,7 @@
</ul>
</p>
<p>
Looking forward to meet you in&#160;<xsl:call-template name="monthname"><xsl:with-param name="month" select="substring(LOOPTIJD_VAN, 4, 2)"/></xsl:call-template> .When you have any further questions regarding Campus, check our website. Or you can reach us on the number underneath or by replying this email.
Looking forward to meet you in&#160;<xsl:call-template name="monthname"><xsl:with-param name="month" select="substring(LOOPTIJD_VAN, 4, 2)"/></xsl:call-template>. When you have any further questions regarding Campus, check our website. Or you can reach us on the number underneath or by replying this email.
</p>
<xsl:call-template name="ondertekening"/>
<p>
@@ -603,7 +603,7 @@
</div>
<div class="content" style="width: 100%; height: 195mm;">
<ol start="6">
<li>Bij ondertekening van deze overeenkomst is Huurder aan Verhuurder een waarborgsom verschuldigd van € 700,00 voor het Gehuurde; de waarborgsom dient aan Verhuurder te zijn betaald voordat het Gehuurde door Huurder wordt betrokken. Bij verlenging van de overeenkomst blijft deze gehandhaafd. Verhuurder zal over dit bedrag aan Huurder geen rente vergoeden.</li>
<li>Bij ondertekening van deze overeenkomst is Huurder aan Verhuurder een waarborgsom verschuldigd van &#8364;&#160;<xsl:value-of select="format-number(BORG, '#.###,00', 'euro')"/> voor het Gehuurde; de waarborgsom dient aan Verhuurder te zijn betaald voordat het Gehuurde door Huurder wordt betrokken. Bij verlenging van de overeenkomst blijft deze gehandhaafd. Verhuurder zal over dit bedrag aan Huurder geen rente vergoeden.</li>
<li>Bij het verlaten van het Gehuurde zal er een eindschoonmaak worden verricht, die verrekend zal worden met de borg. Dit geldt ook bij verhuizen binnen de Campus.</li>
</ol>

View File

@@ -22,5 +22,15 @@ if not exist ".\EXACT\*_fac*.xml" goto einde
cscript sendmail.vbs
:einde
copy .\EXACT\*_fac*.xml .\EXACT\backup
del .\EXACT\*_fac*.log
del .\EXACT\*_fac*.xml
CALL ..\..\..\utils\gen_export\gen_export.bat EXACT650
if not exist ".\EXACT\*_fac*.xml" goto einde
cscript sendmail.vbs
:einde
CALL ..\..\..\utils\gen_export\gen_export.bat VERWERK_EXACT
CALL ..\..\..\utils\gen_export\gen_export.bat VERWERK_EXACT650

View File

@@ -1,6 +1,10 @@
REM Import van factuurbestandsnamen naar FACILITOR
move d:\Apps\Facilitor\Webdav\Pchd\0300*.csv .
REM Alle bestanden uit de 0650 (PCHD) administratie met inkoopdagboek 72 (HGH)
move d:\Apps\Facilitor\Webdav\Pchd\0650??72*.csv .
REM Alle bestanden uit de 0651 HGH
move d:\Apps\Facilitor\Webdav\Pchd\0651*.csv .
cscript ..\..\..\utils\gen_import\gen_import.wsf PCHX FACTUUR >>genimport.log 2>>&1

View File

@@ -1,6 +1,10 @@
REM Import van factuurbestandsnamen naar FACILITOR
move d:\Apps\Facilitor\Webdav\Pchd\065*.csv .
move d:\Apps\Facilitor\Webdav\Pchd\0650??70*.csv .
move d:\Apps\Facilitor\Webdav\Pchd\0650??71*.csv .
move d:\Apps\Facilitor\Webdav\Pchd\0650??75*.csv .
cscript ..\..\..\utils\gen_import\gen_import.wsf PCHX FACTUUR >>genimport.log 2>>&1

View File

@@ -49,7 +49,7 @@
</td>
<td style="font-size: 10px; vertical-align: middle; text-align: right">Gebouw Portiersloge<br/>
Torenallee 1, 5617 BA&#xA0;&#xA0;Eindhoven<br/>
<b>T</b>&#xA0;0900 - 202 70 70<br/>
<b>T</b>&#xA0;06 - 54 78 49 54<br/>
<b>E</b>&#xA0;strijp-s@pch-dienstengroep.nl<br/>
BTW-nummer NL853530725B01 <br/>
KvK-nummer 59501634

View File

@@ -40,8 +40,15 @@
</xsl:template>
<xsl:template match="opdracht" mode="include">
<xsl:variable name="custId"><xsl:value-of select="//facilitor/header/custId"/></xsl:variable>
<xsl:variable name="opdrtype">
<xsl:choose>
<xsl:when test="opdrachttype/omschrijving='Extern volgens contract'">contract</xsl:when>
<xsl:when test="opdrachttype/omschrijving='Extern buiten contract'">opdracht</xsl:when>
<xsl:when test="opdrachttype/omschrijving='Offerte'">offerte</xsl:when>
<xsl:when test="opdrachttype/omschrijving='SVD'">opdracht</xsl:when>
<xsl:when test="opdrachttype/omschrijving='Informatieverzoek'">informatie</xsl:when>
<xsl:when test="opdrachttype/omschrijving='Klacht'">klacht</xsl:when>
<xsl:when test="opdrachttype/key=5">contract</xsl:when>
<xsl:when test="opdrachttype/key=701">intern</xsl:when>
<xsl:when test="opdrachttype/key=702">opdracht</xsl:when>
@@ -59,6 +66,7 @@
<xsl:when test="$opdrtype='opdracht'">Opdracht</xsl:when>
<xsl:when test="$opdrtype='offerte'">Offerteaanvraag</xsl:when>
<xsl:when test="$opdrtype='klacht'">Klachtmelding</xsl:when>
<xsl:when test="$opdrtype='informatie'">Verzoek tot informatie</xsl:when>
</xsl:choose>&#xA0;
<xsl:value-of select="//facilitor/header/custId"/>&#xA0;
<xsl:value-of select="melding/stdmelding/discipline/srtdiscipline/prefix"/>
@@ -178,6 +186,13 @@
<i>Graag voor vragen m.b.t. deze klachtmelding contact opnemen via:</i>
</td>
</tr>
</xsl:when>
<xsl:when test="$opdrtype='informatie'">
<tr>
<td align="right" colspan="4">
<i>Graag voor vragen m.b.t. dit informatieverzoek contact opnemen via:</i>
</td>
</tr>
</xsl:when>
<xsl:otherwise>
<tr>
@@ -394,6 +409,12 @@
<br/>Wij zien de offerte graag per omgaande tegemoet.</td>
</tr>
</xsl:when>
<xsl:when test="$opdrtype='informatie'">
<tr>
<td colspan="4" align="left">
<br/>Graag zien wij de gevraagde informatie tegemoet.</td>
</tr>
</xsl:when>
<xsl:when test="$opdrtype='contract'">
<tr>
<td colspan="4" align="left">
@@ -500,12 +521,22 @@
<xsl:if test="kenmerk[@key=41] = 'Ja'">
<br/>Het bovenstaande bedrag is indicatief. Indien het bedrag hoger wordt, dient eerst contact opgenomen te worden met het Facilitair Service Bureau.<br/></xsl:if>
<br/>De factuur dient (inclusief werkbon en kopie opdrachtbevestiging) onder vermelding van
opdrachtnummer <xsl:value-of select="//facilitor/header/custId"/>&#xA0;<xsl:value-of select="melding/stdmelding/discipline/srtdiscipline/prefix"/>
opdrachtnummer <xsl:value-of select="$custId"/>&#xA0;<xsl:value-of select="melding/stdmelding/discipline/srtdiscipline/prefix"/>
<xsl:value-of select="melding/key"/>/<xsl:value-of select="bedrijfopdr_volgnr"/> gezonden te
worden naar:<br/><br/>
<xsl:choose>
<xsl:when test="$custId = 'PCHW' or $custId = 'PCHA'">
<xsl:value-of select="factuuradres/naam"/><br/>
<xsl:value-of select="factuuradres/gebouw_ruimte"/><br/>
<xsl:value-of select="factuuradres/post_adres"/><br/>
<xsl:value-of select="factuuradres/post_postcode"/>&#xA0;&#xA0;<xsl:value-of select="factuuradres/post_plaats"/><br/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="melding/plaats/regio/district/locatie/kenmerk[@key=1060]"/>
<br/>Postbus 4358<br/>
7320&#xA0;AJ&#xA0;&#xA0;Apeldoorn<br/>
</xsl:otherwise>
</xsl:choose>
<br/>Facturen zonder referentie, kopie zullen worden geretourneerd. De factuur <b>uiterlijk 3 weken na oplevering</b> toezenden.</td>
</tr>
</xsl:if>
@@ -724,4 +755,4 @@
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet><!-- Stylesheet edited using Stylus Studio - (c) 2004-2007. Progress Software Corporation. All rights reserved. -->

View File

@@ -6,8 +6,8 @@
<xsl:value-of select="substring(translate('$Revision$', '$ ', ''), 10)"/>
</xsl:variable>
<xsl:variable name="Xsrtnotificatiecode">MLDAFM</xsl:variable>
<xsl:variable name="Xsrtnotificatiecode">MLDAFM</xsl:variable>
<xsl:template match="melding" mode="include">
<table border="0" width="100%" cellpadding="2">
<tr>
@@ -57,11 +57,11 @@
</td>
</tr>
<xsl:if test="string(voor/naam_full)!=string(voor/naam_full)">
<tr>
<td align="right" width="16%"><b><xsl:value-of select="//lcl/MLD/meldingvoor"/>:</b></td>
<td align="left" width="34%"><xsl:value-of select="voor/naam_full"/></td>
</tr>
</xsl:if>
<tr>
<td align="right" width="16%"><b><xsl:value-of select="//lcl/MLD/meldingvoor"/>:</b></td>
<td align="left" width="34%"><xsl:value-of select="voor/naam_full"/></td>
</tr>
</xsl:if>
<tr>
<td align="right">
<b><xsl:value-of select="//lcl/FAC/locatie"/>:</b>
@@ -227,7 +227,7 @@
</xsl:attribute>
hier</xsl:element></p>
<br/>
</td>
</td>
</tr>
<xsl:comment>als we binnen een opdracht zijn, tonen we de meldingtekst niet</xsl:comment>
<tr>
@@ -312,18 +312,16 @@
</td>
</tr>
</xsl:if>
<xsl:if test="$srtnotificatiecode = 'MLDAFM'">
<tr>
<td colspan="4">
<xsl:call-template name="fac_liketab"/>
</td>
<xsl:if test="$srtnotificatiecode = 'MLDAFM'">
<tr>
<td colspan="4"><xsl:call-template name="fac_liketab"/></td>
</tr>
</xsl:if>
</xsl:if>
</table>
</xsl:template>
</xsl:template>
<xsl:template name="fac_liketab">
<table width="99%" style="border-collapse: collapse; border: 0px solid #000;">
<table width="99%">
<tr height="20px"><td colspan="4"><hr/></td></tr>
<tr>
<td colspan="4">
@@ -351,13 +349,40 @@
</xsl:variable>
<xsl:if test="$stars &gt; 0">
<tr>
<td>
<xsl:for-each select="(//node())[$stars >= position()]"> <!-- Onderstaande links nog aanpassen voor opleverening!!!!! -->
<xsl:element name="a"><xsl:attribute name="href">http://quaw.facws001/branch20163/?<xsl:value-of select="//bookmarks/faclikedeeplink"/>&amp;oordeel=<xsl:number value="number($stars)*2"/></xsl:attribute><img src="https://quaw.facilitor.nl/appl/Localscripts/raty/img/star-on.png" height="20px" width="20x" border="0" id="rate"/></xsl:element>
<td style="padding:2px;">
<xsl:for-each select="(//node())[$stars >= position()]">
<xsl:element name="a">
<xsl:attribute name="href">
https://<xsl:value-of select="$FacilitorRoot"/>?<xsl:value-of select="//bookmarks/faclikedeeplink"/>&amp;oordeel=<xsl:number value="number($stars)*2"/>
</xsl:attribute>
<img>
<xsl:attribute name="frc">M=MENU:F=star-on.png:R=R16x16</xsl:attribute>
<xsl:attribute name="border">0 </xsl:attribute>
<xsl:attribute name="align">bottom</xsl:attribute>
<xsl:attribute name="alt">*</xsl:attribute>
</img>
</xsl:element>
</xsl:for-each>
<xsl:for-each select="(//node())[$emptystars >= position()]">
<xsl:element name="a"><xsl:attribute name="href">http://quaw.facws001/branch20163/?<xsl:value-of select="//bookmarks/faclikedeeplink"/>&amp;oordeel=<xsl:number value="number($stars)*2"/></xsl:attribute><img src="https://quaw.facilitor.nl/appl/Localscripts/raty/img/star-off.png" height="20px" width="20px" border="0" id="rate"/></xsl:element>
</xsl:for-each>&#160;<xsl:value-of select="$liketext"/>
<xsl:element name="a">
<xsl:attribute name="href">
https://<xsl:value-of select="$FacilitorRoot"/>?<xsl:value-of select="//bookmarks/faclikedeeplink"/>&amp;oordeel=<xsl:number value="number($stars)*2"/>
</xsl:attribute>
<img>
<xsl:attribute name="frc">M=MENU:F=star-off.png:R=R16x16</xsl:attribute>
<xsl:attribute name="border">0 </xsl:attribute>
<xsl:attribute name="align">bottom</xsl:attribute>
<xsl:attribute name="alt">o</xsl:attribute>
</img>
</xsl:element>
</xsl:for-each>
&#xA0;
<xsl:element name="a">
<xsl:attribute name="href">
https://<xsl:value-of select="$FacilitorRoot"/>?<xsl:value-of select="//bookmarks/faclikedeeplink"/>&amp;oordeel=<xsl:number value="number($stars)*2"/>
</xsl:attribute>
<xsl:value-of select="$liketext"/>
</xsl:element>
</td>
</tr>
<xsl:call-template name="fac_like">
@@ -365,7 +390,7 @@
<xsl:with-param name="emptystars"><xsl:number value="number($emptystars)+1"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:template>
<xsl:template name="qrc_ins_new_page">
<xsl:param name="p_page"/>
@@ -434,9 +459,8 @@
</xsl:element>
<br/>&#160;&#160;&#160;<xsl:value-of select="FCLT_F_IDENTIFICATIE"/><br/>
&#160;&#160;&#160;<sub><xsl:value-of select="ALG_GEBOUW_CODE"/> - <xsl:value-of select="ALG_VERDIEPING_CODE"/></sub>
</td>
</xsl:template>
</xsl:template>
<xsl:template match="rapport">
<html>
@@ -465,8 +489,8 @@
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:if>
</xsl:if>
</html>
</xsl:template>
</xsl:stylesheet>
</xsl:template>
</xsl:stylesheet>

View File

@@ -5,9 +5,9 @@
<xsl:variable name="new_line" select="'&#xA;'"/>
<xsl:template match="/">
<xsl:if test="facilitor/relaties/relatie">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="facilitor/relaties/relatie">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;OVERIG1;OVERIG2;OVERIG3<xsl:value-of select="$new_line"/></xsl:if>
<xsl:for-each select="facilitor/relaties/relatie">
<xsl:value-of select="bedrijfsnaam"/>;<xsl:value-of select="leveranciernummer"/>;<xsl:value-of select="bezoek_adres"/>;<xsl:value-of select="bezoek_postcode"/>;<xsl:value-of select="bezoek_plaats"/>;<xsl:value-of select="bezoek_land"/>;<xsl:value-of select="post_adres"/>;<xsl:value-of select="post_postcode"/>;<xsl:value-of select="post_plaats"/>;<xsl:value-of select="post_land"/>;<xsl:value-of select="bedrijf_telefoon"/>;;<xsl:value-of select="bedrijf_email"/>;;;;;;;J;J;;;;;;;;;<xsl:value-of select="$new_line"/>
<xsl:value-of select="bedrijfsnaam"/>;<xsl:value-of select="leveranciernummer"/>;<xsl:value-of select="bezoek_adres"/>;<xsl:value-of select="bezoek_postcode"/>;<xsl:value-of select="bezoek_plaats"/>;<xsl:value-of select="bezoek_land"/>;<xsl:value-of select="post_adres"/>;<xsl:value-of select="post_postcode"/>;<xsl:value-of select="post_plaats"/>;<xsl:value-of select="post_land"/>;<xsl:value-of select="bedrijf_telefoon"/>;;<xsl:value-of select="bedrijf_email"/>;;;;;;;J;J;;;;;;;;;;<xsl:value-of select="$new_line"/>
</xsl:for-each>
</xsl:template>

View File

@@ -605,7 +605,7 @@ if you have any questions about your call, please contact the WTC Servicepoint v
<!--==============================================-->
<!--Vakgroep 801 = Brandgevaarlijke werkzaamheden -->
<!--==============================================-->
<xsl:when test="discipline/key='801'">
<xsl:when test="discipline/key='801' and $srtnotificatiecode='MLDREJ'">
<tr><td>
<table border="0" width="100%">
<tr>
@@ -703,8 +703,8 @@ if you have any questions about your call, please contact the WTC Servicepoint v
<br/><br/><br/><br/><br/><b>Nacontrole brandgevaarlijke werkzaamheden 60 minuten na afloop werkzaamheden</b>
<br/><br/>Naam:
<br/><br/>Handtekening:
<br/><br/><br/><br/><br/>Tijdstip inschakeling:
<br/><br/>Tijdstip uitschakeling:
<br/><br/><br/><br/><br/>Tijdstip uitschakeling:
<br/><br/>Tijdstip inschakeling:
<br/><br/>
</td>
</tr>
@@ -715,7 +715,7 @@ if you have any questions about your call, please contact the WTC Servicepoint v
<!--==============================================-->
<!-- Vakgroep 802 = Verhuizing en Transport -->
<!--==============================================-->
<xsl:when test="discipline/key='802'">
<xsl:when test="discipline/key='802' and $srtnotificatiecode='MLDREJ'">
<tr><td>
<table border="0" width="100%">
<tr>

View File

@@ -27,8 +27,9 @@
<xsl:element name="Reference"><xsl:value-of select="melding/stdmelding/omschrijving"/>-<xsl:value-of select="opdrachttype/omschrijving"/></xsl:element>
<xsl:element name="TypeCode">
<xsl:choose>
<xsl:when test="opdrachttype/omschrijving='Storing'">2</xsl:when>
<xsl:when test="opdrachttype/omschrijving='Regieaanvraag'">5</xsl:when>
<xsl:when test="opdrachttype/omschrijving='Uitvoering melding'">2</xsl:when>
<xsl:when test="opdrachttype/omschrijving='Uitvoering opdracht'">5</xsl:when>
<xsl:when test="opdrachttype/omschrijving='Uitvoering offerte'">5</xsl:when>
<xsl:otherwise>3</xsl:otherwise>
</xsl:choose>
</xsl:element>

View File

@@ -225,6 +225,16 @@ function notificationMail(rec, p_notificationXSL, params)
, rec("fac_srtnotificatie_code").value
, "email"
);
var icsResult = ""; // default geen ics
if (strResult.indexOf("<!--ADDICS-->") > -1) // <xsl:comment>ADDICS</xsl:comment>
{
icsResult = XML2HTML( xml_content
, p_notificationXSL
, rec("fac_srtnotificatie_code").value
, "ics"
);
}
SubjectText = rec("fac_notificatie_oms").value;
if (rec("fac_notificatie_status").value & params.STATUS_SUMMARY_XSL)
{
@@ -258,6 +268,7 @@ function notificationMail(rec, p_notificationXSL, params)
, attachFolder: attach_folder
, attachSubFolder: attach_kenmerk_folder
, attachments: attach_obj
, attachics: icsResult
}
);
}

View File

@@ -21,6 +21,7 @@
// * cc: The cc address
// * bcc: The bcc address
// * receiptto: The address where the receipt is sent to
// * attachics: deze tekst moet als ics toegevoegd worden
// *
// ******************************************
function sendMail( p_mailfrom
@@ -178,9 +179,26 @@ function sendMail( p_mailfrom
var url = "{0}&API=GETFLEX&APIKEY={1}&flexcode={2}".format(fac_web_url, S("puo_fclt_web_apikey"), flexcode);
Log2File(2, url);
var http_request = doHTTP(url, { method: "GET", headers: { "accept": "application/json" }});
var props = eval('(' + http_request.responseText + ')');
if (flexcode.match(/^M=CAD/)) // Die roepen we gewoon on-the-fly op
{
// <xsl:element name="img">
// <xsl:attribute name="frc">M=CAD&amp;labelPos=2&amp;vKey=<xsl:value-of select="//afspraak/plaats/regio/district/locatie/gebouw/verdieping/key"/>&amp;highlight=<xsl:value-of select="//afspraak/plaats/regio/district/locatie/gebouw/verdieping/ruimte/key"/>&amp;mode=0&amp;discs=981&amp;sizeX=700&amp;sizeY=400&amp;offsetX=10&amp;offsetY=10&amp;scale=950&amp;paperColor=16777215
// </xsl:attribute>
// </xsl:element>
props = {
files: [{
resized: url.replace(/\&amp\;/g, "&")
}
]
}
}
else
{
var http_request = doHTTP(url, { method: "GET", headers: { "accept": "application/json" }});
var props = eval('(' + http_request.responseText + ')');
}
if (props.flexlog)
Log2File(1, props.flexlog);
if (!props.files)
@@ -216,6 +234,33 @@ function sendMail( p_mailfrom
var eindPos = p_bodyhtml.indexOf(quote, startPos + 2);
}
// Eventueel een ics er aan toevoegen
if (params.attachics)
{
Log2File(2, "Adding calendar ICS");
var oStream = new ActiveXObject("ADODB.Stream");
oStream.Open;
oStream.Type = 2; // tekst
oStream.Charset = 'Windows-1252'; // Anders is de ics 'not supported'
oStream.WriteText(params.attachics);
var oCrypto = new ActiveXObject("SLNKDWF.Crypto"); // Maak random naam
// var sha1 = oCrypto.hex_sha1(params.attachics); werkt niet goed als RESMAI twee keer wordt gestuurd, dan heb je overlap
var sha1 = oCrypto.hex_random(16);
var tempfile = custabspath + "/../../temp/puo_ics_" + sha1 + ".ics";
oStream.SaveToFile(tempfile, 2); // overwrite
var objAttachment = objMail.AddAttachment(tempfile);
objAttachment.ContentTransferEncoding = "base64";
objAttachment.ContentMediaType = 'text/calendar; charset="utf-8"; method=REQUEST';
objAttachment.ContentClass = 'urn:content-classes:calendarmessage';
var Flds = objAttachment.Fields;
Flds("urn:schemas:mailheader:content-disposition") = "";
Flds.Update();
if (S("puo_loglevel") < 4)
objFso.DeleteFile(tempfile);
}
Log2File(2, "Before bodyHTML");
objMail.HtmlBody = p_bodyhtml.replace(/\<br/g, "\x0D\x0A<br"); // FSN#36318 Geen afsluitende '>'
objMail.HTMLBodyPart.Charset = S("puo_mailbodycharset");
@@ -249,7 +294,7 @@ function sendMail( p_mailfrom
if (objFso.FileExists(S("bdradrfiles_path") + "/" + safename))
{
Log2File(2, "Including fixed attachment " + S("bdradrfiles_path") + "/" + safename);
var objAttachment = objMail.AddAttachment(S("bdradrfiles_path") + "/" + safename, safename);
var objAttachment = objMail.AddAttachment(S("bdradrfiles_path") + "/" + safename);
objAttachment.ContentTransferEncoding = "base64";
}
else
@@ -319,7 +364,7 @@ function sendMail( p_mailfrom
if (!params.attachPassword)
{ // doe maar gewoon
var objAttachment = objMail.AddAttachment(attFile.Path, attFile.Name);
var objAttachment = objMail.AddAttachment(attFile.Path);
objAttachment.ContentTransferEncoding = "base64";
}
else
@@ -349,7 +394,7 @@ function sendMail( p_mailfrom
ZipObjOut.ZipFromStream(orgName, attStrm, params.attachPassword);
attStrm.Close();
ZipObjOut.Close();
var objAttachment = objMail.AddAttachment(tempfile, orgName + ".zip");
var objAttachment = objMail.AddAttachment(tempfile);
objAttachment.ContentTransferEncoding = "base64";
objFso.DeleteFile(tempfile); // objMail houdt hem nog even gelocked maar straks is hij wel weg
}