Merge 2016.1 patches

svn path=/Website/trunk/; revision=29621
This commit is contained in:
Jos Groot Lipman
2016-06-01 18:57:14 +00:00
33 changed files with 690 additions and 1115 deletions

View File

@@ -1184,6 +1184,9 @@ api2 = {
},
toDate: function (dt)
{
if (dt instanceof Array)
MULTI_DATE_NOT_SUPPORTED;
if (dt instanceof Date)
return dt;
// LET OP: Een (new Date) gemaakt binnen een plugin is vreemd genoeg geen (instanceof Date)

View File

@@ -12,57 +12,70 @@
*/
%>
<!-- #include file="../prs/prs.inc" -->
<!-- #include file="./model_custom_fields.inc"-->
<%
model_companies =
function model_companies()
{
table: "prs_bedrijf",
primary: "prs_bedrijf_key",
records_name: "companies",
record_name: "company",
fields: {"id" : { dbs: "prs_bedrijf_key" , typ: "key", filter: "exact" },
"name" : { dbs: "prs_bedrijf_naam" , typ: "varchar", filter: "like" },
"postaddress" : { dbs: "prs_bedrijf_post_adres" , typ: "varchar", filter: "like" },
"postzipcode" : { dbs: "prs_bedrijf_post_postcode" , typ: "varchar", filter: "like" },
"postcity" : { dbs: "prs_bedrijf_post_plaats" , typ: "varchar", filter: "like" },
"postcountry" : { dbs: "prs_bedrijf_post_land" , typ: "varchar", filter: "like" },
"visitaddress" : { dbs: "prs_bedrijf_bezoek_adres" , typ: "varchar", filter: "like" },
"visitzipcode" : { dbs: "prs_bedrijf_bezoek_postcode" , typ: "varchar", filter: "like" },
"visitcity" : { dbs: "prs_bedrijf_bezoek_plaats" , typ: "varchar", filter: "like" },
"visitcountry" : { dbs: "prs_bedrijf_bezoek_land" , typ: "varchar", filter: "like" },
"phone" : { dbs: "prs_bedrijf_telefoon" , typ: "varchar", filter: "like" },
"phone2" : { dbs: "prs_bedrijf_telefoon2" , typ: "varchar", filter: "like" }, /*?*/
"contactname" : { dbs: "prs_bedrijf_contact_persoon" , typ: "varchar", filter: "like" },
"contactphone" : { dbs: "prs_bedrijf_contact_telefoon", typ: "varchar", filter: "like" },
"remark" : { dbs: "prs_bedrijf_opmerking" , typ: "varchar", filter: "like" },
"remark2" : { dbs: "prs_bedrijf_opmerking2" , typ: "varchar", filter: "like" }, /*?*/
"hourrate" : { dbs: "prs_bedrijf_uurloon" , typ: "float", filter: "like" },
"code" : { dbs: "prs_leverancier_nr" , typ: "varchar", filter: "like" },
"agreement" : { dbs: "prs_overeenkomst_nr" , typ: "varchar", filter: "like" },
"agreementdate": { dbs: "prs_overeenkomst_datum" , typ: "date", filter: "range" },
"isinternal" : { dbs: "prs_bedrijf_intern" , typ: "varchar", filter: "exact" },
"issupplier" : { dbs: "prs_bedrijf_leverancier" , typ: "varchar", filter: "exact" },
"isexecutor" : { dbs: "prs_bedrijf_uitvoerende" , typ: "varchar", filter: "exact" }, /*naam?*/
"iscontractor" : { dbs: "prs_bedrijf_contract" , typ: "varchar", filter: "exact" },
"isrenter" : { dbs: "prs_bedrijf_huurder" , typ: "varchar", filter: "exact" },
"email" : { dbs: "prs_bedrijf_email" , typ: "varchar", filter: "like" },
"location" : { dbs: "prs_bedrijfdienstlocatie.alg_locatie_key", typ: "key", foreign: "alg_locatie", filter: prs.getLocationSql },
"service" : { dbs: "prs_bedrijfdienstlocatie.prs_dienst_key", typ: "key", foreign: "prs_dienst", filter: "like" }
},
REST_GET: function _GET(params)
this.table = "prs_bedrijf";
this.primary = "prs_bedrijf_key";
this.records_name = "companies";
this.record_name = "company";
this.fields = {
"id" : { dbs: "prs_bedrijf_key" , typ: "key", filter: "exact" },
"name" : { dbs: "prs_bedrijf_naam" , typ: "varchar", filter: "like" },
"postaddress" : { dbs: "prs_bedrijf_post_adres" , typ: "varchar", filter: "like" },
"postzipcode" : { dbs: "prs_bedrijf_post_postcode" , typ: "varchar", filter: "like" },
"postcity" : { dbs: "prs_bedrijf_post_plaats" , typ: "varchar", filter: "like" },
"postcountry" : { dbs: "prs_bedrijf_post_land" , typ: "varchar", filter: "like" },
"visitaddress" : { dbs: "prs_bedrijf_bezoek_adres" , typ: "varchar", filter: "like" },
"visitzipcode" : { dbs: "prs_bedrijf_bezoek_postcode" , typ: "varchar", filter: "like" },
"visitcity" : { dbs: "prs_bedrijf_bezoek_plaats" , typ: "varchar", filter: "like" },
"visitcountry" : { dbs: "prs_bedrijf_bezoek_land" , typ: "varchar", filter: "like" },
"phone" : { dbs: "prs_bedrijf_telefoon" , typ: "varchar", filter: "like" },
"phone2" : { dbs: "prs_bedrijf_telefoon2" , typ: "varchar", filter: "like" }, /*?*/
"contactname" : { dbs: "prs_bedrijf_contact_persoon" , typ: "varchar", filter: "like" },
"contactphone" : { dbs: "prs_bedrijf_contact_telefoon", typ: "varchar", filter: "like" },
"remark" : { dbs: "prs_bedrijf_opmerking" , typ: "varchar", filter: "like" },
"remark2" : { dbs: "prs_bedrijf_opmerking2" , typ: "varchar", filter: "like" }, /*?*/
"hourrate" : { dbs: "prs_bedrijf_uurloon" , typ: "float", filter: "like" },
"code" : { dbs: "prs_leverancier_nr" , typ: "varchar", filter: "like" },
"agreement" : { dbs: "prs_overeenkomst_nr" , typ: "varchar", filter: "like" },
"agreementdate": { dbs: "prs_overeenkomst_datum" , typ: "date", filter: "range" },
"isinternal" : { dbs: "prs_bedrijf_intern" , typ: "varchar", filter: "exact" },
"issupplier" : { dbs: "prs_bedrijf_leverancier" , typ: "varchar", filter: "exact" },
"isexecutor" : { dbs: "prs_bedrijf_uitvoerende" , typ: "varchar", filter: "exact" }, /*naam?*/
"iscontractor" : { dbs: "prs_bedrijf_contract" , typ: "varchar", filter: "exact" },
"isrenter" : { dbs: "prs_bedrijf_huurder" , typ: "varchar", filter: "exact" },
"email" : { dbs: "prs_bedrijf_email" , typ: "varchar", filter: "like" },
"location" : { dbs: "prs_bedrijfdienstlocatie.alg_locatie_key", typ: "key", foreign: "alg_locatie", filter: prs.getLocationSql },
"service" : { dbs: "prs_bedrijfdienstlocatie.prs_dienst_key", typ: "key", foreign: "prs_dienst", filter: "like" }
};
this.includes = {
"custom_fields" : {
"model": new model_custom_fields(this, "PRS", { readman: true, readuse: true, pNiveau: "B" }),
"joinfield": "flexparentkey"
}
};
this.REST_GET = function _GET(params)
{
var autfunction = "WEB_RELMAN";
params.authparams = user.checkAutorisation(autfunction, null, null, true); // pessimistisch
// TODO: Add authorization
var query = api2.sqlfields(params, model_companies);
var query = api2.sqlfields(params, this);
query.wheres.push("prs_bedrijf_verwijder IS NULL");
/* we need the dienstlocatie for the service and location */
query.tables.push("prs_bedrijfdienstlocatie");
query.wheres.push("prs_bedrijfdienstlocatie.prs_bedrijf_key(+) = prs_bedrijf.prs_bedrijf_key")
var wheres = api2.sqlfilter(params, model_companies)
var wheres = api2.sqlfilter(params, this)
query.wheres = query.wheres.concat(wheres);
var sql = "SELECT " + query.selects.join(", ")
@@ -70,18 +83,18 @@ model_companies =
+ " WHERE " + query.wheres.join(" AND " )
+ " ORDER BY prs_bedrijf_naam";
var json = api2.sql2json (params, sql, model_companies);
var json = api2.sql2json (params, sql, this);
return json;
},
PUT: function (params) /* update company */
};
this.PUT = function (params) /* update company */
{
},
POST: function (params) /* new company */
};
this.POST = function (params) /* new company */
{
},
DELETE: function (params) /* delete company */
};
this.DELETE = function (params) /* delete company */
{
}
};
}
%>

View File

@@ -94,6 +94,14 @@ function model_mld_workflowrule(mystart_key)
"dbs": "mld_workflowrule_condition",
"label": L("mld_workflowrule_condition"),
"typ": "memo"
},
"otherpath": {
"dbs": "mld_workflowrule_result",
"label": "Otherpath",
"typ": "number",
"required": true,
"hidden_fld": true,
"defaultvalue": 1
}
};
var prev_key = getQParamInt("prevstep", -1)
@@ -120,7 +128,7 @@ function model_mld_workflowrule(mystart_key)
"columns": ["id", "nextstep"]
};
this.REST_GET = generic_REST_GET(this);
this.REST_GET = generic_REST_GET(this);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);

View File

