Merge 2023.1 RC2 patches

svn path=/Website/trunk/; revision=59150
This commit is contained in:
Jos Groot Lipman
2023-02-14 14:23:07 +00:00
parent c2ac51af76
commit f829ca5743
46 changed files with 469 additions and 150 deletions

View File

@@ -53,6 +53,16 @@ __Log("== Entering shorturl.asp ==");
}
var keyparam = getQParamInt("k", -1);
if (u == "bezoeker" && keyparam > -1) {
// Er bestaat geen bezoeker weergave, wel een afspraak weergave waar je de bezoekers terug kunt zien, zoek de afspr_key erbij
var sql = "SELECT bez_afspraak_key FROM bez_bezoekers WHERE bez_bezoekers_key = " + keyparam;
var oRs = Oracle.Execute(sql);
if (!oRs.EoF) {
u = "afspraak";
keyparam = oRs("bez_afspraak_key").Value;
}
oRs.Close();
}
var locked_bdradr_key = getQParamInt("lbdr", -1);
if (locked_bdradr_key > 0)

View File

@@ -161,6 +161,12 @@ function model_aut_idp(params)
"label": L("aut_idp_internal"),
"typ": "check0",
"readonly": true
},
"created": {
"dbs": "aut_idp_aanmaak",
"label": L("aut_idp_aanmaak"),
"typ": "date",
"readonly": true
}
}
this.includes =

View File

@@ -98,6 +98,12 @@ function model_aut_sp(params)
"label": L("aut_sp_internal"),
"typ": "check0",
"readonly": true
},
"created": {
"dbs": "aut_sp_aanmaak",
"label": L("aut_sp_aanmaak"),
"typ": "date",
"readonly": true
}
}

View File