@@ -56,6 +56,7 @@ function model_persons()
"initials" : { dbs: "prs_perslid_voorletters", "label": L("lcl_prs_person_initials"), typ: "varchar" },
"prefix" : { dbs: "prs_perslid_tussenvoegsel", "label": L("lcl_prs_person_tussen"), typ: "varchar" },
"gender" : { dbs: "prs_perslid_geslacht", "label": L("lcl_prs_person_geslacht"), typ: "varchar", LOV: genderLOV() },
"language" : { dbs: "prs_perslid_lang", "label": L("lcl_lcl_taal"), typ: "varchar" },
"phone" : { dbs: "prs_perslid_telefoonnr", "label": L("lcl_prs_person_phone"), typ: "varchar" },
"mobile" : { dbs: "prs_perslid_mobiel", "label": L("lcl_prs_person_mobile"), typ: "varchar" },
"email" : { dbs: "prs_perslid_email", "label": L("lcl_prs_person_email"), typ: "varchar", filter: "exact"},
@@ -73,14 +74,14 @@ function model_persons()
};
this.includes = {
"custom_fields" : {
"model": new model_custom_fields(this, "PRS", { readman: true, readuse: true }),
"joinfield": "flexparentkey"
},
"authorization": {
"model": new model_fac_gebruikersgroep(),
"joinfield": "user"
},
"custom_fields" : {
"model": new model_custom_fields(this, "PRS", { readman: true, readuse: true, pNiveau: "P" }),
"joinfield": "flexparentkey"
},
"tracking": {
"model": new model_tracking(["perslid"]),
"joinfield": "fac_tracking_refkey"

View File

@@ -0,0 +1,63 @@
<% /*
$Revision$
$Id$
File: model_prs_ruimteafdeling.inc
Description:
Context:
Notes:
*/
%>
<%
function model_prs_ruimteafdeling()
{
this.table = "prs_ruimteafdeling";
this.primary = "prs_ruimteafdeling_key";
this.records_name = "prs_ruimteafdelings";
this.record_name = "prs_ruimteafdeling";
this.autfunction = "WEB_ALGUSE";
this.record_title = L("prs_ruimteafdeling");
this.records_title = L("prs_ruimteafdeling_m");
this.fields = {
"id": {
"dbs": "prs_ruimteafdeling_key",
"label": "Key",
"typ": "key",
"required": true,
"filter": "exact",
"seq": "prs_s_prs_ruimteafdeling_key"
},
"department": {
"dbs": "prs_afdeling_key",
"label": L("lcl_prs_organisatie"),
"typ": "key",
"required": true,
"foreign": "PRS_AFDELING"
},
"room": {
"dbs": "alg_ruimte_key",
"label": L("lcl_room"),
"typ": "key",
"required": true
},
"occupation": {
"dbs": "prs_ruimteafdeling_bezetting",
"label": L("lcl_prs_ruimtebezetting"),
"typ": "float",
"required": true
}
};
this.REST_GET = generic_REST_GET(this);
this.REST_POST = generic_REST_POST(this);
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}
%>

View File

@@ -17,7 +17,7 @@
*/
%>
<!-- #include file="../Shared/discxalg3d.inc"-->
<!-- #include file="../Shared/discx3d.inc"-->
<!-- #include file="../res/res.inc" -->
<!-- #include file="./model_reservationequipment.inc"-->
<!-- #include file="./model_reservationconsumables.inc"-->
@@ -63,7 +63,8 @@ function model_reservations(rsv_key, params)
"resroom" : { dbs: "res_ruimte_opstelling.res_ruimte_key", typ: "key", filter: "exact", label: L("lcl_room"), foreign: "res_ruimte" },
"configuration" : { dbs: "res_ruimte_opstelling.res_opstelling_key", typ: "key", foreign: "res_opstelling" },
"approved" : { dbs: "res_rsv_ruimte_afgerond", typ: "number", label: L("lcl_res_resappr"), track: true },
"warning" : { dbs: "res_rsv_ruimte_dirtlevel", typ: "number", foreign: fndirtwarn, readonly: true }
"warning" : { dbs: "res_rsv_ruimte_dirtlevel", typ: "number", foreign: fndirtwarn, readonly: true },
"reservation" : { dbs: "res_reservering_key", typ: "key", label: L("lcl_reservation") }
};
// Mogelijke waarden voor res_rsv_ruimte_flag is afhankelijk van het aantal toegestane flags.
@@ -114,9 +115,27 @@ function model_reservations(rsv_key, params)
if (!params.filter.id)
query.wheres.push("res_rsv_ruimte_van BETWEEN SYSDATE - " + S("facilitiespast_res") + " AND SYSDATE + " + S("facilitiesfuture_res"));
}
else
{
if (!params.filter.from && !params.filter.to)
query.wheres.push("res_rsv_ruimte_van >= SYSDATE"); // reserveringen die nog moeten beginnen!
}
query.tables.push("res_ruimte_opstelling");
query.wheres.push("res_rsv_ruimte.res_ruimte_opstel_key = res_ruimte_opstelling.res_ruimte_opstel_key");
query.tables.push("res_ruimte rr");
query.tables.push("res_alg_ruimte ra");
query.tables.push("alg_v_ruimte_gegevens_all rg");
query.tables.push("alg_district di");
query.tables.push("prs_perslid p");
query.tables.push("prs_v_afdeling_boom boom");
query.wheres.push("res_rsv_ruimte.res_ruimte_opstel_key = res_ruimte_opstelling.res_ruimte_opstel_key(+)");
query.wheres.push("rr.res_ruimte_key(+) = ra.res_ruimte_key");
query.wheres.push("ra.res_ruimte_key(+) = res_ruimte_opstelling.res_ruimte_key");
query.wheres.push("rg.alg_ruimte_key = COALESCE(res_rsv_ruimte.alg_ruimte_key, ra.alg_ruimte_key)");
query.wheres.push("rg.alg_district_key = di.alg_district_key");
query.wheres.push("res_rsv_ruimte.res_rsv_ruimte_contact_key = p.prs_perslid_key");
query.wheres.push("boom.prs_afdeling_key = p.prs_afdeling_key");
var wheres = api2.sqlfilter(params, this);
query.wheres = query.wheres.concat(wheres);
@@ -125,9 +144,25 @@ function model_reservations(rsv_key, params)
var sql = "SELECT " + query.selects.join(", ")
+ " FROM " + query.tables.join(", ")
+ " WHERE " + query.wheres.join(" AND " )
+ " ORDER BY res_rsv_ruimte.res_rsv_ruimte_key"; // Order by nodig voor includes
+ " WHERE " + query.wheres.join(" AND " );
// Over het resultaat moet nog de 3D rasp, altijd
sql = discx3d (sql,
"rr.res_discipline_key",
"di.alg_regio_key",
"rg.alg_district_key",
"rg.alg_locatie_key",
"rg.alg_gebouw_key",
"rg.alg_verdieping_key",
"rg.alg_ruimte_key",
"boom.prs_bedrijf_key",
"boom.prs_afdeling_key",
autfunction,
"",
2,null,3
);
sql += " ORDER BY res_rsv_ruimte.res_rsv_ruimte_key"; // Order by nodig voor includes
if (query.orderbys.length)
sql += ", " + query.orderbys.join(", ");

View File

@@ -15,6 +15,7 @@
<!-- #include file="./model_cadcontours.inc" -->
<!-- #include file="./model_custom_fields.inc"-->
<!-- #include file="./model_tracking.inc"-->
<!-- #include file="./model_prs_ruimteafdeling.inc"-->
<%
function model_rooms(room_key, params)
{
@@ -75,14 +76,19 @@ function model_rooms(room_key, params)
+ " AND sync.cad_tekening_key = cad_imp_contour.cad_tekening_key(+)"
}
}
},
"custom_fields" : { model: new model_custom_fields(this, "ALG", { readman: true, readuse: true }),
joinfield: "flexparentkey"
},
},
"custom_fields" : {
"model": new model_custom_fields(this, "ALG", { readman: true, readuse: true }),
"joinfield": "flexparentkey"
},
"tracking": {
model: new model_tracking(['ruimte']),
joinfield: "fac_tracking_refkey"
}
"model": new model_tracking(["ruimte"]),
"joinfield": "fac_tracking_refkey"
},
"departments": {
"model": new model_prs_ruimteafdeling(),
"joinfield": "room"
}
}
function _check_authorization (params, method)

View File

@@ -13,6 +13,7 @@
%>
<!-- #include file="../Shared/discxalg3d.inc"-->
<!-- #include file="./model_custom_fields.inc"-->
<%
model_visitors =
{
@@ -29,6 +30,14 @@ model_visitors =
"out" : { dbs: "bez_bezoekers_out", typ: "datetime", label: L("lcl_bez_out_date")},
"appointment": { dbs: "bez_afspraak_key", typ: "key", xforeign: "bez_afspraak"}
},
includes: {
"custom_fields" : {
"model": new model_custom_fields(this, "BEZ", { readman: true, readuse: true }),
"joinfield": "flexparentkey"
}
},
list: { columns: ["name", "company", "in", "out"] },
REST_GET: function _GET(params)

View File

@@ -257,7 +257,7 @@ else
}
else
{
RWFIELDTR("personH", "fld", L("lcl_vis_visit"), bez_afspraak.gastheer, {maxlength : 30, required: (S("vis_afspraak_host_uses_keys") & 2) == 2 })
RWFIELDTR("personH", "fld", L("lcl_vis_visit"), bez_afspraak.gastheer.substr(0, 50), {maxlength : 50, required: (S("vis_afspraak_host_uses_keys") & 2) == 2 })
RWFIELDTR("phone", "fld", L("lcl_phone"), bez_afspraak.telf_nr, {maxlength : 15, required: S("vis_afspraak_tel_required") == 1 })
} %>

View File

@@ -277,7 +277,7 @@ function bezFlexListACallbackJs(rowNr)
function BezoekerSelected(data, orgData)
{
var rowNr = orgData.rownr;
$("#bez" + rowNr).val(data.naam);
$("#bez" + rowNr).val(data.naam.substr(0, 30));
$("#bed" + rowNr).val(data.bedrijf);
if (data.contkey)
$("#contkey" + rowNr).val(data.contkey);

View File

@@ -159,14 +159,15 @@ function bez_edit_bezoekers(afspraak_key, afspraak_begin, afspraak_eind, loc_key
<% } %>
<td>
<% /* ContactpersoonBedrijfSelected laadt nieuwe flexkenmerken en bijbehorende verplichte flexkenmerk bij personen zorgen er ook voor dat personen eventueel verplicht wordt [checkRequiredGroup("10S" + params.suggestid.substr(3))]; */ %>
<%
<% // Bij suggestbox met contactpersonen (params.contactonly) geen maximale lengte eis.
var bezreado = res_ruimte_extern || oRs("prs_contactpersoon_key").Value != null || oRs("prs_perslid_key").Value != null
RWFIELD("bez" + next_vis, "fld", "", oRs("bez_afspraak_naam").Value,
{ maxlength: "30", readonly: bezreado, html: (params.contactonly? "sgonChange='ContactpersoonBedrijfSelected'" : 'onChange="checkRequiredGroup(\'10S' + next_vis + '\')"') }) %>
{ maxlength: (params.contactonly? null : "30"), readonly: bezreado, html: (params.contactonly? "sgonChange='ContactpersoonBedrijfSelected'" : 'onChange="checkRequiredGroup(\'10S' + next_vis + '\')"') }) %>
</td>
<td>
<% RWFIELD("bed" + next_vis, "fld", "", oRs("bez_afspraak_bedrijf").Value,
{ maxlength: "60", readonly: bezreado, html: (params.contactonly? "sgonChange='ContactpersoonBedrijfSelected'" : '') } ) %>
<% // Bij suggestbox met bedrijven (params.contactonly) geen maximale lengte eis.
RWFIELD("bed" + next_vis, "fld", "", oRs("bez_afspraak_bedrijf").Value,
{ maxlength: (params.contactonly? null : "60"), readonly: bezreado, html: (params.contactonly? "sgonChange='ContactpersoonBedrijfSelected'" : '') } ) %>
</td>
<td>
<!--Gebouw/Terrein-->
@@ -317,9 +318,10 @@ function bez_edit_bezoekers(afspraak_key, afspraak_begin, afspraak_eind, loc_key
{ %>
ih.insertCell(-1).innerHTML = '<img src="../Pictures/bezcontact.png" class="ilbutton" title="<%=titel%>" OnClick=selectPerson(' + next_vis + ')>';
<% } %>
<% /* ContactpersoonBedrijfSelected laadt nieuwe flexkenmerken en bijbehorende verplichte flexkenmerk bij personen zorgen er ook voor dat personen eventueel verplicht wordt [checkRequiredGroup("10S" + params.suggestid.substr(3))]; */ %>
ih.insertCell(-1).innerHTML = '<input type="text" class="fld fldnotresponsive" name="bez' + next_vis + '" id="bez' + next_vis + '" maxlength="30" <% if (!params.contactonly) {%> onChange="checkRequiredGroup(\'10S' + next_vis + '\')" <% } %> <%=params.contactonly? 'sgonChange="ContactpersoonBedrijfSelected"' : 'onChange="checkRequiredGroup(\\\'10S' + next_vis + '\\\')"'%>>';
ih.insertCell(-1).innerHTML = '<input type="text" class="fld fldnotresponsive" name="bed' + next_vis + '" id="bed' + next_vis + '" maxlength="60" <%=params.contactonly? 'sgonChange="ContactpersoonBedrijfSelected"' : ''%>>';
<% /* ContactpersoonBedrijfSelected laadt nieuwe flexkenmerken en bijbehorende verplichte flexkenmerk bij personen zorgen er ook voor dat personen eventueel verplicht wordt [checkRequiredGroup("10S" + params.suggestid.substr(3))];
Bij suggestbox met contactpersonen/bedrijven (params.contactonly) geen maximale lengte eis. */ %>
ih.insertCell(-1).innerHTML = '<input type="text" class="fld fldnotresponsive" name="bez' + next_vis + '" id="bez' + next_vis + '" <% if (!params.contactonly) {%> onChange="checkRequiredGroup(\'10S' + next_vis + '\')" <% } %> <%=params.contactonly? 'sgonChange="ContactpersoonBedrijfSelected"' : 'maxlength="30" onChange="checkRequiredGroup(\\\'10S' + next_vis + '\\\')"'%>>';
ih.insertCell(-1).innerHTML = '<input type="text" class="fld fldnotresponsive" name="bed' + next_vis + '" id="bed' + next_vis + '" <%=params.contactonly? 'sgonChange="ContactpersoonBedrijfSelected"' : 'maxlength="60"'%>>';
<% if (S("vis_parking_key") != -1 && this_bez.canWritePrk)
{ %>
ih.insertCell(-1).innerHTML = '<div id="prkdiv' + next_vis + '"></div>';

View File

@@ -680,7 +680,6 @@ var FcltMgr =
+' id="fcltmodal'+FcltMgr._modalCount+'" name="fcltmodal'+FcltMgr._modalCount+'" style="padding: 0px; '+ css_scroll +'"'
+' src="' + url + '">'
+'</iframe>';
this.fixActiveelementError();
$(html).dialog(params).dialog('open');
},

View File

@@ -576,21 +576,6 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
});
personForExist = true;
}
// Een FE kan niet togglen
// Als bij nieuwe meldingen de peroon initieel wordt ingevuld dan de OnChange van de persoon suggestbox uitvoeren,
// maar bij een melding bij Reservering niet, dan hebben we die gegevens juist al bepaald en overgenomen
if (rsv_ruimte_key < 0) {
%>
<script type="text/javascript">
jQuery(document).ready(function()
{
if (<%=mld_key%> < 0 && <%=mld_melding.melder_key%> > 0)
onChangeMelder(<%=mld_melding.melder_key%>);
});
</script>
<%
}
if (!stdm_info.is_kto_antwoord)
{
@@ -624,6 +609,23 @@ lcl.set_dialect(mld_melding.srtdisc, "MLD_SRTDISCIPLINE_KEY");
<input type="hidden" id="person" name="person" value="<%=user_key%>">
<% }
// Een FE kan niet togglen
// Als bij nieuwe meldingen de peroon initieel wordt ingevuld dan de OnChange van de persoon suggestbox uitvoeren,
// maar bij een melding bij Reservering niet, dan hebben we die gegevens juist al bepaald en overgenomen
if (rsv_ruimte_key < 0) {
%>
<script type="text/javascript">
jQuery(document).ready(function()
{
if (<%=mld_key%> < 0 && <%=mld_melding.melder_key%> > 0)
onChangeMelder(<%=mld_melding.melder_key%>);
});
</script>
<%
}
BLOCK_START("mldMelding", L("lcl_mld_categorie"), true);
// Setting mld_selector_mode:
// Selector mode vakgroep/melding voor de frontend.

View File

@@ -482,7 +482,11 @@ res = {
if (typeof mode == "undefined") mode = 0;
var sql = "SELECT fac.DatumTijdPlusUitvoerTijd(SYSDATE, COALESCE(" + (mode == 1? "res_disc_params_cancel_dagen" : "res_disc_params_expire_dagen") + ", 1),"
+ " 'DAGEN', " + ((restype == "CV" && S("res_cat_t1") >= 0)? S("res_cat_t1") : S("res_t1")) + ", "
+ " COALESCE(res_disc_params_expire_tijd, " + ((restype == "CV" && S("res_cat_t2") >= 0)? S("res_cat_t2") : S("res_t2")) + "), 1) datum"
+ " COALESCE(CASE"
+ " WHEN res_disc_params_expire_tijd = -1 OR res_disc_params_expire_tijd IS NULL"
+ " THEN NULL"
+ " ELSE res_disc_params_expire_tijd"
+ " END, " + ((restype == "CV" && S("res_cat_t2") >= 0)? S("res_cat_t2") : S("res_t2")) + "), 1) datum"
+ " , res_disc_params_expire_tijd"
+ " , COALESCE(" + (mode == 1? "res_disc_params_cancel_dagen" : "res_disc_params_expire_dagen") + ", 1) dagen"
+ " , ins_discipline_min_level"

View File

@@ -797,6 +797,14 @@ FCLTHeader.Requires({plugins: ["jQuery", "kenmerk"],
var date_from = new Date(parseInt($("#date_from").val()));
var date_to = new Date(parseInt($("#date_to").val()));
// FSN#36654 door een oude bug zijn er gepinde tabbladen naar 'nieuwe reservering' die tot AiAi's leiden
// Dat lossen we hier silent op (tot we ooit die foutieve tabbladen hebben opgeruimd)
// Merk op dat *heel* incidenteel een gebruiker het via de gewone interface ook lukte
// deze error te krijgen. Dat was dan niet relaxed en die AiAi willen we wel blijven zien
// en hopelijk ooit oplossen
if (relaxed && !(date_from && date_from.getTime() && date_to && date_to.getTime()))
return;
date_to.setFullYear(date_from.getFullYear()); // We hebben alleen een tijdstip namelijk
date_to.setMonth(date_from.getMonth());
date_to.setDate(date_from.getDate());
@@ -816,6 +824,7 @@ FCLTHeader.Requires({plugins: ["jQuery", "kenmerk"],
url += "&vis=" + nbez; // nog niet moeilijk doen over ongeldige waarden
visheader = nbez ? " (" + nbez + L("lcl_res_nrpers_inplanbord") + ")": "";
}
FcltMgr.fixActiveelementError(); // Ging soms mis met IE8
FcltMgr.openModalDetail(url,
L("lcl_res_select_inplanbord") + $('#sel_activity :selected').text() + visheader,
{ resizable: false,

View File

@@ -9,7 +9,7 @@
Note: Sinds 5.2.2 zitten de settings in de database
*/
var FCLTVersion="2016.1c UC";
var FCLTVersion="2016.1d";
var FCLTMinDatabaseSchema="28";
var custpath = rooturl + "/cust/" + customerId; // path to customer files

View File

@@ -70,91 +70,97 @@ function checkRequiredGroup(group)
}
}
var in_use = false; // Semaphore(Seinvlag) om nested loop van de alerts van twee velden met te lange invoer te vermijden.
function checkKenmerk(field, show, ktype, klen, kdec, kmin, kmax)
{
var valid = true;
var value = field.value;
var err = "<%=L("lcl_mld_invalid_kenmerk_format")%>";
if (value != '')
if (!in_use)
{
if (ktype == 'D')
in_use = true;
var valid = true;
var value = field.value;
var err = "<%=L("lcl_mld_invalid_kenmerk_format")%>";
if (value != '')
{
$(field).change(cal_show_onChange);
// Test of er nu een geldig datumformaat staat.
var arr = /^(\d{1,2})[-](\d{1,2})[-](\d{1,4})$/.exec(value);
if (arr)
if (ktype == 'D')
{
var dt = new Date( arr[3], arr[2] -1, arr[1] );
if ((arr[1] != dt.getDate()) ||
(arr[2] != dt.getMonth() + 1) ||
(arr[3] != dt.getYear() && arr[3] != dt.getFullYear()))
$(field).change(cal_show_onChange);
// Test of er nu een geldig datumformaat staat.
var arr = /^(\d{1,2})[-](\d{1,2})[-](\d{1,4})$/.exec(value);
if (arr)
{
valid = false;
var dt = new Date( arr[3], arr[2] -1, arr[1] );
if ((arr[1] != dt.getDate()) ||
(arr[2] != dt.getMonth() + 1) ||
(arr[3] != dt.getYear() && arr[3] != dt.getFullYear()))
{
valid = false;
}
}
else valid = false;
}
else valid = false;
}
else if (ktype == 'C' || ktype == 'L' || ktype == 'Q')
{ // newlines verdubbelen naar %0D%0A dus aantal regels bijtellen
if (value.length + (value.split("\n").length-1) > klen) valid = false;
}
else if (ktype == 'N')
{
if (kdec)
{
var l1 = klen-kdec;
var l2 = kdec;
// Als een punt <20>n een komma in een getal behouden we alleen de laatste
if (value.lastIndexOf(".") > value.lastIndexOf(","))
{
value = value.replace(/\,/ig, "");
field.value = value;
}
if (value.lastIndexOf(",") > value.lastIndexOf("."))
{
value = value.replace(/\./ig, "");
field.value = value;
}
var s = '^\\-?(\\d{1,'+l1+'}[.,]?|\\d{0,'+l1+'}[.,]\\d{1,'+l2+'})$';
valid = value.match(new RegExp(s)) && valid;
if (valid) { var t = parseFloat(value.replace(',','.'));}
else if (ktype == 'C' || ktype == 'L' || ktype == 'Q')
{ // newlines verdubbelen naar %0D%0A dus aantal regels bijtellen
if (value.length + (value.split("\n").length-1) > klen) valid = false;
}
else
else if (ktype == 'N')
{
if (klen == 1 && kmin == 0 && kmax == 1)
if (kdec)
{
// Checkbox; waarde in checked is altijd true of false, dus altijd valid.
valid = true;
t = (field.checked?1:0);
var l1 = klen-kdec;
var l2 = kdec;
// Als een punt <20>n een komma in een getal behouden we alleen de laatste
if (value.lastIndexOf(".") > value.lastIndexOf(","))
{
value = value.replace(/\,/ig, "");
field.value = value;
}
if (value.lastIndexOf(",") > value.lastIndexOf("."))
{
value = value.replace(/\./ig, "");
field.value = value;
}
var s = '^\\-?(\\d{1,'+l1+'}[.,]?|\\d{0,'+l1+'}[.,]\\d{1,'+l2+'})$';
valid = value.match(new RegExp(s)) && valid;
if (valid) { var t = parseFloat(value.replace(',','.'));}
}
else
{
var s = '^\\-?\\d{1,'+klen+'}[.,]?$';
valid = value.match(new RegExp(s)) && valid;
if (valid) { var t = parseInt(value);}
if (klen == 1 && kmin == 0 && kmax == 1)
{
// Checkbox; waarde in checked is altijd true of false, dus altijd valid.
valid = true;
t = (field.checked?1:0);
}
else
{
var s = '^\\-?\\d{1,'+klen+'}[.,]?$';
valid = value.match(new RegExp(s)) && valid;
if (valid) { var t = parseInt(value);}
}
}
if (valid)
{
if ((kmin !== null) && (t < kmin)) { valid = false; err = "<%=L("lcl_mld_kenmerk_out_range")%>"; }
if ((kmax !== null) && (t > kmax)) { valid = false; err = "<%=L("lcl_mld_kenmerk_out_range")%>"; }
}
}
if (valid)
{
if ((kmin !== null) && (t < kmin)) { valid = false; err = "<%=L("lcl_mld_kenmerk_out_range")%>"; }
if ((kmax !== null) && (t > kmax)) { valid = false; err = "<%=L("lcl_mld_kenmerk_out_range")%>"; }
}
}
}
if (show && !valid)
{
alert(err);
field.focus();
}
else if (!show && valid && field.className.match(/required\d*S\d*/g) && field.className.match(/required\d*S\d*/g).length > 0)
{ // Er is een required groep aanwezig.
var requiredgroup = field.className.match(/required\d*S\d*/g)[0];
var group = requiredgroup.substr(8);
checkRequiredGroup(group);
}
if (show && !valid)
{
field.focus();
alert(err);
}
else if (!show && valid && field.className.match(/required\d*S\d*/g) && field.className.match(/required\d*S\d*/g).length > 0)
{ // Er is een required groep aanwezig.
var requiredgroup = field.className.match(/required\d*S\d*/g)[0];
var group = requiredgroup.substr(8);
checkRequiredGroup(group);
}
return valid;
in_use = false;
return valid;
}
}
// Op een generieke manier documenten openen

View File

@@ -0,0 +1,3 @@
IF EXIST tmp_Exchange_all.bat DEL tmp_Exchange_all.bat
CScript ..\..\..\UTILS\Exchange\exchange_all.js AKZA EXCHFULL EXCHSYNC
::CALL tmp_Exchange_all.bat

View File

@@ -4,5 +4,8 @@
password : 'pass@word1', // Let op: dat werkt alleen als ServerXMLHTTP denkt op intranet te zitten
maxchange : 25, // Maximaal 25 wijzigingen tegelijk. De rest komt de volgende keer wel
maxrecurring: 100, // Maximaal 1e 100 occurences van een recurring afspraak
xmlfolder : "./xml/" // Hier komen alle opgehaalde XML's geplaatst. Moet bestaan
fullpast : 0, // Tot 0 dagen in het verleden bij nachtelijke EXCHFULL calendar-sync
fullfuture : 90, // Tot 90 dagen in de toekomst bij nachtelijke EXCHFULL calendar-sync
xmlfolder : "./xml/", // Hier komen alle opgehaalde XML's geplaatst. Moet bestaan
loglevel : 0
}

View File

@@ -308,18 +308,12 @@ p.MsoNormal {
</td>
</tr>
<tr>
<td align="right"><b>Locatie:</b></td>
<td align="left">
<xsl:value-of select="voor/plaats/regio/district/locatie/code"/> (<xsl:value-of select="plaats/regio/district/locatie/omschrijving"/>)
</td>
<td align="right" valign="top"><b>Afdeling: </b></td>
<td align="left"><xsl:value-of select="voor/afdeling/omschrijving"/></td>
<td/>
<td/>
</tr>
<tr>
<td align="right" valign="top"><b>Werkplek: </b></td>
<td align="left">
<xsl:value-of select="voor/werkplek/plaats/plaatsaanduiding"/></td>
<td></td>
<td><xsl:choose><xsl:when test="kostenplaats/module!='ALG'">Kosten aanvrager</xsl:when></xsl:choose></td>
</tr>
<tr height="20px">
@@ -1906,7 +1900,7 @@ p.MsoNormal {
<td width="15%">Amount<br/>Bedrag<br/>Betrag<br/>Montant</td>
</tr>
<tr><td colspan="4"><hr/></td></tr>
<xsl:for-each select="materialen[code='vm']">
<xsl:for-each select="materialen[count(code)=0]">
<xsl:sort select="volgnr"/>
<tr>
<td><xsl:value-of select="format-number(aantal, '0,00', 'european')"/></td>
@@ -1938,7 +1932,7 @@ p.MsoNormal {
</xsl:choose>
OF NO COMMERCIAL VALUE<br/>
FREE OF CHARGE<br/>
VALUE FOR CUSTOMS PURPOSES ONLY: &#8364; <xsl:value-of select="format-number(sum(materialen[code='vm']/totaalprijs), '0,00', 'european')"/><br/>
VALUE FOR CUSTOMS PURPOSES ONLY: &#8364; <xsl:value-of select="format-number(sum(materialen[count(code)=0]/totaalprijs), '0,00', 'european')"/><br/>
EORI NUMBER: NL 001824521
</div>
<xsl:if test="kenmerk[@naam='Vrije tekst op bon']!=''">
@@ -2412,11 +2406,7 @@ p.MsoNormal {
<tr>
<td width="20%" class="label"><xsl:value-of select="//lcl/FAC/e-mail"/></td>
<td width="80%" class="value">: <xsl:value-of select="rsv_ruimte[volgnr=$min_volgnr]/contact_user/email"/></td>
</tr>
<tr>
<td width="20%" class="label"><xsl:value-of select="//lcl/FAC/locatie"/></td>
<td width="80%" class="value">: <xsl:value-of select="rsv_ruimte[volgnr=$min_volgnr]/contact_user/werkplek/plaats/regio/district/locatie/omschrijving"/></td>
</tr>
</tr>
<tr>
<td width="20%" class="label"><xsl:value-of select="//lcl/FAC/afdeling"/></td>
<td width="80%" class="value">: <xsl:value-of select="rsv_ruimte[volgnr=$min_volgnr]/contact_user/afdeling/omschrijving"/></td>
@@ -3067,8 +3057,15 @@ p.MsoNormal {
<tr height="4.2cm">
<xsl:for-each select="//facilitor/rapport/rapport_data/data_row">
<xsl:sort select="INS_DEEL_OMSCHRIJVING"/>
<xsl:sort select="FCLT_F_IDENTIFICATIE"/>
<xsl:if test="position() &gt;= $p_pos and position() &lt;= $p_pos + $p_cols - 1">
<xsl:apply-templates select="." mode="qrc"/>
</xsl:if>
</xsl:for-each>
</tr>
</xsl:template>
<xsl:template match="data_row" mode="qrc">
<td style="text-align: center; vertical-align: top; margin:0;padding:0">
<xsl:element name="img">
<xsl:attribute name="style">height: 4.25cm; width: 4.25cm; margin:0cm; padding:0; border:none</xsl:attribute>
@@ -3084,234 +3081,241 @@ p.MsoNormal {
../../cust/akza/akzonobel.gif
</xsl:attribute>
</xsl:element>
<br/><br/>
&#160;&#160;&#160;<xsl:value-of select="INS_DEEL_OMSCHRIJVING"/><br/>
<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:if>
</xsl:for-each>
</tr>
</xsl:template>
</xsl:template>
<xsl:template match="rapport">
<html>
<xsl:call-template name="facilitorstyles"/>
<html>
<xsl:if test="$srtnotificatiecode = 'CUST01'">
<table width="100%" CLASS='DefResultsetTable'>
<xsl:if test=" count(rapport_data/data_row) = 0">
<tr><td>
<center><b>Geen gegevens gevonden</b></center>
</td></tr>
</xsl:if>
<xsl:call-template name="facilitorstyles"/>
<tr>
<td align="right" width="20%"><b>Sleutelkaart</b></td>
<td align="left" colspan="4">Datum: <xsl:value-of select="//header/dateTime"/></td>
<td/>
</tr>
<tr height="20px">
<td colspan="5"/>
</tr>
<tr>
<td align="right"><b>Personeelsnr.:</b></td>
<td align="left" colspan="4"><xsl:value-of select="rapport_data/data_row/PERSONEELSNR"/></td>
</tr>
<tr>
<td align="right"><b>Naam:</b></td>
<td align="left" colspan="4"><xsl:value-of select="rapport_data/data_row/FCLT_F_BEZITTER"/></td>
<td/>
<td/>
<td/>
</tr>
<tr>
<td align="right"><b>Afdeling:</b></td>
<td align="left" colspan="4"><xsl:value-of select="rapport_data/data_row/AFDELING"/></td>
<td/>
<td/>
</tr>
<tr>
<td align="right"><b>Telefoon:</b></td>
<td align="left" colspan="4"><xsl:value-of select="rapport_data/data_row/TELEFOONNR"/></td>
<td/>
<td/>
</tr>
<tr height="20px">
<td colspan="5"/>
</tr>
<tr>
<td colspan="5">
Volgens ons systeem bent u in het bezit van de volgende sleutels. Bent u van mening dat het overzicht niet klopt neem dan even contact op met de sleutelwerkgroep.
</td>
<tr height="20px">
<td colspan="5"/>
</tr>
</tr>
<xsl:if test="$srtnotificatiecode = 'CUST01'">
<table width="100%" CLASS='DefResultsetTable'>
<xsl:if test=" count(rapport_data/data_row) = 0">
<tr><td>
<center><b>Geen gegevens gevonden</b></center>
</td></tr>
</xsl:if>
<tr>
<th width="15%">Sluitplan</th>
<th width="15%">Soort</th>
<th width="15%">Sleutelnr.</th>
<th width="15%">Datum</th>
<th width="40%">Opmerking</th>
</tr>
<xsl:for-each select="rapport_data/data_row">
<tr>
<td width="15%"><xsl:value-of select="FCLT_F_SLUITPLAN"/></td>
<td width="15%"><xsl:value-of select="SOORT"/></td>
<td width="15%"><xsl:value-of select="SLEUTELNR"/></td>
<td width="15%"><xsl:value-of select="DATUM"/></td>
<td width="40%"><xsl:value-of select="OPMERKING"/></td>
</tr>
</xsl:for-each>
<tr height="20px">
<td colspan="5"/>
</tr>
<tr>
<td colspan="4">Het verlies van een sleutel, of de vermindering van de bruikbaarheid moet direct gemeld worden bij de bedrijfsbeveiliging!<br/>
Overdracht mag <u>UITSLUITEND</u> via de bedrijfsbeveiliging plaatsvinden!</td>
</tr>
<tr height="20px">
<td colspan="5"/>
</tr>
<tr>
<td align="right" colspan="5"><b>Sleutelwerkgroep ALF-VS</b></td>
</tr>
<tr>
<td align="right"><b>Telefoon:</b></td>
<td align="left">3500</td>
<td/>
<td/>
<td/>
</tr>
<tr>
<td align="right"><b>E-mail:</b></td>
<td align="left" colspan="4">Meldkamer Beveiliging ALF_VS</td>
<tr>
<td align="right" width="20%"><b>Sleutelkaart</b></td>
<td align="left" colspan="4">Datum: <xsl:value-of select="//header/dateTime"/></td>
<td/>
</tr>
<tr height="20px">
<td colspan="5"/>
</tr>
<tr>
<td align="right"><b>Personeelsnr.:</b></td>
<td align="left" colspan="4"><xsl:value-of select="rapport_data/data_row/PERSONEELSNR"/></td>
</tr>
<tr>
<td align="right"><b>Naam:</b></td>
<td align="left" colspan="4"><xsl:value-of select="rapport_data/data_row/FCLT_F_BEZITTER"/></td>
<td/>
<td/>
<td/>
</tr>
<tr>
<td align="right"><b>Afdeling:</b></td>
<td align="left" colspan="4"><xsl:value-of select="rapport_data/data_row/AFDELING"/></td>
<td/>
<td/>
</tr>
<tr>
<td align="right"><b>Telefoon:</b></td>
<td align="left" colspan="4"><xsl:value-of select="rapport_data/data_row/TELEFOONNR"/></td>
<td/>
<td/>
</tr>
<tr height="20px">
<td colspan="5"/>
</tr>
<tr>
<td colspan="5">
Volgens ons systeem bent u in het bezit van de volgende sleutels. Bent u van mening dat het overzicht niet klopt neem dan even contact op met de sleutelwerkgroep.
</td>
<tr height="20px">
<td colspan="5"/>
</tr>
</tr>
</tr>
</table>
</xsl:if>
<tr>
<th width="15%">Sluitplan</th>
<th width="15%">Soort</th>
<th width="15%">Sleutelnr.</th>
<th width="15%">Datum</th>
<th width="40%">Opmerking</th>
</tr>
<xsl:for-each select="rapport_data/data_row">
<tr>
<td width="15%"><xsl:value-of select="FCLT_F_SLUITPLAN"/></td>
<td width="15%"><xsl:value-of select="SOORT"/></td>
<td width="15%"><xsl:value-of select="SLEUTELNR"/></td>
<td width="15%"><xsl:value-of select="DATUM"/></td>
<td width="40%"><xsl:value-of select="OPMERKING"/></td>
</tr>
</xsl:for-each>
<tr height="20px">
<td colspan="5"/>
</tr>
<tr>
<td colspan="4">Het verlies van een sleutel, of de vermindering van de bruikbaarheid moet direct gemeld worden bij de bedrijfsbeveiliging!<br/>
Overdracht mag <u>UITSLUITEND</u> via de bedrijfsbeveiliging plaatsvinden!</td>
</tr>
<tr height="20px">
<td colspan="5"/>
</tr>
<tr>
<td align="right" colspan="5"><b>Sleutelwerkgroep ALF-VS</b></td>
</tr>
<tr>
<td align="right"><b>Telefoon:</b></td>
<td align="left">3500</td>
<td/>
<td/>
<td/>
</tr>
<tr>
<td align="right"><b>E-mail:</b></td>
<td align="left" colspan="4">Meldkamer Beveiliging ALF_VS</td>
<xsl:if test="@view = 'AKZA_V_RIT_GEPLANDE_RITTEN'">
<xsl:for-each select="rapport_data/data_row">
<xsl:sort select="DATUM"/>
<!-- Bevestiging reservering -->
<xsl:if test="position() != 1">
<div style="page-break-before:always; margin:0; padding:0; height:0">&#160;</div>
</xsl:if>
<xsl:if test="$mode = 'print'">
<xsl:call-template name="pageheader_small_logo"/>
</xsl:if>
<table border="0" bordercolor="#ffffff" width="100%">
</tr>
</table>
</xsl:if>
<xsl:call-template name="ritbon">
<xsl:with-param name="p_key" select="HIDE_F_RESERVERINGKEY"/>
<xsl:with-param name="p_volgnr" select="HIDE_F_RESERVERINGVOLGNR"/>
<xsl:with-param name="p_dag" select="DAG"/>
<xsl:with-param name="p_datum" select="concat(substring(DATUM,9,2),'-',substring(DATUM,6,2),'-',substring(DATUM,1,4))"/>
<xsl:with-param name="p_vertrek_tijd" select="STARTTIJD"/>
<xsl:with-param name="p_std_vertrek_plaats" select="VAN"/>
<xsl:with-param name="p_afw_vertrek_plaatsnaam"/>
<xsl:with-param name="p_afw_vertrek_adres"/>
<xsl:with-param name="p_afw_vertrek_tijd"/>
<xsl:with-param name="p_std_via_plaats" select="VIA"/>
<xsl:with-param name="p_afw_via_plaatsnaam"/>
<xsl:with-param name="p_afw_via_adres"/>
<xsl:with-param name="p_via_tijd" select="VIATIJD"/>
<xsl:with-param name="p_std_aankomst_plaats" select="NAAR"/>
<xsl:with-param name="p_afw_aankomst_plaatsnaam"/>
<xsl:with-param name="p_afw_aankomst_adres"/>
<xsl:with-param name="p_afw_aankomst_tijd"/>
<xsl:with-param name="p_chauffeur" select="FCLT_F_CHAUFFEUR"/>
<xsl:with-param name="p_auto" select="FCLT_F_AUTO"/>
<xsl:with-param name="p_gastheer" select="HIDE_F_GASTHEERVROUW"/>
<xsl:with-param name="p_kostenplaats" select="FCLT_F_KOSTENPLAATS"/>
<xsl:with-param name="p_opmerking" select="TOELICHTINGEN"/>
</xsl:call-template>
<xsl:if test="@view = 'AKZA_V_RIT_GEPLANDE_RITTEN'">
<xsl:for-each select="rapport_data/data_row">
<xsl:sort select="DATUM"/>
<!-- Bevestiging reservering -->
<xsl:if test="position() != 1">
<div style="page-break-before:always; margin:0; padding:0; height:0">&#160;</div>
</xsl:if>
<xsl:if test="$mode = 'print'">
<xsl:call-template name="pageheader_small_logo"/>
</xsl:if>
<table border="0" bordercolor="#ffffff" width="100%">
</table>
</xsl:for-each>
<xsl:call-template name="ritbon">
<xsl:with-param name="p_key" select="HIDE_F_RESERVERINGKEY"/>
<xsl:with-param name="p_volgnr" select="HIDE_F_RESERVERINGVOLGNR"/>
<xsl:with-param name="p_dag" select="DAG"/>
<xsl:with-param name="p_datum" select="concat(substring(DATUM,9,2),'-',substring(DATUM,6,2),'-',substring(DATUM,1,4))"/>
<xsl:with-param name="p_vertrek_tijd" select="STARTTIJD"/>
<xsl:with-param name="p_std_vertrek_plaats" select="VAN"/>
<xsl:with-param name="p_afw_vertrek_plaatsnaam"/>
<xsl:with-param name="p_afw_vertrek_adres"/>
<xsl:with-param name="p_afw_vertrek_tijd"/>
<xsl:with-param name="p_std_via_plaats" select="VIA"/>
<xsl:with-param name="p_afw_via_plaatsnaam"/>
<xsl:with-param name="p_afw_via_adres"/>
<xsl:with-param name="p_via_tijd" select="VIATIJD"/>
<xsl:with-param name="p_std_aankomst_plaats" select="NAAR"/>
<xsl:with-param name="p_afw_aankomst_plaatsnaam"/>
<xsl:with-param name="p_afw_aankomst_adres"/>
<xsl:with-param name="p_afw_aankomst_tijd"/>
<xsl:with-param name="p_chauffeur" select="FCLT_F_CHAUFFEUR"/>
<xsl:with-param name="p_auto" select="FCLT_F_AUTO"/>
<xsl:with-param name="p_gastheer" select="HIDE_F_GASTHEERVROUW"/>
<xsl:with-param name="p_kostenplaats" select="FCLT_F_KOSTENPLAATS"/>
<xsl:with-param name="p_opmerking" select="TOELICHTINGEN"/>
</xsl:call-template>
</table>
</xsl:for-each>
</xsl:if>
<xsl:if test="@view = 'AKZA_V_EXTRAPHONE'">
<table width="100%" CLASS='DefResultsetTable'>
<tr>
<th class="DefResultsetHeading">GROEP</th>
<th class="DefResultsetHeading">OMSCHRIJVING</th>
<th class="DefResultsetHeading">PLAATS</th>
<th class="DefResultsetHeading">BEREIKEN</th>
<th class="DefResultsetHeading">NUMMER/EMAIL</th>
</tr>
<xsl:if test=" count(rapport_data/data_row) = 0">
<tr><td>
<center><b>Geen gegevens gevonden</b></center>
</td></tr>
</xsl:if>
<xsl:if test="@view = 'AKZA_V_EXTRAPHONE'">
<table width="100%" CLASS='DefResultsetTable'>
<xsl:for-each select="rapport_data/data_row">
<xsl:sort select="FCLT_F_GROEP"/>
<xsl:sort select="FCLT_F_OMSCHRIJVING"/>
<xsl:sort select="FCLT_F_PLAATS"/>
<xsl:sort select="FCLT_F_BEREIKEN"/>
<tr>
<th class="DefResultsetHeading">GROEP</th>
<th class="DefResultsetHeading">OMSCHRIJVING</th>
<th class="DefResultsetHeading">PLAATS</th>
<th class="DefResultsetHeading">BEREIKEN</th>
<th class="DefResultsetHeading">NUMMER/EMAIL</th>
<td class="DRR"><xsl:value-of select="FCLT_F_GROEP"/></td>
<td class="DRR"><xsl:value-of select="FCLT_F_OMSCHRIJVING"/></td>
<td class="DRR"><xsl:value-of select="FCLT_F_PLAATS"/></td>
<td class="DRR"><xsl:value-of select="FCLT_F_BEREIKEN"/></td>
<td class="DRR">
<xsl:choose>
<xsl:when test="(contains(NUMMER_EMAIL, '@') and $mode != 'print')">
<xsl:element name="A">
<xsl:attribute name="href">mailto:<xsl:value-of select="NUMMER_EMAIL"/></xsl:attribute>
<xsl:value-of select="NUMMER_EMAIL"/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="NUMMER_EMAIL"/>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
<xsl:if test=" count(rapport_data/data_row) = 0">
<tr><td>
<center><b>Geen gegevens gevonden</b></center>
</td></tr>
</xsl:if>
</xsl:for-each>
</table>
</xsl:if>
<xsl:for-each select="rapport_data/data_row">
<xsl:sort select="FCLT_F_GROEP"/>
<xsl:sort select="FCLT_F_OMSCHRIJVING"/>
<xsl:sort select="FCLT_F_PLAATS"/>
<xsl:sort select="FCLT_F_BEREIKEN"/>
<xsl:if test="@view = 'AKZA_V_INS_QRC'">
<xsl:variable name="p_rows" select="6"/>
<xsl:variable name="p_cols" select="2"/>
<tr>
<td class="DRR"><xsl:value-of select="FCLT_F_GROEP"/></td>
<td class="DRR"><xsl:value-of select="FCLT_F_OMSCHRIJVING"/></td>
<td class="DRR"><xsl:value-of select="FCLT_F_PLAATS"/></td>
<td class="DRR"><xsl:value-of select="FCLT_F_BEREIKEN"/></td>
<td class="DRR">
<xsl:choose>
<xsl:when test="(contains(NUMMER_EMAIL, '@') and $mode != 'print')">
<xsl:element name="A">
<xsl:attribute name="href">mailto:<xsl:value-of select="NUMMER_EMAIL"/></xsl:attribute>
<xsl:value-of select="NUMMER_EMAIL"/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="NUMMER_EMAIL"/>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:if>
<xsl:if test="@view = 'AKZA_V_INS_QRC'">
<xsl:variable name="p_rows" select="6"/>
<xsl:variable name="p_cols" select="2"/>
<!--
<style>td {border: 1px solid #888; }</style>
<table border="0" width="100%" cellpadding="2">
<tr height="300"><td align="center"><span style="font-size:24pt;color:#000000">QR Code</span></td></tr>
<tr height="300"><td align="center"><span style="font-size:24pt;color:#000000">Generator</span></td></tr>
</table>
-->
<xsl:for-each select="//facilitor/rapport/rapport_data/data_row">
<xsl:sort select="INS_DEEL_OMSCHRIJVING"/>
<xsl:if test="position() mod ($p_rows * $p_cols) = 0">
<xsl:comment>=== Na elke p_rows*p_cols records (m*n passen op 1 A4) =====</xsl:comment>
<xsl:call-template name="qrc_ins_new_page">
<xsl:with-param name="p_page" select="floor(position() div ($p_rows * $p_cols))"/>
<xsl:with-param name="p_rows" select="$p_rows"/>
<xsl:with-param name="p_cols" select="$p_cols"/>
</xsl:call-template>
<div style="page-break-after:always; margin:0;padding:0">&#160;</div>
</xsl:if>
<xsl:if test="position() = last() and position() mod ($p_rows * $p_cols) != 0 ">
<xsl:comment>=== De laatste paar, zijn minder dan m*n =====</xsl:comment>
<xsl:call-template name="qrc_ins_new_page">
<xsl:with-param name="p_page" select="floor((position() div ($p_rows * $p_cols))+1)"/>
<xsl:with-param name="p_rows" select="$p_rows"/>
<xsl:with-param name="p_cols" select="$p_cols"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="//facilitor/rapport/rapport_data/data_row">
<xsl:sort select="FCLT_F_IDENTIFICATIE"/>
<xsl:if test="position() mod ($p_rows * $p_cols) = 0">
<xsl:comment>=== Na elke p_rows*p_cols records (m*n passen op 1 A4) =====</xsl:comment>
<xsl:call-template name="qrc_ins_new_page">
<xsl:with-param name="p_page" select="floor(position() div ($p_rows * $p_cols))"/>
<xsl:with-param name="p_rows" select="$p_rows"/>
<xsl:with-param name="p_cols" select="$p_cols"/>
</xsl:call-template>
<div style="page-break-after:always; margin:0;padding:0">&#160;</div>
</xsl:if>
<xsl:if test="position() = last() and position() mod ($p_rows * $p_cols) != 0 ">
<xsl:comment>=== De laatste paar, zijn minder dan m*n =====</xsl:comment>
<xsl:call-template name="qrc_ins_new_page">
<xsl:with-param name="p_page" select="floor((position() div ($p_rows * $p_cols))+1)"/>
<xsl:with-param name="p_rows" select="$p_rows"/>
<xsl:with-param name="p_cols" select="$p_cols"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:if>
<xsl:if test="@view = 'AKZA_V_INS_QRC_SINGLE'">
<table cellpadding="0" cellspacing="0" style="margin:0 0 0 2mm; padding:0">
<tr>
<td style="height: 2.8cm; width 4.5cm">&#160;</td>
<td style="height: 2.8cm; width 5.5cm">&#160;</td>
</tr>
<xsl:for-each select="rapport_data/data_row">
<xsl:sort select="FCLT_F_IDENTIFICATIE"/>
<tr height="4.2cm" style="page-break-after:always;">
<xsl:apply-templates select="." mode="qrc"/>
</tr>
</xsl:for-each>
</table>
</xsl:if>
</html>
</xsl:template>
@@ -3355,6 +3359,14 @@ p.MsoNormal {
<xsl:call-template name="facilitorstyles"/>
</head>
<body>
<xsl:choose>
<xsl:when test="$srtnotificatiecode = 'CUST05'">
<p>Beste <xsl:value-of select="voornaam"/>,</p>
<p>Voor een aantal van de objecten die je beheert, is deze maand een actie vereist. Kijk in het overzicht <xsl:element name="a"><xsl:attribute name="href">http://facws001/branch20161/?fac_id=AKZA&amp;u=oBgLrHAaWPpDxuuY</xsl:attribute><xsl:attribute name="target">_blank</xsl:attribute>Taken op mijn objecten</xsl:element> in FACILITOR voor meer informatie.</p>
<p>Met vriendelijke groet,</p>
<p>TS Deventer</p>
</xsl:when>
<xsl:otherwise>
<table BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="50%">
<xsl:call-template name="prs_begintext"/>
<tr>
@@ -3403,6 +3415,8 @@ p.MsoNormal {
</tr>
</xsl:if>
</table>
</xsl:otherwise>
</xsl:choose>
</body>
</html>
</xsl:template>

0
CUST/DJIN/export/NACHTWERK/.gitignore vendored Normal file
View File

View File

@@ -0,0 +1,18 @@
REM GEN_EXPORT_NACHTWERK.BAT
REM
REM DJIN
REM
REM "Dummy" export die feitelijk niets exporteert, maar elke nacht
REM zaken bijwerkt in de database (bv. het schonen van afspraken).
REM
REM Context : roep deze file aan indien nodig, of schedule deze
REM Vereist : de randvoorwaarde voor het gebruik van gen_export
REM
REM $Revision$
REM $Id$
REM
REM (c) 2016 Facilitor B.V.
REM
REM ================================================== create exportfile
CALL ..\..\..\utils\gen_export\gen_export.bat NACHTWERK

View File

@@ -188,20 +188,20 @@
</xsl:template>
<xsl:template match="rapport">
<xsl:if test="@view = 'hcas_v_rap_qrc_ins'">
<xsl:if test="@view = 'HCAS_V_RAP_QRC_INS' or @view = 'HCAS_V_RAP_QRC_INS_MLD'">
<xsl:for-each select="rapport_data/data_row">
<xsl:sort select="INS_DEEL_OMSCHRIJVING"/>
<div style="border: 1px solid black; float: left; padding-bottom: 10px; margin: 5px; width: 400px; height: 470px; text-align: center; font-size: 20pt;">
<xsl:sort select="FCLT_F_IDENTIFICATIE"/>
<div style="background-color: black; position: relative; margin: 0; padding: 0; width: 58.5mm; height: 19.5mm; page-break-after: always; border-bottom: 1px solid white;">
<xsl:element name="img">
<xsl:attribute name="src">
../../appl/shared/qrcode.asp?size=16&amp;text=/%3Fu%3D<xsl:value-of select="HIDE_F_BOOKMARK_ID"/>%26ins_key%3D<xsl:value-of select="INS_DEEL_KEY"/>
../../appl/shared/qrcode.asp?size=2&amp;text=/%3Fu%3D<xsl:value-of select="HIDE_F_BOOKMARK_ID"/>%26ins_key%3D<xsl:value-of select="INS_DEEL_KEY"/>
</xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="INS_DEEL_OMSCHRIJVING"/></xsl:attribute>
<xsl:attribute name="width">400px</xsl:attribute>
<xsl:attribute name="style">position: absolute; margin: 0; padding: 0; top: 1mm; left: 1mm; width: 17.5mm; height: 17.5mm; border: none;</xsl:attribute>
</xsl:element>
<xsl:element name="span">
<xsl:attribute name="style">position: absolute; margin: 0; padding: 0; top: <xsl:value-of select="round(19 + (string-length(FCLT_F_IDENTIFICATIE)) div 5)"/>pt; left: 22mm; width: 36mm; color: white; font-size: <xsl:value-of select="round(14 - (string-length(FCLT_F_IDENTIFICATIE)) div 3)"/>pt; font-family: Verdana, Arial, sans-serif; font-weight: bold;</xsl:attribute>
<xsl:value-of select="FCLT_F_IDENTIFICATIE"/>
</xsl:element>
<br/>
<xsl:value-of select="INS_DEEL_OMSCHRIJVING"/><br/>
<xsl:value-of select="FCLT_F_BOOKMARK"/>
</div>
</xsl:for-each>
</xsl:if>

View File

@@ -1,8 +1,7 @@
open csmftp01.hightechcampus.nl
user Facilitor
hH5Aqj3
quote pasv
hash
cd Import
binary
mput EXACT*.xml
mput EXACT\Facilitor*.xml
bye

View File

@@ -14,12 +14,11 @@ REM (c) 2015 Facilitor B.V.
REM
REM ================================================== cleanup
copy .\Exact\EXACT*.xml .\Exact\Backup
del .\Exact\EXACT*.xml
copy .\EXACT\Facilitor*.xml .\EXACT\Backup
del .\EXACT\Facilitor*.xml
REM ================================================== create exportfile
CALL ..\..\..\utils\gen_export\gen_export.bat EXACT
REM ================================================== transfer file to HTC/Exact
DATE /t >> ftp.log
@FOR %%F in (*.xml) do cscript /NoLogo sendftp.js %%F %%~nxF>>ftp.log 2>>ftperr.log
ftp.exe -ni -s:ftp_opdr2htc.scr

View File

@@ -1,9 +1,8 @@
open csmftp01.hightechcampus.nl
user Facilitor
hH5Aqj3
pasv
hash
lcd Export
cd Export
mget *.xml
mdelete *.xml
bye

View File

@@ -13,13 +13,8 @@ REM
REM (c) 2015 Facilitor B.V.
REM
REM ================================================== cleanup
copy .\Exact\EXACT*.xml .\Exact\Backup
del .\Exact\EXACT*.xml
REM ================================================== transfer file to KIEN/FACILITOR
ftp.exe -n -s:ftp_htc2opdr.scr
ftp.exe -ni -s:ftp_htc2opdr.scr
REM ================================================== create exportfile
REM cscript ..\..\..\utils\gen_import\gen_import.wsf KFHT EXACT >>gen_import.log 2>>&1

View File

@@ -831,7 +831,7 @@
<!-- 5912 = Eriks bv -->
<xsl:when test="bedrijf/key=18045">
<b>Klantnummer: </b>
<xsl:value-of select="bestelling/voor/afdeling/kenmerk[@key='18045']"/>
<xsl:value-of select="bestelling/voor/afdeling/kenmerk[@key='1020']"/>
<br/>
</xsl:when>
<xsl:otherwise>

View File

@@ -97,6 +97,16 @@
<br/>
<br/>
<br/>Geachte heer/mevrouw<br/><br/><br/>
<xsl:choose>
<xsl:when test="kostenplaatsnr != ''">
Hierbij ontvangt u de factuur voor aanpassingen op uw abonnement(en) t.b.v. parkeren op Strijp-S.<br/>
<br/>
<xsl:if test="omschrijving != ''">
<xsl:value-of select="omschrijving"/><br/>
</xsl:if>
<br/>
</xsl:when>
<xsl:otherwise>
Hierbij ontvangt u de factuur voor uw abonnement(en) t.b.v. parkeren op Strijp-S.<br/>
Uw abonnement(en) zijn geldig van <xsl:value-of select="datum3/datum"/> t/m <xsl:value-of select="datum4/datum"/>.<br/>
<xsl:if test="getal4 != '0'">
@@ -120,6 +130,9 @@
<table width="100%" border="0" style="font-size: 12pt">
<tbody>
<xsl:for-each select="msxml:node-set($verkoopregels)/verkoopfactuurregel">
<xsl:choose>
<xsl:when test="kostenplaatsnr != ''">
<tr>
<td class="factuur">
<xsl:choose>
@@ -158,12 +171,14 @@
</xsl:call-template>
</td>
</tr>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<tr>
<td colSpan="9" height="20"/>
</tr>
<tr>
<td class="factuur">Totaal excusief BTW</td>
<td class="factuur">Totaal exclusief BTW</td>
<td class="factuur" colspan="2">
</td>
<td class="factuur" style="text-align:right">

View File

@@ -73,7 +73,7 @@
<xsl:if test="count(deel[.//srtdeel[@type='INS']/key='222'])&gt;0">
<tr>
<td colspan= "3" align="left" >
<b> GASAANSLUITINGEN</b>
<b> GAS AANSLUITINGEN</b>
</td>
</tr>
<tr>
@@ -110,8 +110,7 @@
<br/>
<br/>
<xsl:if test="kenmerk[@naam='Soort mutatie']='Inhuizing'"> U ontvangt bericht zodra bovengenoemde aansluitingen zijn aangemeld bij energieleverancier Engie. </xsl:if>
<xsl:if test="kenmerk[@naam='Soort mutatie']='Uithuizing'"> U ontvangt binnenkort de eindafrekening(en). </xsl:if>
<br/>
<xsl:if test="kenmerk[@naam='Soort mutatie']='Uithuizing'"> U ontvangt bericht zodra bovengenoemde aanlsuiting(en) zijn afgemeld bij energieleverancier Engie. </xsl:if>
<br/>
</td>
</tr>
@@ -608,695 +607,4 @@
</xsl:template>
<xsl:template match="opdracht" mode="include">
<xsl:choose>
<xsl:when test="opdrachttype/key!='822'">
<table border="0" width="100%" cellpadding="2">
<tr>
<td colspan="4" class="caption" style="padding-top:20px;padding-bottom:20px">
<b>
<xsl:choose>
<xsl:when test="statusopdr_key = 10 and statusopdr_key_refiat &gt; 0">
<xsl:value-of select="//lcl/MLD/hergoedkeuring"/>:&#xA0;
</xsl:when>
<xsl:when test="(statusopdr_key = 3 or statusopdr_key = 4) and statusopdr_key_refiat &gt; 0">
<xsl:value-of select="//lcl/MLD/herfiattering"/>:&#xA0;
</xsl:when>
</xsl:choose>
<xsl:value-of select="opdrachttype/omschrijving"/>&#160;
<xsl:value-of select="melding/stdmelding/discipline/srtdiscipline/prefix"/>
<xsl:value-of select="melding/key"/>/<xsl:value-of select="bedrijfopdr_volgnr"/></b>
</td>
</tr>
<tr>
<td width="16%"/>
<td width="17%"/>
<td width="17%"/>
<td width="16%" align="right">
<b><xsl:value-of select="//lcl/FAC/bedrijf"/>:</b>
</td>
<td width="17%">
<xsl:value-of select="uitvoerende/bedrijf/naam"/>
</td>
<td width="17%">
</td>
</tr>
<tr>
<td colspan="3"/>
<td align="right">
<b><xsl:value-of select="//lcl/FAC/contactpersoon"/>:</b>
</td>
<td>
<xsl:value-of select="contactpersoon/naam_full"/>
</td>
</tr>
<tr>
<td colspan="3"/>
<td align="right">
<b><xsl:value-of select="//lcl/FAC/telefoon"/>:</b>
</td>
<td>
<xsl:value-of select="contactpersoon/telefoon1"/>
</td>
</tr>
<tr>
<td colspan="3"/>
<td align="right">
<b><xsl:value-of select="//lcl/FAC/adres"/>:</b>
</td>
<td>
<xsl:value-of select="uitvoerende/bedrijf/post_adres"/>
</td>
</tr>
<tr>
<td colspan="3"/>
<td align="right">
<b><xsl:value-of select="//lcl/FAC/plaats"/>:</b>
</td>
<td>
<xsl:value-of select="uitvoerende/bedrijf/post_plaats"/>
</td>
</tr>
<tr>
<td align="right">
<b><xsl:value-of select="//lcl/FAC/contactpersoon"/>:</b>
</td>
<td align="left">
<xsl:value-of select="backoffice_contact/naam_full"/>
</td>
<td colspan="3"/>
</tr>
<tr>
<td align="right">
<b><xsl:value-of select="//lcl/FAC/telefoon"/>:</b>
</td>
<td align="left">
<xsl:value-of select="backoffice_contact/telefoonnr"/>
</td>
<td align="left">
</td>
<td align="right">
<b><xsl:value-of select="//lcl/FAC/kostenplaats"/>:</b>
</td>
<td align="left">
<xsl:value-of select="kostenplaats/nr"/>
</td>
</tr>
<xsl:if test="melding/kenmerk[@naam='Ordernr']!=''">
<tr>
<td colspan="3"/>
<td align="right">
<b><xsl:value-of select="//lcl/MLD/ordernr"/>:</b>
</td>
<td align="left">
<xsl:value-of select="melding/kenmerk[@naam='Ordernr']"/>
</td>
</tr>
</xsl:if>
<tr>
<td colspan="3"/>
<td align="right">
<b><xsl:value-of select="//lcl/MLD/datum_gereed"/>:</b>
</td>
<td align="left">
<xsl:value-of select="datumgereed/datum"/>
</td>
</tr>
<tr>
<td colspan="3"/>
<td align="right">
<b><xsl:value-of select="//lcl/MLD/datum_verzonden"/>:</b>
</td>
<td align="left">
<xsl:value-of select="datumverzonden/datum"/>
</td>
</tr>
<tr>
<td colspan="3"/>
<td align="right">
<b><xsl:value-of select="//lcl/MLD/status"/>:</b>
</td>
<td align="left">
<xsl:value-of select="status"/>
</td>
</tr>
<tr>
<td align="right" valign="top">
<b><xsl:value-of select="//lcl/FAC/omschrijving"/>:</b>
</td>
<td align="left" colspan="3">
<xsl:call-template name="linebreaks">
<xsl:with-param name="string" select="omschrijving"/>
</xsl:call-template>
</td>
</tr>
<tr>
<td colspan="6">
<hr/>
</td>
</tr>
<tr>
<td colspan="6" align="center">
<table width="100%" style="background-color:#EEEEEE;border: 1px solid blue">
<tr>
<td>
<xsl:apply-templates select="melding" mode="include"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="6" height="30px" valign="center">
<hr/>
</td>
</tr>
<xsl:variable name="arbeid" select="uren*uurloon"/>
<xsl:variable name="arbeid_refiat" select="uren_refiat*uurloon_refiat"/>
<tr>
<td align="right">
<b><xsl:value-of select="//lcl/MLD/uren"/>:</b>
</td>
<td>
<xsl:value-of select="format-number(uren, '0,00', 'european')"/>
<b>&#xA0;à&#xA0;</b>&#x20AC;&#xA0;<xsl:value-of select="format-number(uurloon, '0,00', 'european')"/></td>
<td style="width:2in;text-align:left">
<xsl:if test="statusopdr_key_refiat &gt; 0">
(<xsl:value-of select="//lcl/MLD/was"/>&#xA0;<xsl:value-of select="format-number(uren, '0,00', 'european')"/>
<b>&#xA0;à&#xA0;</b>&#x20AC;&#xA0;<xsl:value-of select="format-number(uurloon, '0,00', 'european')"/>)
</xsl:if>
</td>
<td align="right">
<b><xsl:value-of select="//lcl/MLD/arbeid"/>:</b>
</td>
<td style="width:1in;text-align:right">&#x20AC;&#xA0;<xsl:value-of select="format-number($arbeid, '0,00', 'european')"/></td>
<td style="width:1in;text-align:right">
<xsl:if test="statusopdr_key_refiat &gt; 0">
(<xsl:value-of select="//lcl/MLD/was"/> &#x20AC;&#xA0;<xsl:value-of select="format-number($arbeid_refiat, '0,00', 'european')"/>)
</xsl:if>
</td>
</tr>
<tr>
<td colspan="3"/>
<td align="right">
<b><xsl:value-of select="//lcl/MLD/materiaal"/>:</b>
</td>
<td style="width:1in;text-align:right">&#x20AC;&#xA0;<xsl:value-of select="format-number(materiaal, '0,00', 'european')"/></td>
<td style="width:1in;text-align:right">
<xsl:if test="statusopdr_key_refiat &gt; 0">
(<xsl:value-of select="//lcl/MLD/was"/> &#x20AC;&#xA0;<xsl:value-of select="format-number(materiaal_refiat, '0,00', 'european')"/>)
</xsl:if>
</td>
</tr>
<xsl:variable name="correctie0" select="$arbeid + materiaal"/>
<xsl:variable name="correctie" select="kosten - $correctie0"/>
<xsl:variable name="correctie0_refiat" select="$arbeid_refiat + materiaal_refiat"/>
<xsl:variable name="correctie_refiat" select="kosten_refiat - $correctie0_refiat"/>
<xsl:if test="$correctie!=0">
<tr>
<td colspan="3"/>
<td align="right">
<b><xsl:value-of select="//lcl/MLD/correctie"/>:</b>
</td>
<td style="width:1in;text-align:right">&#x20AC;&#xA0;<xsl:value-of select="format-number($correctie, '0,00', 'european')"/></td>
<td style="width:1in;text-align:right">
<xsl:if test="statusopdr_key_refiat &gt; 0">
(<xsl:value-of select="//lcl/MLD/was"/> &#x20AC;&#xA0;<xsl:value-of select="format-number($correctie_refiat, '0,00', 'european')"/>)
</xsl:if>
</td>
</tr>
</xsl:if>
<tr>
<td colspan="3"/>
<td align="right">
<b><xsl:value-of select="//lcl/FAC/totaal"/>:</b>
</td>
<td style="width:1in;text-align:right">
<b>&#x20AC;&#xA0;<xsl:value-of select="format-number(kosten, '0,00', 'european')"/></b>
</td>
<td style="width:1in;text-align:right">
<xsl:if test="statusopdr_key_refiat &gt; 0">
(<xsl:value-of select="//lcl/MLD/was"/> &#x20AC;&#xA0;<xsl:value-of select="format-number(kosten_refiat, '0,00', 'european')"/>)
</xsl:if>
</td>
</tr>
</table>
</xsl:when>
<xsl:when test="opdrachttype/key='822'">
<table border="0" width="100%" cellpadding="2">
<tr>
<td colspan="5" class="caption" style="padding-top:20px;padding-bottom:20px">
<xsl:choose>
<xsl:when test="statusopdr_key = 10 and statusopdr_key_refiat &gt; 0">
<xsl:value-of select="//lcl/MLD/hergoedkeuring"/>:&#xA0;
</xsl:when>
<xsl:when test="(statusopdr_key = 3 or statusopdr_key = 4) and statusopdr_key_refiat &gt; 0">
<xsl:value-of select="//lcl/MLD/herfiattering"/>:&#xA0;
</xsl:when>
</xsl:choose>
<xsl:value-of select="melding/kenmerk[@naam='Soort mutatie']"/>&#160;
<xsl:value-of select="melding/stdmelding/discipline/srtdiscipline/prefix"/>
<xsl:value-of select="melding/key"/>/<xsl:value-of select="bedrijfopdr_volgnr"/>&#160;
Koninklijke Volker Wessels Stevin N.V.
</td>
</tr>
<tr>
<td width="25%"> Reden: </td>
<td> <b> <xsl:value-of select="melding/kenmerk[@naam='Reden inhuizing']"/><xsl:value-of select="melding/kenmerk[@naam='Reden uithuizing']"/> </b> </td>
<td width="16%"> Organisatie: </td>
<td> <b> Koninklijke Volker Wessels Stevin N.V.</b> </td>
</tr>
<tr>
<td width="25%"> Product: </td>
<td> <b>
<xsl:if test="count(melding/deel[.//srtdeel[@type='INS']/key='221'])&gt;0"> electra </xsl:if>
<xsl:if test="count(melding/deel[.//srtdeel[@type='INS']/key='222'])&gt;0"> Gas </xsl:if>
</b> </td>
<td> </td>
<td> <b> 1875025594 </b> </td>
</tr>
<tr>
<td width="25%"> <xsl:if test="melding/kenmerk[@naam='Soort mutatie']='Inhuizing'"> Emailadres voor meterstanden/vko overzichten: </xsl:if> </td>
<td> <xsl:if test="melding/kenmerk[@naam='Soort mutatie']='Inhuizing'"> <b> <xsl:value-of select="melding/kenmerk[@naam='Contactpersoon']"/> </b> </xsl:if> </td>
<td width="16%"> Contactpersoon: </td>
<td> <b> Nadine Kappert </b> </td>
</tr>
<tr>
<td width="25%"> Verzamelfactuur: </td>
<td> <b> <xsl:value-of select="melding/kenmerk[@naam='Verzamelfactuur']"/> </b> </td>
<td width="16%"> Telefoonnummer: </td>
<td> <b> 088-186 1000 </b> </td>
</tr>
<tr>
<td width="25%"> Eerste factuurreferentie: </td>
<td> <b> <xsl:value-of select="melding/kenmerk[@naam='Eerste factuurreferentie']"/> </b> </td>
<td width="16%"> E-mail </td>
<td> <b> energie@pch-fm.nl </b> </td>
</tr>
</table>
<p>
<xsl:choose>
<!-- details werkbon inhuizing -->
<xsl:when test="melding/kenmerk[@naam='Soort mutatie']='Inhuizing'">
<xsl:if test="count(melding/deel[.//srtdeel[@type='INS']/key='221'])&gt;0">
<table width="100%" border="10" style="background-color:#EEEEEE;border: 1px solid blue">
<tr>
<td colspan="23" align="left">
<b> GEGEVENS ELECTRA AANSLUITING(EN) </b>
</td>
</tr>
<tr>
<th> EAN code </th>
<th> Ingangsdatum </th>
<th> Adres </th>
<th> Postcode </th>
<th> Plaats </th>
<th> Type gebruiker </th>
<th> Verw. jaarverbruik </th>
<th> Soort meter </th>
<th> Verw. piek % </th>
<th> Verblijfsfunctie </th>
<th> Doorlaatwaarde </th>
<th> Soort aansluiting </th>
<th> Energiebel. cluster </th>
<th> Naam cluster </th>
<th> Factuurtenaamstelling </th>
<th> Debiteurnummer </th>
<th> Factuuradres </th>
<th> Postcode </th>
<th> Plaats </th>
<th> Freq. verbruiksoverzicht </th>
<th> Verzamelfactuur </th>
<th> Fee </th>
</tr>
<xsl:for-each select="melding/deel[.//srtdeel[@type='INS']/key='221']">
<xsl:sort select="omschrijving"/>
<tr>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='EAN code']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Aanmelddatum']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Adres']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Postcode']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Plaats']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Type gebruiker']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Verwacht jaarverbruik']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Soort meter']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Verwacht piekpercentage']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Verblijfsfunctie']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Doorlaatwaarde']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Soort aansluiting']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Energiebelastingclustering']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Naam energiebelastingcluster']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/naam"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/leverancier_nr"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/post_adres"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/post_postcode"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/post_plaats"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Freq. verbruiksoverzicht']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/kenmerk[@naam='Verzamelfactuur']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/kenmerk[@naam='Fee']"/>
</td>
</tr>
</xsl:for-each>
<xsl:if test="melding/kenmerk[@naam='Reden inhuizing']='Regulier (switch)'">
<tr>
<td colspan="9" align="left">
<b> MEETDATA ELECTRA </b>
</td>
</tr>
<tr>
<th> EAN nummer </th>
<th> Verw. jaarverbruik </th>
<th> Opnamedatum </th>
<th> Meterstand </th>
<th> Stand telwerk II </th>
<th> Stand telwerk III </th>
<th> Stand telwerk IV </th>
<th> Emailadres meterstanden </th>
</tr>
<xsl:for-each select="melding/deel[.//srtdeel[@type='INS']/key='221']">
<xsl:sort select="omschrijving"/>
<tr>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='EAN code']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Verwacht jaarverbruik']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Opnamedatum']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Meterstand']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Meterstand telwerk II']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Meterstand telwerk III']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Meterstand telwerk IV']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/email"/>
</td>
</tr>
</xsl:for-each>
</xsl:if>
</table>
</xsl:if>
<xsl:if test="count(melding/deel[.//srtdeel[@type='INS']/key='222'])&gt;0">
<table width="100%" border="10" style="background-color:#EEEEEE;border: 1px solid blue" >
<tr>
<td colspan= "17" align="left" >
<b> GEGEVENS GASAANSLUITING(EN)</b>
</td>
</tr>
<tr>
<th> EAN code </th>
<th> Ingangsdatum </th>
<th> Adres </th>
<th> Postcode </th>
<th> Plaats </th>
<th> Type gebruiker </th>
<th> Verw. jaarverbruik </th>
<th> Blokverwarming </th>
<th> Factuurtenaamstelling </th>
<th> Debiteurnummer </th>
<th> Factuuradres </th>
<th> Postcode </th>
<th> Plaats </th>
<th> Freq. verbruiksoverzicht </th>
<th> Verzamelfactuur </th>
<th> Fee </th>
</tr>
<xsl:for-each select="melding/deel[.//srtdeel[@type='INS']/key='222']">
<xsl:sort select="omschrijving"/>
<tr>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='EAN code']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Aanmelddatum']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Adres']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Postcode']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Plaats']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Type gebruiker']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Verwacht jaarverbruik']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Blokverwarming']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/naam"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/leverancier_nr"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/post_adres"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/post_postcode"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/post_plaats"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Freq. verbruiksoverzicht']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/kenmerk[@naam='Verzamelfactuur']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/kenmerk[@naam='Fee']"/>
</td>
</tr>
</xsl:for-each>
<xsl:if test="melding/kenmerk[@naam='Reden inhuizing']='Regulier (switch)'">
<tr>
<td colspan= "17" align="left" >
<b> MEETDATA GAS</b>
</td>
</tr>
<tr>
<th> EAN code </th>
<th> Verw. jaarverbruik </th>
<th> Opnamedatum </th>
<th> Meterstand </th>
<th> Emailadres meterstanden </th>
</tr>
<xsl:for-each select="melding/deel[.//srtdeel[@type='INS']/key='222']">
<xsl:sort select="omschrijving"/>
<tr>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='EAN code']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Verwacht jaarverbruik']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Opnamedatum']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Meterstand']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Werkmaatschappij']/bedrijf/email"/>
</td>
</tr>
</xsl:for-each>
</xsl:if>
</table>
</xsl:if>
</xsl:when>
<!-- details werkbon uithuizing -->
<xsl:when test="melding/kenmerk[@naam='Soort mutatie']='Uithuizing'">
<xsl:if test="count(melding/deel[.//srtdeel[@type='INS']/key='221'])&gt;0">
<table width="100%" border="10" style="background-color:#EEEEEE;border: 1px solid blue">
<tr>
<td colspan="5" align="left">
<b> Gegevens electra aansluiting(en) </b>
</td>
</tr>
<tr>
<th> EAN code </th>
<th> Gewenste afmelddatum </th>
<th> Adres </th>
<th> Postcode </th>
<th> Plaats </th>
</tr>
<xsl:for-each select="melding/deel[.//srtdeel[@type='INS']/key='221']">
<xsl:sort select="omschrijving"/>
<tr>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='EAN code']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Verwachte afmelddatum']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Adres']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Postcode']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Plaats']"/>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:if>
<xsl:if test="count(melding/deel[.//srtdeel[@type='INS']/key='222'])&gt;0">
<table width="100%" border="10" style="background-color:#EEEEEE;border: 1px solid blue" >
<tr>
<td colspan= "5" align="left" >
<b> Gegevens gasaansluiting(en)</b>
</td>
</tr>
<tr>
<th> EAN code </th>
<th> Gewenste afmelddatum </th>
<th> Adres </th>
<th> Postcode </th>
<th> Plaats </th>
</tr>
<xsl:for-each select="melding/deel[.//srtdeel[@type='INS']/key='222']">
<xsl:sort select="omschrijving"/>
<tr>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='EAN code']"/>
</td>
<td>
<xsl:value-of select="kenmerk[@naam='Verwachte afmelddatum']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Adres']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Postcode']"/>
</td>
<td align="left" valign="top">
<xsl:value-of select="kenmerk[@naam='Plaats']"/>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:if>
</xsl:when>
</xsl:choose>
</p>
<table border="0" width="100%" cellpadding="2">
<tr>
<td colspan="2" class="caption" style="padding-top:20px;padding-bottom:20px">
</td>
</tr>
<tr>
<td colspan="2">
Middels onderstaande ondertekening bevestigd u niet alleen de genoemde mutatie maar tekent u ook voor de aansluit en transport overeenkomst. De algemene voorwaarden behorend bij deze overeenkomst zijn terug te vinden op onze website www.gdfsuez.nl.
</td>
</tr>
<tr/> <tr/>
<tr >
<td width="16%"> Datum: </td>
<td> <b><xsl:value-of select="datumbegin/datum"/></b> </td>
</tr>
<tr>
<td width="16%"> Naam tekenbevoegde: </td>
<td> <b><xsl:value-of select="backoffice_contact/naam_friendly"/> </b> </td>
</tr>
<tr>
<td width="16%"> Handtekening: </td>
<td> </td>
</tr>
</table>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View File