@@ -101,7 +101,7 @@ function model_mld_stdmelding_srtinst(params)
"label": L("ins_srtinstallatie_discipline"),
"typ": "key",
"foreign": {
"tbl": "ins_discipline",
"tbl": "ins_v_aanwezigdiscipline",
"key": "ins_discipline_key",
"desc": "ins_discipline_omschrijving"
},
@@ -111,7 +111,7 @@ function model_mld_stdmelding_srtinst(params)
"dbs": "ins_v_allsrtinstallatie.ins_srtgroep_key",
"label": L("ins_srtinstallatie_srtgroep"),
"typ": "key",
"foreign": { "tbl": "ins_srtgroep",
"foreign": { "tbl": "ins_v_aanwezigsrtgroep",
"key": "ins_srtgroep_key",
"desc": "ins_srtgroep_omschrijving"
}
@@ -120,7 +120,7 @@ function model_mld_stdmelding_srtinst(params)
"dbs": "ins_v_allsrtinstallatie.ins_srtdeel_key",
"label": L("ins_srtinstallatie_srtdeel"),
"typ": "key",
"foreign": { "tbl": "ins_srtdeel",
"foreign": { "tbl": "ins_v_aanwezigsrtdeel",
"key": "ins_srtdeel_key",
"desc": "ins_srtdeel_omschrijving"
}

View File

@@ -23,6 +23,28 @@ function model_prs_bedrijfdienstlocatie()
this.record_title = L("lcl_prs_dienst_scope");
this.records_title = L("lcl_prs_dienst_scope");
// Aan welke wergever(s) is het bedrijf (van de contactpersoon) gekoppeld.
var sql_bedrijf = (prs_key > 0
? " (SELECT prs_bedrijf_key"
+ " FROM prs_contactpersoon"
+ " WHERE prs_perslid_key = " + prs_key
+ " AND prs_contactpersoon_verwijder IS NULL)"
: bedrijf_key);
var sql_bedrijf_bedrijf = "SELECT b.prs_bedrijf_key"
+ " , b.prs_bedrijf_naam"
+ " FROM prs_bedrijf b"
+ " , prs_bedrijf_bedrijf bb"
+ " WHERE b.prs_bedrijf_key = bb.prs_bedrijf_key1"
+ " AND bb.prs_bedrijf_key2 = " + sql_bedrijf
+ " UNION "
+ "SELECT b.prs_bedrijf_key"
+ " , b.prs_bedrijf_naam"
+ " FROM prs_bedrijf b"
+ " , prs_bedrijf_bedrijf bb"
+ " WHERE b.prs_bedrijf_key = bb.prs_bedrijf_key2"
+ " AND bb.prs_bedrijf_key1 = " + sql_bedrijf;
this.fields = {
"id": {
"dbs": "prs_bedrijfdienstlocatie_key",
@@ -108,26 +130,8 @@ function model_prs_bedrijfdienstlocatie()
"insertonly": true,
"foreign": {
"tbl": "(SELECT DISTINCT prs_bedrijf_key"
+ " , prs_bedrijf_naam"
+ " FROM (SELECT b.prs_bedrijf_key"
+ " , b.prs_bedrijf_naam"
+ " FROM prs_bedrijf b"
+ " , prs_bedrijf_bedrijf bb"
+ " WHERE b.prs_bedrijf_key = bb.prs_bedrijf_key1"
+ " AND b.prs_bedrijf_key = (SELECT prs_bedrijf_key"
+ " FROM prs_contactpersoon"
+ " WHERE prs_perslid_key = " + user_key
+ " AND prs_contactpersoon_verwijder IS NULL)"
+ " UNION"
+ " SELECT b.prs_bedrijf_key"
+ " , b.prs_bedrijf_naam"
+ " FROM prs_bedrijf b"
+ " , prs_bedrijf_bedrijf bb"
+ " WHERE b.prs_bedrijf_key = bb.prs_bedrijf_key2"
+ " AND b.prs_bedrijf_key = (SELECT prs_bedrijf_key"
+ " FROM prs_contactpersoon"
+ " WHERE prs_perslid_key = " + user_key
+ " AND prs_contactpersoon_verwijder IS NULL)))",
+ " , prs_bedrijf_naam"
+ " FROM (" + sql_bedrijf_bedrijf + "))",
"key": "prs_bedrijf_key",
"desc": "prs_bedrijf_naam",
"multiselect": true,
@@ -155,6 +159,23 @@ function model_prs_bedrijfdienstlocatie()
// Als "Alles" (ook) is geselecteerd dan alleen de waarde -1 nodig voor forcompany.
if (!obj.forcompany || obj.forcompany.join(",").indexOf("-1") != -1)
obj.forcompany = [-1];
else
{ // Als nu met deze nieuwe waard(en) alles is geselecteerd, dan kan alleen de waarde "Alles" geselecteerd worden.
// prs_key is gelijk aan obj.service, dus ik kan sql_bedrijf_bedrijf gebruiken (die prs_key gebruikt).
var sql = "SELECT b.prs_bedrijf_key"
+ " , b.prs_bedrijf_naam"
+ " FROM (SELECT DISTINCT prs_bedrijf_key"
+ " , prs_bedrijf_naam"
+ " FROM (" + sql_bedrijf_bedrijf + ")) b"
+ " WHERE b.prs_bedrijf_key NOT IN (SELECT COALESCE(bdl.prs_bedrijf_voor_key, -1)"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_dienst_key = " + obj.service
+ " AND bdl.prs_perslid_key = " + obj.person + ")"
+ " AND b.prs_bedrijf_key NOT IN (" + obj.forcompany.join(",") + ")";
var oRs = Oracle.Execute(sql);
if (oRs.eof)
obj.forcompany = [-1];
}
// Diensten bij (contact)persoon. Bedrijf is niet gedefinieerd.
if (obj.company == undefined && obj.forcompany[0] == -1)
@@ -166,7 +187,7 @@ function model_prs_bedrijfdienstlocatie()
abort_with_warning(err.friendlyMsg);
}
// Diensten bij bedrijf. Persoon is niet gedefinieerd.
else if (obj.person == undefined && obj.forcompany.join(",").indexOf("-1") != -1)
else if (obj.person == undefined && obj.forcompany[0] == -1)
{ // "Alles" is geselecteerd voor selectbox "Voor opdrachtgever/bedrijf".
// Alle bestaande entries verwijderen.
var sql = "DELETE FROM prs_bedrijfdienstlocatie WHERE prs_bedrijf_key = " + obj.company + " AND prs_dienst_key = " + obj.service;
@@ -202,36 +223,19 @@ function model_prs_bedrijfdienstlocatie()
fld.duration.readonly = true;
}
// Als de dienst voor alles geldt, dan kun je de dienst niet meer toevoegen.
fld.service.foreign.where = " prs_dienst_key NOT IN (SELECT bdl.prs_dienst_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_perslid_key = " + prs_key
+ " AND bdl.prs_bedrijf_voor_key IS NULL)"
+ " AND EXISTS (SELECT bb.prs_bedrijf_key"
+ " , bb.prs_bedrijf_naam"
+ " FROM (SELECT b.prs_bedrijf_key"
+ " , b.prs_bedrijf_naam"
+ " FROM prs_bedrijf b"
+ " , prs_bedrijf_bedrijf bb"
+ " WHERE b.prs_bedrijf_key = bb.prs_bedrijf_key1"
+ " AND b.prs_bedrijf_key = (SELECT prs_bedrijf_key"
+ " FROM prs_contactpersoon"
+ " WHERE prs_perslid_key = " + prs_key
+ " AND prs_contactpersoon_verwijder IS NULL)"
+ " UNION"
+ " SELECT b.prs_bedrijf_key"
+ " , b.prs_bedrijf_naam"
+ " FROM prs_bedrijf b"
+ " , prs_bedrijf_bedrijf bb"
+ " WHERE b.prs_bedrijf_key = bb.prs_bedrijf_key2"
+ " AND b.prs_bedrijf_key = (SELECT prs_bedrijf_key"
+ " FROM prs_contactpersoon"
+ " WHERE prs_perslid_key = " + prs_key
+ " AND prs_contactpersoon_verwijder IS NULL)) bb"
+ " WHERE bb.prs_bedrijf_key NOT IN (SELECT bdl.prs_bedrijf_voor_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_perslid_key = " + prs_key
+ " AND bdl.prs_dienst_key = prs_dienst.prs_dienst_key))";
if (prs_key > 0)
// Als de dienst voor alles geldt, dan kun je de dienst niet meer toevoegen.
fld.service.foreign.where = " prs_dienst_key NOT IN (SELECT bdl.prs_dienst_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_perslid_key = " + prs_key
+ " AND bdl.prs_bedrijf_voor_key IS NULL)"
+ " AND EXISTS (SELECT bedr.prs_bedrijf_key"
+ " , bedr.prs_bedrijf_naam"
+ " FROM (" + sql_bedrijf_bedrijf + ") bedr"
+ " WHERE bedr.prs_bedrijf_key NOT IN (SELECT bdl.prs_bedrijf_voor_key"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_perslid_key = " + prs_key
+ " AND bdl.prs_dienst_key = prs_dienst.prs_dienst_key))";
}
this.hook_pre_delete = function(params, key)

View File

@@ -423,6 +423,13 @@ function report_GET(params)
params.groupby = this.list.groupby;
}
if (params.filter.aswidget) {
// Pak dan de default columns/groupby/graph_type
def(params.filter, "columns", params.columns.join(","));
def(params.filter, "groupby", params.groupby.join(","));
def(params.filter, "scf_graph_type", (this.list.autoGraph & 2) ? this.graph_type : 0);
}
var groupbys = [];
var hasAggregate = false; // Als er uitsluitend GROUP BY is zonder ook maar een enkele
// aggregate functie zouden effectief dubbelen verwijderd worden.

View File

@@ -421,6 +421,13 @@ function model_res_ruimte()
});
if (oldExternalID) {
if (hook.subscription(oldExternalID, res_ruimte_key, "D")) {
// Maak nu ook de res_ruimte_syncstate en res_ruimte_syncdate in de res_ruimte_sync tabel leeg
var sql = "UPDATE res_ruimte_sync SET res_ruimte_syncstate = NULL, res_ruimte_syncdate = NULL WHERE res_ruimte_key = " + res_ruimte_key;
Oracle.Execute(sql);
// En ook de res_ruimte_externsyncdate en res_ruimte_graphhooksecret uit de res_ruimte tabel
var sql = "UPDATE res_ruimte SET res_ruimte_externsyncdate = NULL, res_ruimte_graphhooksecret = NULL WHERE res_ruimte_key = " + res_ruimte_key;
Oracle.Execute(sql);
__DoLog("MS Graph subscription deleted for res_ruimte (" + res_ruimte_key + ") with Extern ID: " + oldExternalID, "#FF4");
} else {
__DoLog("Error: Failed to delete MS Graph subscription for res_ruimte (" + res_ruimte_key + ") with Extern ID: " + oldExternalID, "#FF0000");

View File

@@ -45,6 +45,7 @@ function withinTimeRange(_date) {
}
var canChange = true;
if (0)
if (afspraak_key == -1)
{
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key"); // dan moet deze er zijn
@@ -55,16 +56,19 @@ if (afspraak_key == -1)
if (!oRs.eof)
{
afspraak_key = oRs("bez_afspraak_key").Value;
var sql_r = "SELECT rrr.res_rsv_ruimte_van"
var sql_r = "SELECT rrr.res_rsv_ruimte_externnr"
+ " , rrr.res_rsv_ruimte_van"
+ " FROM res_rsv_ruimte rrr"
+ " WHERE rrr.res_rsv_ruimte_key = " + rsv_ruimte_key;
var oRs_r = Oracle.Execute(sql_r);
canChange = withinTimeRange(oRs_r("res_rsv_ruimte_van").Value);
canChange = oRs_r("res_rsv_ruimte_externnr").Value == null || withinTimeRange(oRs_r("res_rsv_ruimte_van").Value);
oRs_r.Close();
}
else
else // Eerste bezoeker bij een reservering niet toestaan voor externe reserveringen
{
sql = "SELECT rrr.res_rsv_ruimte_van"
sql = "SELECT rr.res_ruimte_extern_id"
+ " , rrr.res_rsv_ruimte_externnr"
+ " , rrr.res_rsv_ruimte_van"
+ " FROM res_rsv_ruimte rrr"
+ " , res_ruimte_opstelling ro"
+ " , res_ruimte rr"
@@ -72,7 +76,7 @@ if (afspraak_key == -1)
+ " AND rr.res_ruimte_key = ro.res_ruimte_key"
+ " AND rrr.res_rsv_ruimte_key = " + rsv_ruimte_key;
var oRs2 = Oracle.Execute(sql);
if (!oRs2.Eof && !withinTimeRange(oRs2("res_rsv_ruimte_van").Value))
if (!oRs2.Eof && ((oRs2("res_ruimte_extern_id").Value != null || oRs2("res_rsv_ruimte_externnr").Value != null)) && !withinTimeRange(oRs2("res_rsv_ruimte_van").Value))
canChange = false;
oRs2.Close();
}

View File

@@ -446,6 +446,7 @@ SEARCH_BLOCK_START();
{ label: L("lcl_cnt_referencedate"),
initEmpty: true,
trclass: "secsearch noxd",
minFuture: 0,
timeField: false
});

View File

@@ -30,10 +30,10 @@ JSON_Result = true;
var colurl = getQParam("colurl", null);
var xxx_params = { filter : shared.qs2json(rapport), columns: [coltitle], groupby: [] };
if (!xxx_params.filter.start_van && !xxx_params.filter.end_van) {
if (!xxx_params.filter.van && !xxx_params.filter.start_van && !xxx_params.filter.end_van) {
xxx_params.filter.start_van = date_from;
}
if (!xxx_params.filter.start_tot && !xxx_params.filter.end_tot) {
if (!xxx_params.filter.tot && !xxx_params.filter.start_tot && !xxx_params.filter.end_tot) {
xxx_params.filter.end_tot = date_to;
}
xxx_params.filter.showall = 1;
@@ -51,9 +51,9 @@ JSON_Result = true;
{
fclturl = data[colurl];
}
else if (rapport.list.default_url)
else if (rapport.list.default_url && "id" in data)
{
fclturl = rapport.list.default_url + data.id;
fclturl = rapport.list.default_url.format(data.id);
}
calresult.push({ title: data.title,

View File

@@ -73,7 +73,6 @@ prs.checkAutorisation(prs_key);
|| xfunc.canWrite("WEB_PRSUSE"));
var prsauthparams = prs.checkAutorisation(prs_key);
var canImpers = prsauthparams.writetab || (S("prs_allow_impersonate") && prsauthparams.writesys);
var thisUser = new Perslid(prs_key); // geeft ook alle informatie
var sql = "SELECT COUNT(*)"
@@ -82,7 +81,7 @@ prs.checkAutorisation(prs_key);
var oRs = Oracle.Execute(sql);
var hasAppRegistrations = oRs(0).Value;
oRs.Close()
%>
%>
<script type="text/javascript">
function user_info_close(params)
{
@@ -94,7 +93,7 @@ prs.checkAutorisation(prs_key);
<body>
<%
PAGE_START();
var page="fac_show_user_info.asp?prs_key=" + prs_key;
IFRAMER("user_info_frame", page, { FcltClose: "user_info_close", icon: "fa-bookmark", title: (itsme ? L("lcl_prs_person_mijndata") : safe.jsstring(thisUser.naam())) } );

View File

@@ -4708,9 +4708,7 @@ ins = {checkAutLevel:
? " AND EXTRACT(YEAR FROM comp.ins_deelsrtcontrole_freezedate) = " + mjb_freeze_year
: "")
+ " )"
+ ((new Date()).getFullYear() > mjb_freeze_year
? " OR (vervangingsjaar < EXTRACT(YEAR FROM SYSDATE) AND comp.ins_deelsrtcontrole_status = 0)"
: "")
+ " OR (vervangingsjaar < EXTRACT(YEAR FROM SYSDATE) AND comp.ins_deelsrtcontrole_status = 0)"
+ " )"
+ " UNION "
+ sql_yearcost_select2 // Inspecties die wel of niet succesvol zijn afgerond.

View File

@@ -265,6 +265,7 @@ if (!catclose && ins_key_arr.length == 1)
oRs = Oracle.Execute(sql);
var desc = oRs("ins_deel_omschrijving").Value;
var sort = oRs("ins_srtdeel_omschrijving").Value;
var group = oRs("ins_srtgroep_omschrijving").Value;
oRs.Close();
}
%>
@@ -637,10 +638,19 @@ if (!catclose && ins_key_arr.length == 1)
BLOCK_START("insMultiEdit", blocktext , {icon: "fa-calendar-check"});
if (!catclose && ins_key_arr.length == 1)
{
ROFIELDTR("fld", L("lcl_obj_sort"), sort );
ROFIELDTR("fld", L("lcl_obj_group"), group);
ROFIELDTR("fld", L("lcl_obj_sort"), sort);
}
if (!catclose && !multi)
{ // Inspecteren van <20><>n object met <20><>n of meerdere soortcontroles
var sql = "SELECT " + lcl.xsqla("d.ins_discipline_omschrijving", "d.ins_discipline_key")
+ " FROM ctr_v_aanwezigdiscipline d"
+ " WHERE d.ins_discipline_key = " + ctrdisc_key;
var oRs = Oracle.Execute(sql);
var ctrdisc_omschr = oRs("ins_discipline_omschrijving").Value;
oRs.Close();
ROFIELDTR("fld", L("ctr_discipline"), ctrdisc_omschr);
var sql = "SELECT xcp.ins_srtcontrole_key"
+ " , " + lcl.xsqla('xcp.ins_srtcontrole_omschrijving', 'xcp.ins_srtcontrole_key')
+ " , xcp.ins_srtcontrole_info info"

View File

@@ -254,7 +254,7 @@ var FcltMgr = {
get_tabdata: function($tab, saveRel)
{ // Hier komen alleen nieuwe items
let result = {};
result.ttl = $tab.find("span:first").attr("ttl") || $(a).find("span:first").text();
result.ttl = $tab.find("span:first").attr("ttl") || $tab.find("span:first").text();
const target = $tab.find("a").attr("href");
const $iframe = $(target.slice(target.lastIndexOf("#")));

View File

@@ -93,7 +93,7 @@ mld = {
return child_arr;
},
updatechilds:
updatechildren:
function (child_arr, parentparams)
{ // Zijn er wel child meldingen en is er wel een veld aan te passen?
var saveBehandelteam = parentparams.saveBehandelteam;
@@ -1783,6 +1783,8 @@ mld = {
var showIndult = params.indult;
var datefrom = params.datefrom;
var dateto = params.dateto;
var enddatefrom = params.enddatefrom;
var enddateto = params.enddateto;
var groepering_key = params.groepering_key;
// JGL: Volgens mij komen 2 en 16 hier nooit, die zijn naar opdr_list geleid
var toon_opdr_overz = (groepering_key == 2 || groepering_key == 10 || groepering_key == 11 || groepering_key == 16 || groepering_key == 17);
@@ -2337,6 +2339,33 @@ mld = {
else
sqln += " AND m.mld_melding_datum < " + ora_date2;
}
if (enddatefrom && enddateto)
{
var ora_date1 = enddatefrom.toSQL(true);
var ora_date2 = enddateto.toSQL(true);
if (toon_opdr_overz)
sqln += " AND o.mld_opdr_einddatum BETWEEN " + ora_date1 + " AND " + ora_date2;
else
sqln += " AND m.mld_melding_einddatum BETWEEN " + ora_date1 + " AND " + ora_date2;
}
else if (enddatefrom)
{
var ora_date1 = enddatefrom.beginToSQL();
if (toon_opdr_overz)
sqln += " AND o.mld_opdr_einddatum >= " + ora_date1;
else
sqln += " AND m.mld_melding_einddatum >= " + ora_date1;
}
else if (enddateto)
{
var ora_date2 = enddateto.endToSQL();
if (toon_opdr_overz)
sqln += " AND o.mld_opdr_einddatum < " + ora_date2;
else
sqln += " AND m.mld_melding_einddatum < " + ora_date2;
}
// check for web_mlduse rights on discipline when public
if (public == 1)
{
@@ -5799,9 +5828,6 @@ mld = {
if (!oRs.eof)
Response.Write("<br>");
}
%>
<tr><td class="label"><span class="<%=clikker?"details":""%>" <%=clikker%>><%=L("lcl_mld_objects")%></span></td><td>
<%
Response.Write("</td>");
Response.Write("</tr>");
}

View File

@@ -630,7 +630,7 @@ if (savemode)
{
// Array child_arr_cont is alleen gevuld bij het opslaan van een vervolgmelding. Dan hier maar een nieuwe array vullen/bepalen.
var child_arr = mld.getchildmeldingen(mld_key);
mld.updatechilds(child_arr, parentparams);
mld.updatechildren(child_arr, parentparams);
}
if (S("mld_rejected_is_open") && old_mld_status == 1) {

View File

@@ -600,9 +600,11 @@ if (mld_opdr.kp_key == -1)
label: L("lcl_contact_pers"),
suppressEmpty: true,
locatiekey: mld_melding.loc_key,
gebouwkey: mld_melding.bld_key,
aanvragerkey: mld_melding.melder_key,
filtercode: "U",
urlAdd: [{urlParam: "uitv_key", field: "uitvoerende"},
{urlParam: "dienst", field: "dienstfilt"}],
{urlParam: "dienst_key", field: "dienstfilt"}],
onChange: "onChangePers",
moreinfo: !frontend,
readonly: (opdr_key > 0 && !this_opdr.canVeldChange)

View File

@@ -409,6 +409,21 @@ else
mld.trackmeldingupdate(mld_key, L("lcl_mld_is_mldupdtrack").format(formattedID) + "\n" + mldUpd.trackarray.concat(flexdoctrack).concat(flextrack).join("\n"));
}
// Als er child meldingen zijn, dan volgen het behandelteam en de behandelaar2 van de child die van de parent.
// Eerst nagaan of beide velden zijn gewijzigd.
var parentparams = {saveBehandelteam: old_mld_disc != new_mld_disc,
saveBehandelaar2: old_beh2 != new_beh2,
behandelteam_key: new_mld_disc,
behandelaar2_key: new_beh2
};
// Nu de childmeldingen als het behandelteam en/of de behandelaar2 zijn gewijzigd.
if (parentparams.saveBehandelteam || parentparams.saveBehandelaar2)
{
var child_arr = mld.getchildmeldingen(mld_key);
mld.updatechildren(child_arr, parentparams);
}
// Met status = 5 (afgemeld) zitten we in de uitzonderlijke situatie dat iemand achteraf
// nog adminstratief de melding corrigeerd. Dan blijven we wel van de status af.
if (has_new_stdm && mld_melding.mld_status != 5)

View File

@@ -75,6 +75,8 @@ function mld_list (pautfunction, params)
// params.chkAfgerond : boolean
// params.datefrom : date
// params.dateto : date
// params.enddatefrom : date
// params.enddateto : date
// params.offertes : boolean
// params.meldbron_key : key
// params.ingevoerd : String ingevoerd door: "fe", "fo" of -1 voor beide

View File

@@ -292,7 +292,7 @@ if (mld_key == -1 || copy)
var buttons = [];
// Give the user a list and let him select a srtdiscipline.
mySRTsql = mld.srtdisc_sql({ ins_key: ins_key, ref_type: ref_type });
oRs = Oracle.Execute(mySRTsql);
var oRs = Oracle.Execute(mySRTsql);
var authorized_srtdisc;
while (!oRs.eof)
{
@@ -303,11 +303,12 @@ if (mld_key == -1 || copy)
authorized_srtdisc = srtdisc_key;
buttons.push({ title: oRs("ins_srtdiscipline_omschrijving").value,
icon: "fa-angle-right",
action: "srtdisc=" + srtdisc_key + ";$('div#dmodal').dialog('close').remove();"
action: "srtdisc_key=" + srtdisc_key + ";$('div#dmodal').dialog('close').remove();"
});
}
oRs.MoveNext();
}
oRs.Close();
if (buttons.length == 0)
{

View File

@@ -178,6 +178,8 @@ todate.setSeconds(59); // consistent met calendar onClick
var date_from = (datefrom ? datefrom : fromdate);
var date_to = (dateto ? dateto : todate);
var enddate_from = getQParamDate("enddate_from", null);
var enddate_to = getQParamDate("enddate_to", null);
var fcltfilters_data = (fcltfilters ? JSON.parse(fcltfilters) : null);
@@ -1028,23 +1030,38 @@ oRs.close();
SEARCH_BLOCK_END();
// Start responsive search_column 2
SEARCH_BLOCK_START();
%>
<!-- Datum van -->
<% FCLTcalendar("date_from",
// Datum van
FCLTcalendar("date_from",
{ label : L("lcl_period_from"),
datum: date_from,
initEmpty: (datefrom_empty ? true : false),
trclass: (frontend || minfo ? "primsearch" : "secsearch"),
volgnr: 1
}); %>
<!-- Datum tot -->
<% FCLTcalendar("date_to",
});
// Datum tot
FCLTcalendar("date_to",
{ label: L("lcl_period_to"),
datum: date_to,
initEmpty: (dateto_empty ? true : false),
trclass: (frontend || minfo ? "primsearch" : "secsearch"),
volgnr: 2
});
// Einddatum van
FCLTcalendar("enddate_from",
{ label : L("lcl_end_date_plan") + " " + L("lcl_from").toLowerCase(), // TODO LCL -> L("lcl_end_date_plan_from")
datum: enddate_from,
initEmpty: true,
trclass: "secsearch",
volgnr: 1
});
// Einddatum tot
FCLTcalendar("enddate_to",
{ label: L("lcl_end_date_plan") + " " + L("lcl_through"), // TODO LCL -> L("lcl_end_date_plan_to")
datum: enddate_to,
initEmpty: true,
trclass: "secsearch",
volgnr: 2
});
if (!justClose && backo)
{
// Referentie type

View File

@@ -173,6 +173,8 @@ else
var datefrom = getQParamDate("date_from", null); // Periode van
var dateto = getQParamDate("date_to", null); // Perdiode tot
var enddatefrom = getQParamDate("enddate_from", null); // Periode van
var enddateto = getQParamDate("enddate_to", null); // Perdiode tot
var deel_key = getQParamInt("ins_key", -1); // Komt niet uit mld_search.asp, maar als dit de enige is maak ik er geen mld_list.asp voor
var deelsrtcont_key = getQParamInt("deelsrtcont_key", -1);
@@ -224,6 +226,8 @@ else
params.actiecodeATT = (getQParamInt("has_actiecodeATT", 0) == 1) && (getQParam("actiecodeATT", "off") == "on");
params.datefrom = datefrom;
params.dateto = dateto;
params.enddatefrom = enddatefrom;
params.enddateto = enddateto;
params.srt_tracking = getQParamArray("srt_tracking", null);
params.prs_tracking = getQParamInt("prs_tracking", null);
params.actiondatefrom = getQParamDate("actiondate_from", null);

View File

@@ -329,7 +329,7 @@ function mld_afrond()
function mld_afrond_callback(json)
{
if (json.success)
fn_mld_melding_reload(/* global */ mld_key);
mld_melding_reload(/* global */ mld_key);
else if (json.error == 1) // 1 = verplicht kenmerk ontbreekt
mld_change(/* global */ urole);
}

View File

@@ -52,6 +52,7 @@ var theparams = { urole: urole,
behandel_key_arr: (behandel_key != -1 ? [behandel_key] : []),
srtdisc_key_arr : (srtdisc_key != -1 ? [srtdisc_key] : []),
search: getQParam("search", null),
bosort: S("mld_ord_bo_sort_descending"),
loc_key_arr: loc_key_arr,
bld_key_arr: bld_key_arr,
prs_key: getQParamInt("prs_key", null),

View File

@@ -341,8 +341,7 @@ var subject = L("lcl_cnt_contract") + " " + cnt_info.nummer_intern+ (cnt_info.ve
// (de close-knop die hier stond bestaat voor contracten helemaal niet)
trackinglines = mobile.hastrackingpage('contract', cnt_key);
if (trackinglines > 0)
{
if (trackinglines > 0) {
BUTTON(L("lcl_history"), {linkid: "#cnt-2-" + cnt_key, dataicon: "fa fa-list"});
}
@@ -351,7 +350,9 @@ var subject = L("lcl_cnt_contract") + " " + cnt_info.nummer_intern+ (cnt_info.ve
BUTTON(L("lcl_cnt_frame_notes")+" ("+toRs(0).value+")", {linkid: "./notitie.asp?node=contract&key="+cnt_key, dataicon: "fa fa-comment", dataajax: 'false'});
toRs.close();
BUTTON(L("lcl_print"), {click: "cnt_print()", dataicon: "fa fa-print"});
if (!Session("app_build")) {
BUTTON(L("lcl_print"), {click: "cnt_print()", dataicon: "fa fa-print"});
}
if (cnt_info.srtcontract_type == 6)
{

View File

@@ -226,7 +226,7 @@ div.subheader {
font-size: small;
white-space:normal; /* Wordwrap gewenst in listviews */
}
.pda_list_icon,
.pda-list-icon,
.ui-listview .ui-li-has-thumb > img:first-child,
.ui-listview .ui-li-has-thumb > .ui-btn > img:first-child {
position: absolute;
@@ -279,7 +279,13 @@ h3.c1 {
#newstable li {
background-color: var(--mobilebackgroundcolor); /* same as menu */
}
#newstable .portalnewstext {
#newstable > li h3 { /* Nieuws titel */
display: inline-flex;
align-items: center;
white-space: normal;
gap: 1em; /* Ruimte voor het icoontje */
}
#newstable .portalnewstext { /* Nieuwsbericht */
font-size: smaller;
white-space:normal;
}

View File

@@ -1423,7 +1423,9 @@ if (action != "forward")
toRs = Oracle.Execute(tsql);
BUTTON(L("lcl_mld_frame_notes")+" ("+toRs(0).Value + ")", {linkid: rooturl + "/appl/pda/notitie.asp?node=melding&urole=" + urole + "&key=" + mld_key, dataicon: "fa fa-comment", dataajax: "false"});
toRs.close();
BUTTON(L("lcl_print"), {click: "mld_print()", dataicon: "fa fa-print"});
if (!Session("app_build")) {
BUTTON(L("lcl_print"), {click: "mld_print()", dataicon: "fa fa-print"});
}
}
if (ruimte_key > -1 && user.checkAutorisation( "WEB_ALGUSE", true)) {
var rsql = "SELECT 1 from alg_ruimte WHERE alg_ruimte_nr NOT LIKE '\\_%' ESCAPE '\\' and alg_ruimte_key = " + ruimte_key

View File

@@ -177,11 +177,13 @@ var plaats_key = oRs("plaats_key").Value;
var plaats_niveau = oRs("plaats_niveau").Value;
oRs.close();
var ins_keys_arr = [];
var ins_name_arr = [];
var thereAreObjects = false;
var thereAreMultipleObjects = false;
if (mld_melding.show_ins)
{
// Haal gerelateerde objecten op.
var ins_keys_arr = [];
var ins_name_arr = [];
sql = "SELECT d.ins_deel_key"
+ " , " + ( S("ins_element_description") == ""
? "d.ins_deel_omschrijving || ' (' || " + lcl.xsql("s.ins_srtdeel_omschrijving", "s.ins_srtdeel_key") + " || ')' "
@@ -205,8 +207,8 @@ if (mld_melding.show_ins)
oRso.MoveNext();
}
oRso.Close();
var thereAreObjects = (ins_keys_arr.length > 0);
var thereAreMultipleObjects = (ins_keys_arr.length > 1);
thereAreObjects = (ins_keys_arr.length > 0);
thereAreMultipleObjects = (ins_keys_arr.length > 1);
}
%>
@@ -724,6 +726,10 @@ if (mld_melding.show_ins)
{ contactpersoonKey: mld_opdr.contactpersuitv_key,
label: L("lcl_contact_pers"),
filtercode: "U",
locatiekey: mld_info.loc_key,
gebouwkey: mld_info.bld_key,
aanvragerkey: mld_info.melder_key,
urlAdd: [{urlParam: "uitv_key", field: "uitvoerende"}],
suppressEmpty: true,
readonly: true
});
@@ -1128,8 +1134,9 @@ if (mld_melding.show_ins)
toRs = Oracle.Execute(tsql);
BUTTON(L("lcl_mld_frame_notes") + " (" + toRs(0).value + ")", {linkid: rooturl+"/appl/pda/notitie.asp?node=opdracht&key="+opdr_key, dataicon: "fa fa-comment", dataajax: "false"});
toRs.Close();
BUTTON(L("lcl_print"), {click: "opdr_print()", dataicon: "fa fa-print"});
if (!Session("app_build")) {
BUTTON(L("lcl_print"), {click: "opdr_print()", dataicon: "fa fa-print"});
}
}
if (this_mld.canAddOpdr)

View File

@@ -57,6 +57,7 @@ function portalnews(ploc, pgeb, pshowInt)
}
sqln += " ORDER BY fac_nieuws_van ASC";
}
function fnNieuwsOmschrijving (oRs)
{
if (S("fac_html_strictness") == 1)
@@ -71,10 +72,21 @@ function portalnews(ploc, pgeb, pshowInt)
return (oRs("fac_nieuws_omschrijving").Value? "<div class='portalnewstext'>" + safe_oms + "</div>" : "");
}
function fnNieuwsTitel (oRs) {
var titel = oRs("fac_nieuws_titel").Value;
if (S("fac_html_strictness") == 1) {
titel = safe.html(titel);
}
var icon = oRs("fac_nieuws_image").Value;
if (icon && icon.match(/^fa-/)) {
titel = I(icon + " fa-2x") + titel;
}
return titel;
}
var rst = new ResultsetTable({sql: sqln,
headerColumn: "fac_nieuws_titel",
headerColumn: fnNieuwsTitel,
subheaderColumn: fnNieuwsOmschrijving,
iconColumn: "fac_nieuws_image",
ID: "newstable",
emptySetString: "",
noSearch: true,

View File

@@ -249,12 +249,12 @@ function __rsMakeTableRow(oRs, cnt)
if (icon) {
if (icon.match(/^fa-/))
{
line += '<span class="pda_list_icon">' + I(icon + " fa-2x") + '</span>';
line += '<span class="pda-list-icon">' + I(icon + " fa-2x") + '</span>';
addedI = true;
}
else if (icon.match(/^</)) // safe html, bv een <div> of <i>
{
line += '<span class="pda_list_icon">' + icon + '</span>';
line += '<span class="pda-list-icon">' + icon + '</span>';
addedI = true;
}
else

View File

@@ -41,6 +41,10 @@ if (prs_inzetbaar_key > -1)
+ " , pi.prs_perslid_inzetbaar_van"
+ " , pi.prs_perslid_inzetbaar_tot"
+ " , pi.prs_perslid_inzetbaar_dag"
+ " , pi.prs_perslid_inzetbaar_plaats"
+ " , pi.prs_perslid_inzetbaar_plaats_x"
+ " , pi.prs_perslid_inzetbaar_plaats_y"
+ " , pi.prs_perslid_inzetbaar_radius"
+ " FROM prs_perslid_inzetbaar pi"
+ " WHERE pi.prs_perslid_inzetbaar_key = " + prs_inzetbaar_key;
var oRs = Oracle.Execute(sql);
@@ -49,6 +53,10 @@ if (prs_inzetbaar_key > -1)
prs_inzetbaar_van = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, oRs("prs_perslid_inzetbaar_van").value);
prs_inzetbaar_tot = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, oRs("prs_perslid_inzetbaar_tot").value);
prs_inzetbaar_dag = oRs("prs_perslid_inzetbaar_dag").value;
prs_perslid_inzetbaar_plaats = oRs("prs_perslid_inzetbaar_plaats").value;
prs_perslid_inzetbaar_plaats_x = oRs("prs_perslid_inzetbaar_plaats_x").value;
prs_perslid_inzetbaar_plaats_y = oRs("prs_perslid_inzetbaar_plaats_y").value;
prs_perslid_inzetbaar_radius = oRs("prs_perslid_inzetbaar_radius").value;
oRs.Close();
}
@@ -168,6 +176,12 @@ if (!prs.checkAutorisation(prs_perslid_key).writecontact)
volgnr: 2,
hidden: true // de *datum* is dan verborgen, tijd blijft zichtbaar
});
ROFIELDTR("fld", "", prs_perslid_inzetbaar_plaats, { suppressEmpty: true });
if (prs_perslid_inzetbaar_plaats_x && prs_perslid_inzetbaar_plaats_y && prs_perslid_inzetbaar_radius)
{
prs_perslid_inzetbaar_plaats_xyr = prs_perslid_inzetbaar_plaats_x + ", "+ prs_perslid_inzetbaar_plaats_y + " < " + prs_perslid_inzetbaar_radius;
ROFIELDTR("fld", "", prs_perslid_inzetbaar_plaats_xyr, { suppressEmpty: true });
}
Response.Write("<tr><td colspan='2'><br><br><div id='added'></div></td></tr>");
MODAL_BLOCK_END();
%>

View File

@@ -1163,7 +1163,7 @@ res = {
rresult.canChangeFEOnly = false;
// (als alleen) Frontend-rechten-->we controleren nog strenger
if ( rresult.canChange
if ( (rresult.canChange || rresult.canChangeWP)
&& !rresult.canWrite("WEB_RESFOF")
&& !rresult.canWrite("WEB_RESBOF")
)
@@ -1172,11 +1172,11 @@ res = {
if (status_fo_key != 1 && (fe_edit_option_only == 1))
{
rresult.canChange = false;
rresult.canChangeWP = false;
rresult.canChangeCV = false;
rresult.readoReason = L("lcl_res_fe_edit_option_only");
}
if (rresult.canChange && rsv_ruimte_van < rresult.earliest_expire_change)
if ((rresult.canChange || rresult.canChangeWP) && rsv_ruimte_van < rresult.earliest_expire_change)
{
rresult.canChange = false;
rresult.canChangeWP = false;
@@ -1211,6 +1211,7 @@ res = {
&& !user.isCollega(rsv_ruimte_host_key))
{ // JGL: Volgens mij kan dit niet meer legaal gebeuren sinds 5.1.2RC2
rresult.canChange = false;
rresult.canChangeWP = false;
rresult.couldCreate = false;
rresult.readoReason = L("lcl_res_notself");
}
@@ -2394,6 +2395,7 @@ function get_res_deel_sql (params)
}
var ora_date2 = res_tot.endToSQL();
// Reserveren van persoonen: res_v_aanwezigdeel.res_prs_perslid_key is dan gevuld.
var sql1p = "SELECT " + (params.select_fields_p ? params.select_fields_p : params.select_fields)
+ " FROM prs_perslid p"
+ " , res_v_aanwezigdeel r"
@@ -2410,6 +2412,59 @@ function get_res_deel_sql (params)
? " AND r.res_discipline_key = " + params.sdisc
: "");
if (params.mld_opdr_key > 0)
{ // params.mld_opdr_key > 0:
// Bepaal de uitvoerder van de opdrachtnemer en de aanvrager van de opdrachtgever.
var sql = "SELECT o.mld_uitvoerende_keys"
+ " , m.prs_perslid_key"
+ " , m.mld_alg_locatie_key"
+ " , g.alg_gebouw_key"
+ " FROM mld_opdr o"
+ " , mld_melding m"
+ " , alg_v_allonrgoed_gegevens g"
+ " WHERE o.mld_melding_key = m.mld_melding_key"
+ " AND m.mld_alg_onroerendgoed_keys = g.alg_onroerendgoed_keys(+)"
+ " AND o.mld_opdr_key = " + params.mld_opdr_key
oRs = Oracle.Execute(sql);
var uitv_key = oRs("mld_uitvoerende_keys").Value;
var aanvrager_key = oRs("prs_perslid_key").Value;
var mld_loc_key = oRs("mld_alg_locatie_key").Value || -1;
var mld_bld_key = oRs("alg_gebouw_key").Value || -1;
oRs.Close();
// Controleren of de opdrachtnemer/vakman (uitvoerder van de opdracht) de dienst verleend aan de opdrachtgever (bedrijf van de aanvrager van de melding).
// De volgende opdrachtnemers/vakmannen zijn beschikbaar als uitvoerder:
// 1) De opdrachtnemers/vakmannen waarbij geen diensten zijn opgegeven.
// 2) De opdrachtnemers/vakmannen die de benodigde dienst leveren voor de betreffende opdrachtgever/aanvrager.
// a) Voor een bepaalde opdrachtgever (prs_bedrijf_voor_key > 0).
// b) Voor alle opdrachtgevers (prs_bedrijf_voor_key IS NULL).
sql1p += (uitv_key > 0 && aanvrager_key > 0
? " AND (NOT EXISTS (SELECT dl.prs_bedrijfdienstlocatie_key"
+ " FROM prs_bedrijfdienstlocatie dl"
+ " WHERE dl.prs_perslid_key = r.res_prs_perslid_key)"
+ " OR EXISTS (SELECT dl.prs_bedrijfdienstlocatie_key"
+ " FROM prs_bedrijfdienstlocatie dl"
+ " WHERE dl.prs_perslid_key = r.res_prs_perslid_key"
+ " AND dl.prs_dienst_key IN (SELECT prs_dienst_key"
+ " FROM prs_bedrijfdienstlocatie"
+ " WHERE prs_bedrijf_key = " + uitv_key
+ (mld_loc_key > 0
? " AND (alg_locatie_key = " + mld_loc_key + " OR alg_locatie_key IS NULL)"
: "")
+ (mld_bld_key > 0
? " AND (alg_gebouw_key = " + mld_bld_key + " OR alg_gebouw_key IS NULL)"
: "")
+ " )"
+ " AND (dl.prs_bedrijf_voor_key = (SELECT ab.prs_bedrijf_key"
+ " FROM prs_perslid p"
+ " , prs_v_afdeling_boom ab"
+ " WHERE p.prs_afdeling_key = ab.prs_afdeling_key"
+ " AND p.prs_perslid_key = " + aanvrager_key + ")"
+ " OR dl.prs_bedrijf_voor_key IS NULL))"
+ " )"
: "");
}
sql1p += " AND (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > " + ora_date2 + ")"
+ (params.group_by_p || "");

View File

@@ -85,8 +85,8 @@ function resObj(res_deel, res_rsv_deel, van_h, van_m, tot_h, tot_m, i_cnt, i_pri
this.res_rsv_deel = res_rsv_deel; // is hier de res_rsv_artikel_key
this.van_h = van_h;
this.van_m = van_m;
this.tot_h = tot_h;
this.tot_m = tot_m;
this.tot_h = null;
this.tot_m = null;
this.cnt = 0;
if (i_cnt)
this.cnt = i_cnt;
@@ -95,6 +95,16 @@ function resObj(res_deel, res_rsv_deel, van_h, van_m, tot_h, tot_m, i_cnt, i_pri
this.price = i_price;
}
function resObj_add(insObj_arr, cur_res_art, cur_rsv_art, tot_h, tot_m)
{ // Toevoegen van afhaaltijden aan het laatste object in het array.
var curObj = insObj_arr[insObj_arr.length -1];
if (curObj.res_deel == cur_res_art && curObj.res_rsv_deel == cur_rsv_art)
{
curObj.tot_h = tot_h;
curObj.tot_m = tot_m;
}
}
function saveFlexKenmerkenArt(rsv_artikel_key, params)
{
var currentKenmerkenSQL = "SELECT ka.res_kenmerk_key"
@@ -273,6 +283,14 @@ for (var i = 1; i <= Request.Form.Count; i++)
}
cur_lev_m = parseInt(fval,10); // De minuten
}
if (a_arIns.length && a_arIns[a_arIns.length-1].res_rsv_deel == cur_rsv_art && a_arIns[a_arIns.length-1].res_deel == cur_res_art)
{ // CAPG#161
__DoLog("Internal error: Attempting to add " + cur_res_art + " twice", "#FF0000");
__DoLog("Request.Form: " + String(Request.Form));
}
else
a_arIns[a_arIns.length] = new resObj(cur_res_art, cur_rsv_art, cur_lev_h, cur_lev_m, cur_col_h, cur_col_m, cur_cnt, cur_price);
}
break;
}
@@ -360,13 +378,8 @@ for (var i = 1; i <= Request.Form.Count; i++)
}
cur_col_m = parseInt(fval,10); // De minuten
}
if (a_arIns.length && a_arIns[a_arIns.length-1].res_rsv_deel == cur_rsv_art && a_arIns[a_arIns.length-1].res_deel == cur_res_art)
{ // CAPG#161
__DoLog("Internal error: Attempting to add " + cur_res_art + " twice", "#FF0000");
__DoLog("Request.Form: " + String(Request.Form));
}
else
a_arIns[a_arIns.length] = new resObj(cur_res_art, cur_rsv_art, cur_lev_h, cur_lev_m, cur_col_h, cur_col_m, cur_cnt, cur_price);
// Afhaaltijd hoeft niet aanwezig te zijn, maar indien toch dan waarden nog toevoegen.
resObj_add(a_arIns, cur_res_art, cur_rsv_art, cur_col_h, cur_col_m);
}
break;
}

View File

@@ -58,6 +58,8 @@ var sql = "SELECT " + lcl.xsqla("rdis.ins_discipline_omschrijving", "rdis.ins_di
+ " , " + lcl.xsqla("a.res_activiteit_omschrijving", "a.res_activiteit_key")
+ " , rdis.ins_discipline_key"
+ " , ins_discipline_min_level"
+ " , res_activiteit_master_key"
+ " , res_activiteit_duur"
+ " FROM res_discipline rdis"
+ " , res_activiteitdiscipline rad"
+ " , res_disc_params rd"
@@ -67,7 +69,8 @@ var sql = "SELECT " + lcl.xsqla("rdis.ins_discipline_omschrijving", "rdis.ins_di
+ " AND a.res_activiteit_key = rad.res_activiteit_key"
+ " AND rdis.ins_discipline_verwijder IS NULL"
+ " AND rdis.ins_discipline_key = rd.res_ins_discipline_key"
+ " AND COALESCE(a.res_activiteit_intervals, rd.res_disc_params_intervals) IS NOT NULL"
+ " AND (COALESCE(a.res_activiteit_intervals, rd.res_disc_params_intervals) IS NOT NULL"
+ " OR a.res_activiteit_master_key IS NOT NULL)"
+ (act_key > 0 ? " AND rad.res_activiteit_key = " + act_key : "")
+ (res_disc_key_arr.length > 0 ? " AND rdis.ins_discipline_key IN (" + res_disc_key_arr.join(",") + ")" : "");
var oRs = Oracle.Execute(sql)
@@ -80,6 +83,8 @@ if (oRs.eof)
// Zonder disciplines, maar ook met heeft deze query de disciplines gecheckt, we nemen de onze
res_disc_key_arr = [];
var activiteitnaam = oRs("res_activiteit_omschrijving").Value; // die gegevens is of een willekeurige bij de catalogus
var ischild = oRs("res_activiteit_master_key").Value > 0;
var res_activiteit_duur = oRs("res_activiteit_duur").Value;
var ins_discipline_min_level;
var catalogusnaam = "??";
while (!oRs.eof)
@@ -169,7 +174,8 @@ if (resdate)
dagcapaciteit = dagcapaciteitCalc(resdate);
}
var minimumbeschikbaarheid = getQParamFloat("minbes", 1.5); // minder dan zoveel uur beschikbaar beschouwen we onbeschikbaar
// minder dan zoveel uur beschikbaar beschouwen we onbeschikbaar
var minimumbeschikbaarheid = getQParamFloat("minbes", ischild?res_activiteit_duur:1.5);
var onlyfree = getQParamInt("onlyfree", 0); // moeten bezette werkplekken wel (0) of niet (1) (onklikbaar) getoond worden in de lijst
var thema_key = getQParamInt("thema_key", 12); // Voor ruimtekleuren (noot: niet zeker of die niet 13 als default moet zijn)

View File

@@ -198,11 +198,11 @@ rdpt = {
: " AND TRUNC (rrd.res_rsv_deel_van) BETWEEN TRUNC (SYSDATE +"+(p_dateoffset||0)+") AND TRUNC (SYSDATE-1+"+(p_dateoffset||0)+"+"+p_datelimit+") "
)
+ " GROUP BY vrij.mld_vrije_dagen_key, TRUNC (rrd.res_rsv_deel_van), res_rsv_deel_van "
+ " UNION " // de dagen zonder reserveringen
+ " UNION ALL" // de dagen zonder reserveringen
+ " SELECT TRUNC (SYSDATE + "+p_dateoffset+"+ (LEVEL - 1)) dag, 0, 0, fac.getweekdaynum (SYSDATE + "+p_dateoffset+"+(LEVEL - 1)), 0 "
+ " FROM DUAL"
+ " CONNECT BY LEVEL <= "+p_datelimit
+ " UNION " // de vrije dagen daarvan
+ " UNION ALL" // de vrije dagen daarvan
+ " SELECT mld_vrije_dagen_datum, 0, 1, 0, 0 "
+ " FROM mld_vrije_dagen vrij"
+ " WHERE vrij.mld_vrije_dagen_datum BETWEEN TRUNC (SYSDATE +"+(p_dateoffset||0)+") AND TRUNC (SYSDATE-1+"+(p_dateoffset||0)+"+"+p_datelimit+") "
@@ -270,7 +270,7 @@ rdpt = {
+ " , rdis.ins_discipline_key"
+ " , ins_discipline_omschrijving"
+ " , ins_discipline_image"
+ " UNION " // de dagen zonder reserveringen + aantal reserveerbare eenheden
+ " UNION ALL" // de dagen zonder reserveringen + aantal reserveerbare eenheden
+ " SELECT d.dag"
+ " , rdis.ins_discipline_key"
+ " , " + lcl.xsqla("rdis.ins_discipline_omschrijving", "rdis.ins_discipline_key")
@@ -308,7 +308,7 @@ rdpt = {
+ " , rdis.ins_discipline_key"
+ " , ins_discipline_omschrijving"
+ " , ins_discipline_image"
+ " UNION " // de vrije dagen daarvan
+ " UNION ALL" // de vrije dagen daarvan
+ " SELECT mld_vrije_dagen_datum"
+ " , rdis.ins_discipline_key"
+ " , " + lcl.xsqla("rdis.ins_discipline_omschrijving", "rdis.ins_discipline_key")
@@ -376,7 +376,7 @@ rdpt = {
+ " ins_discipline_image, "
+ " ins_discipline_omschrijving "
+ (p_maxbezet ? " HAVING COALESCE(SUM (rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24, 0) <=" + p_maxbezet : "")
+ " UNION "
+ " UNION ALL"
+ " SELECT plaan.alg_plaatsaanduiding plaats, "
+ lcl.xsql("rd.res_deel_omschrijving", "rd.res_deel_key") + " res_deel_omschrijving, "
+ " 0 bezet, "

View File

@@ -113,6 +113,7 @@ var sortout = getQParamInt("sortout", 1); // Sortering, standaard 1
var group = getQParamInt("groupby", -1); // Groepering, standaard -1 (backo), 4 (maninfo)
var alg_startlevel = getQParamInt("alg_startlevel", 2); // Startlevel van plaatsselector (Locatie)
var alg_endlevel = getQParamInt("alg_endlevel", frontend?2:5); // Endlevel van plaatsselector
var secsearch_alg_level = getQParamInt("secsearch_alg_level", 3); // Endlevel van plaatsselector voor secsearch
var roomcatalogue_key_arr = getQParamIntArray("roomcatmulti", []); // Ruimte soort catalogus
var obj_key_arr = getQParamIntArray("objcatmulti", []); // Voorzieningen catalogus
var art_key_arr = getQParamIntArray("artcatmulti", []); // Verbruiksartikelen catalogus
@@ -163,6 +164,16 @@ var authparams = user.checkAutorisation(autfunction);
var initcollapsed = getQParamInt("initcollapsed", 0);
var collapseThreshold = getQParamInt("collapsethreshold", 0); // klap automatisch open als er maximaal zoveel regels zijn.
// Heeft deze CUST res_ruimte?
var sql = "SELECT COUNT(*) aantal"
+ " FROM res_ruimte"
+ " WHERE res_ruimte_verwijder IS NULL"
+ " AND TRUNC(res_ruimte_vervaldatum) > TRUNC(SYSDATE)";
var oRs = Oracle.Execute(sql);
var hasResruimte = (oRs("aantal").Value > 0);
oRs.Close();
%>
<html>
@@ -346,13 +357,13 @@ var collapseThreshold = getQParamInt("collapsethreshold", 0); // klap automatisc
multitoggle: 5,
startlevel: alg_startlevel,
eindlevel: alg_endlevel,
secsearch: frontend?null:3, // hoger dan gebouw
secsearch: frontend?null:secsearch_alg_level, // hoger dan gebouw
filtercode: "FAC",
requiredlevel: (S("res_search_require_locatie")==1 ? 2 : null),
whenEmpty: L("lcl_search_generic") // want filter
});
if (!show_park && autoexec != 2 && inArray(3, resourcetypes))
if (!show_park && autoexec != 2 && inArray(3, resourcetypes) && hasResruimte)
{
//<!-- Ruimte soort -->
sql = "SELECT rd.ins_discipline_key dis_key"

View File

@@ -1115,7 +1115,7 @@ function resizePicture(pic)
DeleteFile(pic.attachpath + "thumb/" + pic.safename);
}
break;
default: __DoLog("No thumbnail");
default: __Log("No thumbnail for module " + pic.module); // Bijv. flexkenmerk foto
}
}
}

View File

@@ -23,17 +23,25 @@ JSON_Result = true;
<!-- #include file="./contactpersoonFilter.inc" -->
<%
var chars = getQParam("k", "");
var bAll = getQParamInt("SuggestAll", 0) == 1;
var filtcode = getQParam("filtcode", "");
var uitv_key = getQParamInt("uitv_key", -2); // Contactpersoon afhankelijk van Bedrijf suggestbox. Als er een waarde is meegegeven dan deze ook invullen (Ook -1).
var dienst_key = getQParamInt("dienst", -1);
var loc_key = getQParamInt("loc_key", -1);
var zoekpers = getQParamInt("zoekpers", 1)==1; // dan zoeken we persoon, default aan
var zoekbedr = getQParamInt("zoekbedr", 1)==1; // dan zoeken we in bedrijf, default aan
var chars = getQParam("k", "");
var bAll = getQParamInt("SuggestAll", 0) == 1;
var filtcode = getQParam("filtcode", "");
var uitv_key = getQParamInt("uitv_key", -2); // Contactpersoon afhankelijk van Bedrijf suggestbox. Als er een waarde is meegegeven dan deze ook invullen (Ook -1).
var dienst_key = getQParamInt("dienst_key", -1);
var loc_key = getQParamInt("loc_key", -1);
var bld_key = getQParamInt("bld_key", -1);
var zoekpers = getQParamInt("zoekpers", 1)==1; // dan zoeken we persoon, default aan
var zoekbedr = getQParamInt("zoekbedr", 1)==1; // dan zoeken we in bedrijf, default aan
var aanvrager_key = getQParamInt("aanvrager_key", -1);
chars = chars.replace(/\*/g,"%");
var filtClause = getFiltClauseContactpersoon(filtcode);
var params = { uitv_key: uitv_key,
loc_key: loc_key,
bld_key: bld_key,
aanvrager_key: aanvrager_key };
var filtClause = getFiltClauseContactpersoon(filtcode, params);
var zoeker = [];
if (zoekpers)

View File

@@ -12,7 +12,7 @@
<%
function getFiltClauseContactpersoon(pfiltcode)
function getFiltClauseContactpersoon(pfiltcode, params)
{
var lfiltClause = "";
if (pfiltcode && pfiltcode != "")
@@ -26,6 +26,37 @@ function getFiltClauseContactpersoon(pfiltcode)
break;
}
}
if (params && params.uitv_key > 0 && params.aanvrager_key > 0)
{ // De volgende opdrachtnemers/vakmannen zijn beschikbaar als contactpersoon:
// 1) De opdrachtnemers/vakmannen waarbij geen diensten zijn opgegeven.
// 2) De opdrachtnemers/vakmannen die de benodigde dienst leveren voor de betreffende opdrachtgever/aanvrager.
// a) Voor een bepaalde opdrachtgever (prs_bedrijf_voor_key > 0).
// b) Voor alle opdrachtgevers (prs_bedrijf_voor_key IS NULL).
lfiltClause += " AND (NOT EXISTS (SELECT dl.prs_bedrijfdienstlocatie_key"
+ " FROM prs_bedrijfdienstlocatie dl"
+ " WHERE dl.prs_perslid_key = cp.prs_perslid_key)"
+ " OR EXISTS (SELECT dl.prs_bedrijfdienstlocatie_key"
+ " FROM prs_bedrijfdienstlocatie dl"
+ " WHERE dl.prs_perslid_key = cp.prs_perslid_key"
+ " AND dl.prs_dienst_key IN (SELECT prs_dienst_key"
+ " FROM prs_bedrijfdienstlocatie"
+ " WHERE prs_bedrijf_key = " + params.uitv_key
+ (params.loc_key > 0
? " AND (alg_locatie_key = " + params.loc_key + " OR alg_locatie_key IS NULL)"
: "")
+ (params.bld_key > 0
? " AND (alg_gebouw_key = " + params.bld_key + " OR alg_gebouw_key IS NULL)"
: "")
+ " )"
+ " AND (dl.prs_bedrijf_voor_key = (SELECT ab.prs_bedrijf_key"
+ " FROM prs_perslid p"
+ " , prs_v_afdeling_boom ab"
+ " WHERE p.prs_afdeling_key = ab.prs_afdeling_key"
+ " AND p.prs_perslid_key = " + params.aanvrager_key + ")"
+ " OR dl.prs_bedrijf_voor_key IS NULL))"
+ " )";
}
return lfiltClause;
}
%>

View File

@@ -18,6 +18,9 @@
filtercode: extra filtercode voor de query die gebruikt wordt voor de suggest.
onChange: onchange op het textveld.
extraParamField: veldnaam voor een extra hidden parameter veld.
locatiekey Alleen uitvoerende tonen die op deze locatie leveren.
gebouwkey Alleen uitvoerende tonen die in dit gebouw leveren.
aanvragerkey Alleen contactpersonen van de uitvoerende tonen die voldoen aan de bedrijfdienstlocatie "Voor opdrachtgever/bedrijf" voorwaarden
isBad: boolean die aangeeft dat het contactpersoonnaam veld als ongeldig
en leeg weergegeven moet worden (true|false(default)).
readonly: geeft aan of het contactpersoonnaam veld readonly weergegeven moet worden (true|false(default)).
@@ -39,6 +42,18 @@ function FCLTcontactpersoonselector(fieldName, objectName, params)
var lwhenEmpty = (params.whenEmpty != null ? params.whenEmpty : (params.readonly ? L("lcl_select_readonly") : L("lcl_select_contactpersoon")));
var lcontactpersoonName = "";
// Bijvoorbeeld params.perslidKey ook meegeven aan getFiltClauseStdmelding.
// params.perslidKey kan ook meegegeven worden met urlAdd zodat de waarde uit een veld wordt gehaald
if (params.urlAdd)
{
for (i in params.urlAdd)
{
if (params.urlAdd[i].init)
params[params.urlAdd[i].urlParam] = params.urlAdd[i].init;
}
}
var lextraInit = "";
if (params.contactpersoonKey && params.contactpersoonKey > 0)
{
@@ -65,6 +80,8 @@ function FCLTcontactpersoonselector(fieldName, objectName, params)
var contactpersoonQueryUrl = rooturl+"/appl/shared/suggest/SuggestContactpersoon.asp"
+ ((typeof params.autlevel != "undefined")? "?autlevel=" + params.autlevel : "?autlevel=-1")
+ (params.locatiekey? "&loc_key=" + params.locatiekey : "")
+ (params.gebouwkey? "&bld_key=" + params.gebouwkey : "")
+ (params.aanvragerkey? "&aanvrager_key=" + params.aanvragerkey : "")
+ (params.filtercode? "&filtcode=" + params.filtercode : "");
if (params.label)
{ %><tr>

View File

@@ -3419,7 +3419,12 @@ END:VCALENDAR
<xsl:if test="DEEL_KEY != $prev_deel or INS_SRTCONTROLE_KEY != $prev_cont">
<tr>
<td><xsl:value-of select="GEBOUW"/></td>
<td><xsl:value-of select="OBJECT"/></td>
<td><xsl:element name="span">
<xsl:attribute name="class">fld details</xsl:attribute>
<xsl:attribute name="onclick">FcltMgr.openDetail(&quot;/appl/ins/ins_deel.asp?urole=bo&amp;ins_key=<xsl:value-of select="DEEL_KEY"/>&quot;, { reuse: true, titel: &quot;&quot; })</xsl:attribute>
<xsl:value-of select="OBJECT"/>
</xsl:element>
</td>
<td><xsl:value-of select="TAAK"/></td>
<td></td>
<xsl:element name="td">

View File

@@ -26,20 +26,20 @@ var bedrijfsql = "SELECT b.prs_bedrijf_key"
+ " FROM prs_bedrijf b"
+ " , prs_bedrijf_bedrijf bb"
+ " WHERE b.prs_bedrijf_key = bb.prs_bedrijf_key1"
+ " AND b.prs_bedrijf_key = (SELECT prs_bedrijf_key"
+ " FROM prs_contactpersoon"
+ " WHERE prs_perslid_key = " + bdl_prs_key
+ " AND prs_contactpersoon_verwijder IS NULL)"
+ " AND bb.prs_bedrijf_key2 = (SELECT prs_bedrijf_key"
+ " FROM prs_contactpersoon"
+ " WHERE prs_perslid_key = " + bdl_prs_key
+ " AND prs_contactpersoon_verwijder IS NULL)"
+ " UNION"
+ " SELECT b.prs_bedrijf_key"
+ " , b.prs_bedrijf_naam"
+ " FROM prs_bedrijf b"
+ " , prs_bedrijf_bedrijf bb"
+ " WHERE b.prs_bedrijf_key = bb.prs_bedrijf_key2"
+ " AND b.prs_bedrijf_key = (SELECT prs_bedrijf_key"
+ " FROM prs_contactpersoon"
+ " WHERE prs_perslid_key = " + bdl_prs_key
+ " AND prs_contactpersoon_verwijder IS NULL))) b"
+ " AND bb.prs_bedrijf_key1 = (SELECT prs_bedrijf_key"
+ " FROM prs_contactpersoon"
+ " WHERE prs_perslid_key = " + bdl_prs_key
+ " AND prs_contactpersoon_verwijder IS NULL))) b"
+ " WHERE b.prs_bedrijf_key NOT IN (SELECT COALESCE(bdl.prs_bedrijf_voor_key, -1)"
+ " FROM prs_bedrijfdienstlocatie bdl"
+ " WHERE bdl.prs_dienst_key = " + dienst_key

View File

@@ -80,7 +80,7 @@ function csv_for_room(zaalemail, import_app_code, as_stream)
}
var response = getCalendarItems(zaalemail, null, deltatoken);
if (response)
if (response && response.value)
{
var results = response.value;
while (response.skiptoken) {

View File

@@ -185,7 +185,8 @@ function getCalendarItems(userPrincipalName, skiptoken, deltatoken)
__Log("Full syncing from " + dateFrom.toISOString() + " to " + dateTo.toISOString() + " for user " + userPrincipalName + " (" + (config.fullfuture + config.fullpast) + " days)");
}
var xhr = doHTTP("GET", 'https://graph.microsoft.com/v1.0/users/' + userPrincipalName + '/calendarView/delta?' + parms, null, { "Accept": "application/json", "Authorization": "Bearer " + token }, { "returnErrors": true });
var url = 'https://graph.microsoft.com/v1.0/users/' + userPrincipalName + '/calendarView/delta?' + parms;
var xhr = doHTTP("GET", url, null, { "Accept": "application/json", "Authorization": "Bearer " + token }, { "returnErrors": true });
if (xhr != null && xhr.status == 200) {
response = JSON.parse(xhr.responseText);
if ("@odata.deltaLink" in response) { // Dit is de deltatoken die we opslaan als syncstate; "Tot hier zijn we gesynced"
@@ -199,9 +200,14 @@ function getCalendarItems(userPrincipalName, skiptoken, deltatoken)
if (xhr.status == 410 || response.code == "resyncRequired" || response.code == "syncStateNotFound") {
response = getCalendarItems(userPrincipalName, null, null); // delta token is gone, invalid of expired -> full sync
} else {
__DoLog("(calendarView) - MS Graph error (" + response.code + ")", "#FF0000");
__DoLog(response, "#FF0000");
__DoLog("(calendarView) - MS Graph unidentified code (" + response.code + ")", "#FFFF44");
__DoLog(response, "#FFFF44");
}
} else if ("error" in response && "code" in response.error) {
__DoLog("(calendarView) - MS Graph error", "#FF0000");
__DoLog("Request: " + url, "#FF0000");
__DoLog("Response: [" + response.error.code + "] - " + response.error.message, "#FF0000");
} else {
__DoLog("(calendarView) - MS Graph unknown error", "#FF0000");
__DoLog(response, "#FF0000");

View File

@@ -90,9 +90,14 @@ function process_webhook(res_ruimte_key, zaalemail, notidata)
+ " AND rrr.res_rsv_ruimte_verwijder IS NULL";
var oRs = Oracle.Execute(sql);
if (oRs.EoF) { // We moeten het res_rsv_ruimte_externnr (ruimte-event-id) nog invullen, is alleen leeg reserveringen die in Facilitor zijn aangemaakt
__Log("Ruimte niet teruggevonden in Facilitor op basis van externnr, eerst event-gegevens opvragen bij Outlook."
+ "\nRuimte-resource id: " + notidata.resourceData.id);
updateExternnr(zaalemail, notidata.resourceData.id);
} else { // We moeten het res_rsv_ruimte_externnr2 (organizer-event-id) nog invullen, is alleen leeg bij reserveringen die in Exchange zijn aangemaakt
if ((DEZE.S("msgraph_sync_level") & 4) && oRs("res_rsv_ruimte_externnr2").Value == null) {
__Log("Organisator niet teruggevonden in Facilitor op basis van externnr2, eerst event-gegevens opvragen bij Outlook."
+ "\nRuimte-resource id: " + notidata.resourceData.id
+ "\nOrganisator email: " + oRs("prs_perslid_email").Value);
updateExternnr2(zaalemail, notidata.resourceData.id, oRs("prs_perslid_email").Value);
}
}
@@ -113,9 +118,9 @@ function process_webhook(res_ruimte_key, zaalemail, notidata)
oRs.Close();
var fileStream = csv_for_room(zaalemail, import_app, true); // as Stream
if (!fileStream)
if (!fileStream || !fileStream.Size)
{
__Log("No action required after receiving MS Graph notification");
__Log("No action required after receiving MS Graph notification", "#FFFF44");
return false;
}

View File

@@ -133,7 +133,7 @@
{
var txt = "Scheduled export {0} error: {1}".format(export_app_id, e.description);
__Log(txt, { severity: "E" });
var sql = "BEGIN fac.putsystemnotification('{0}', 3); END;".format(txt); // 3=portal+email
var sql = "BEGIN fac.putsystemnotification('{0}', 3); END;".format(safe.quoted_sql(txt)); // 3=portal+email
Oracle.Execute(sql); // hopen dat dit wel lukt
}
__Log("End gen_export.wsf");