@@ -4,6 +4,8 @@
password : 'pass@word1', // Let op: dat werkt alleen als ServerXMLHTTP denkt op intranet te zitten
maxchange : 25, // Maximaal 25 wijzigingen tegelijk. De rest komt de volgende keer wel
maxrecurring: 100, // Maximaal 1e 100 occurences van een recurring afspraak
fullpast : 0, // Tot 0 dagen in het verleden bij nachtelijke calendar-sync
fullfuture : 90, // Tot 90 dagen in de toekomst bij nachtelijke calendar-sync
xmlfolder : "./xml/", // Hier komen alle opgehaalde XML's geplaatst. Moet bestaan
loglevel : 0
}

View File

@@ -7,11 +7,15 @@
Description: Exchange EWS koppeling
Dit bestand maakt voor één ruimte-mailbox Arguments(0) de xml-bestanden
met calenderitems aan sinds de laatste sync-actie, Arguments(1)
Parameters (0) e-mail adres van de zaal
(1) - syncstate van de zaal of
"EXCHFULL" alles (in de toekomst tot config.fullfuture)
*/
var fso = new ActiveXObject("Scripting.FileSystemObject");
var zaalemail = WScript.Arguments(0);
var zaalsync = WScript.Arguments(1);
var zaalsync = WScript.Arguments(1); // Gebruik EXCHFULL voor alles in bepaalde periode
var inifile = ".\\exchange.config.js";
var f = fso.OpenTextFile(inifile, 1); // ForReading
@@ -23,10 +27,24 @@ WScript.Echo("Connecting to " + config.endpointurl)
// ---
// kunnen we niets mee doExchange(config.endpointurl, "<m:GetRoomLists />", "roomlist.xml");
if (!Date.prototype.toISOString) {
Date.prototype.toISOString = function() {
function pad(n) { return n < 10 ? '0' + n : n }
return this.getUTCFullYear() + '-'
+ pad(this.getUTCMonth() + 1) + '-'
+ pad(this.getUTCDate()) + 'T'
+ pad(this.getUTCHours()) + ':'
+ pad(this.getUTCMinutes()) + ':'
+ pad(this.getUTCSeconds()) + 'Z';
};
}
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var sha = oCrypto.hex_sha1(zaalsync); // Gemakkelijker verschillen te zien
WScript.Echo("\n\n==== Room: " + zaalemail + "\nOld sync hash: " + sha);
if (zaalsync != "EXCHFULL")
{
var soapRequest = '<m:SyncFolderItems'
+ ' xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" '
+ ' xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">'
@@ -35,11 +53,6 @@ var soapRequest = '<m:SyncFolderItems'
+ ' <t:AdditionalProperties>'
+ ' <t:FieldURI FieldURI="calendar:CalendarItemType" />'
+ ' <t:FieldURI FieldURI="calendar:Start" />'
// + ' <t:ExtendedFieldURI DistinguishedPropertySetId="Meeting" PropertyId="3" PropertyType="Binary" />' // 3=PidLidGlobalObjectId
// + ' <t:ExtendedFieldURI DistinguishedPropertySetId="Meeting" PropertyId="35" PropertyType="Binary" />' // 35=PidLidCleanGlobalObjectId
// + ' <t:ExtendedFieldURI DistinguishedPropertySetId="Meeting" PropertyId="40" PropertyType="Binary" />' // 40=PidLidOldLocation
// + ' <t:ExtendedFieldURI DistinguishedPropertySetId="Meeting" PropertyId="98" PropertyType="Binary" />' // 98=PidTagOwnerAppointmentId
// + ' <t:FieldURI FieldURI="calendar:Subject" />'
+ ' </t:AdditionalProperties>'
+ ' </m:ItemShape>'
+ ' <m:SyncFolderId>'
@@ -49,10 +62,40 @@ var soapRequest = '<m:SyncFolderItems'
+ ' </t:Mailbox>'
+ ' </t:DistinguishedFolderId>'
+ ' </m:SyncFolderId>'
+ ' <m:SyncState>' + zaalsync + '</m:SyncState> '
+ ' <m:SyncState>' + zaalsync + '</m:SyncState>'
+ ' <m:MaxChangesReturned>' + config.maxchange + '</m:MaxChangesReturned>'
+ ' <m:SyncScope>NormalItems</m:SyncScope>'
+ '</m:SyncFolderItems>';
}
else
{
var dtFrom = new Date();
dtFrom.setHours(0, 0, 0, 0);
var dtTo = new Date(dtFrom);
dtFrom.setDate(dtFrom.getDate() - config.fullpast);
dtTo.setDate(dtTo.getDate() + config.fullfuture);
WScript.Echo("Full syncing from " + dtFrom.toISOString() + " to " + dtTo.toISOString() + " (" + (config.fullfuture + config.fullpast) + " days)");
var soapRequest = '<m:FindItem Traversal="Shallow"'
+ ' xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" '
+ ' xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">'
+ ' <m:ItemShape>'
+ ' <t:BaseShape>IdOnly</t:BaseShape>'
+ ' <t:AdditionalProperties>'
+ ' <t:FieldURI FieldURI="calendar:CalendarItemType" />'
+ ' <t:FieldURI FieldURI="calendar:Start" />'
+ ' </t:AdditionalProperties>'
+ ' </m:ItemShape>'
//+ ' <m:CalendarView StartDate="2016-01-01T17:30:24.127Z" EndDate="2016-05-20T17:30:24.127Z" />'
+ ' <m:CalendarView StartDate="' + dtFrom.toISOString() + '" EndDate="' + dtTo.toISOString() + '" />'
+ ' <m:ParentFolderIds>'
+ ' <t:DistinguishedFolderId Id="calendar">'
+ ' <t:Mailbox>'
+ ' <t:EmailAddress>' + zaalemail + '</t:EmailAddress>'
+ ' </t:Mailbox>'
+ ' </t:DistinguishedFolderId>'
+ ' </m:ParentFolderIds>'
+ '</m:FindItem>';
}
var room_id = safefilename(zaalemail);
var exch = doExchange(config.endpointurl, soapRequest, null);
@@ -66,10 +109,14 @@ if (exch.response != 'NoError')
WScript.Echo("Geen NoError responsecode in response: " + exch.response);
WScript.Quit(1);
}
var newsyncstate = xmlDoc.selectSingleNode("//m:SyncState");
var sha = oCrypto.hex_sha1(newsyncstate.text); // Gemakkelijker verschillen te zien
WScript.Echo("New syncstate: " + newsyncstate.text + "\nHash: " + sha + "\nlength: " + newsyncstate.text.length);
if (zaalsync != "EXCHFULL")
{
var newsyncstate = xmlDoc.selectSingleNode("//m:SyncState");
var sha = oCrypto.hex_sha1(newsyncstate.text); // Gemakkelijker verschillen te zien
WScript.Echo("New syncstate: " + newsyncstate.text + "\nHash: " + sha + "\nlength: " + newsyncstate.text.length);
}
var calItems = xmlDoc.selectNodes("//t:CalendarItem");
if (calItems.length == 0)
{
@@ -118,6 +165,12 @@ for (var i = 0; i < calItems.length; i++)
fso.DeleteFile(config.xmlfolder + fname);
continue;
}
if (exch.response == 'ErrorAccessDenied')
{
WScript.Echo(" Access Denied negeren we");
fso.DeleteFile(config.xmlfolder + fname);
continue;
}
var start = xmlDoc.selectSingleNode("//t:Start").text;
var type = xmlDoc.selectSingleNode("//t:CalendarItemType").text;
WScript.Echo(" Start: " + start + " " + type);

View File

@@ -10,7 +10,7 @@
Parameters: (net als gen_import.wsf)
0: customerId
1: fac_import_app_key/code voor de EXCHANGE import
1: fac_import_app_key/code voor de EXCHANGE import of de EXCHFULL import
2: fac_import_app_key/code voor de EXCHSYNC import
*/
@@ -48,21 +48,28 @@ var sql = "SELECT res_ruimte_key,"
var oRs = Oracle.Execute(sql);
function pad(n) { return n < 10 ? '0' + n : n };
var dt = new Date();
var logfile = "Exchange_" + dt.getUTCFullYear() + '_' + pad(dt.getUTCMonth() + 1) + "_" + import_app_key + ".log";
var fbat = fso.CreateTextFile(batfile, true /* overwrite */);
while (!oRs.Eof)
{
var line = 'CScript /NoLogo ..\\..\\..\\utils\\Exchange\\Exchange.js "'
+ oRs("res_ruimte_extern_id").Value + '" "' + (oRs("res_ruimte_syncstate").Value||"") + '"';
+ oRs("res_ruimte_extern_id").Value + '" "' + (oRs("res_ruimte_syncstate").Value||"") + '"'
+ ' >>' + logfile + ' 2>>&1';
fbat.WriteLine(line);
var line = 'Cscript /NoLogo ..\\..\\..\\utils\\gen_import\\gen_import.wsf '
+ customerId + ' ' + sync_app_key + ' ' + oRs("res_ruimte_key").Value + '>>ExchangeAll.log 2>>&1';
+ customerId + ' ' + sync_app_key + ' ' + oRs("res_ruimte_key").Value + ' >>' + logfile + ' 2>>&1';
fbat.WriteLine(line);
oRs.MoveNext();
}
// E<>n import aan het eind; de room-id is toch uit de XML te halen
var line = 'Cscript /NoLogo ..\\..\\..\\utils\\gen_import\\gen_import.wsf '
+ customerId + ' ' + import_app_key + ' >>ExchangeAll.log 2>>&1';
+ customerId + ' ' + import_app_key + ' >>' + logfile + ' 2>>&1';
fbat.WriteLine(line);
fbat.Close();