Merge 2021.1 Gold E patches

svn path=/Website/trunk/; revision=53324
This commit is contained in:
Jos Groot Lipman
2021-10-11 07:30:46 +00:00
parent ee4c97f8db
commit 15148cdfd1
74 changed files with 666 additions and 323 deletions

View File

@@ -61,7 +61,7 @@ else
</head>
<body>
<%
<%
PAGE_START();
if (dis_key == -1)
var page="alg_edit_district.asp"; // Maak een nieuw
@@ -75,14 +75,16 @@ else
if (dis_key > -1)
{
// tracking naar subframe :-)
if (true) // iedereen die dit mag zien, mag ook de mutaties zien
{
var autfunction = ["WEB_ALGUSE", "WEB_ALGMAN"];
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel <= 1 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?dis_key=" + dis_key);
IFRAMER("alghistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
}
PAGE_END();
PAGE_END();
%>
</body>
</html>

View File

@@ -252,7 +252,7 @@ user.auth_required_or_abort(ingesloten.length); // We klagen niet over enkele we
$(function()
{ // Een vinkboxje voor de invoer velden toevoegen.
// Niet een vinkboxje toevoegen voor de flexkenmerken. Dat doet generateFlexKenmerkBlock.listKenmerk wel.
$("input[type=text],input[type=checkbox],input[type=number],input:not([type]),select, textarea").not(".fldtime").not("[class^='fldflex']").not("[class^='fldSflex']").not("[name^='check_']").each(
$(":input:not([type=hidden])").not("td.flexvalue :input, td.multi_cb :input").each(
function() {
if ($(this).hasClass("flddate"))
var cb_name = "check_" + $(this).attr("id").substr("show_".length);

View File

@@ -199,6 +199,28 @@ oRs.Close();
multi: true
});
%>
<script>
function putCheckmarkSuggest(prs_key, prs_txt, obj)
{
thisobj = $("#"+obj.suggestid);
if (thisobj.is(":checkbox"))
var isgevuld = thisobj.is(":checked")
else
var isgevuld = thisobj.val();
if (thisobj.hasClass("flddate"))
var cb_name = "check_" + thisobj.attr("id").substr("show_".length);
else if (thisobj.hasClass("suggest"))
var cb_name = "check_" + thisobj.attr("id").substr(0, thisobj.attr("id").length-5);
else
var cb_name = "check_" + thisobj.attr("name");
$("input[type=checkbox][name=" + cb_name + "]").prop("checked", isgevuld);
// Eventuele andere onChange acties van een selecter hieronder toevoegen.
};
</script>
<%
var buttons = [];
buttons.push({title: L("lcl_submit"), action: "alg_submit()", singlepress: true, id: "btn_alg_submit", importance: 1, icon: "fa-fclt-save"});
buttons.push({title: L("lcl_cancel"), action: "alg_cancel()", importance: 3, icon: "fa-fclt-cancel"});

View File

@@ -100,8 +100,10 @@ else
IFRAMER("mapsframe", page2, { title: L("lcl_maps"), icon: "fa-map-marker-alt" } );
}
// tracking naar subframe :-)
if (true) // iedereen die dit mag zien, mag ook de mutaties zien
{
var autfunction = ["WEB_ALGUSE", "WEB_ALGMAN"];
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel <= 3 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?bld_key=" + bld_key);
IFRAMER("alghistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
@@ -111,4 +113,4 @@ else
<% PAGE_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -108,8 +108,10 @@ else
IFRAMER("mapsframe", page3, { title: L("lcl_maps"), icon: "fa-map-marker-alt" } );
}
// tracking naar subframe :-)
if (true) // iedereen die dit mag zien, mag ook de mutaties zien
{
var autfunction = ["WEB_ALGUSE", "WEB_ALGMAN"];
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel <= 2 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?loc_key=" + loc_key);
IFRAMER("alghistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
@@ -118,4 +120,4 @@ else
<% PAGE_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -11,7 +11,7 @@
<!--#include file="../Shared/common.inc" -->
<!--#include file="../Shared/iface.inc" -->
<%
FCLTHeader.Requires({plugins:["jQuery"],
FCLTHeader.Requires({plugins:["jQuery"],
js: ["jquery-ui.js"]
})
@@ -43,8 +43,8 @@ var reg_key = getQParamInt("key", -1);
</script>
</head>
<body>
<%
PAGE_START();
<%
PAGE_START();
if (reg_key == -1)
var page="alg_edit_regio.asp"; // Maak een nieuw
else
@@ -53,19 +53,21 @@ var reg_key = getQParamInt("key", -1);
IFRAMER("algframe", page, { title: L("lcl_alg_regio_frame"),
FcltClose: "algClose" } );
if (reg_key > -1)
{
// tracking naar subframe :-)
if (true) // iedereen die dit mag zien, mag ook de mutaties zien
{
// tracking naar subframe :-)
var autfunction = ["WEB_ALGUSE", "WEB_ALGMAN"];
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel <= 0 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?reg_key=" + reg_key);
IFRAMER("alghistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
}
PAGE_END();
PAGE_END();
%>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -128,8 +128,10 @@ else
IFRAMER("cntlistframe", page5, { icon: "fa-list" } );
}
// tracking naar subframe :-)
if (true) // iedereen die dit mag zien, mag ook de mutaties zien
{
var autfunction = ["WEB_ALGUSE", "WEB_ALGMAN"];
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel <= 5 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?room_key=" + room_key);
IFRAMER("alghistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
@@ -138,4 +140,4 @@ else
<% PAGE_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -69,8 +69,8 @@ else
</head>
<body>
<%
PAGE_START();
<%
PAGE_START();
if (ter_key == -1)
var page = "alg_edit_terreinsector.asp"; // Maak een nieuw
else
@@ -82,15 +82,17 @@ else
if (ter_key > -1)
{
// tracking naar subframe :-)
if (true) // iedereen die dit mag zien, mag ook de mutaties zien
{
var autfunction = ["WEB_ALGUSE", "WEB_ALGMAN"];
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel <= 3 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?ter_key=" + ter_key);
IFRAMER("alghistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
}
PAGE_END();
PAGE_END();
%>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -76,7 +76,7 @@ else
</head>
<body>
<%
<%
PAGE_START();
if (flr_key == -1)
var page="alg_edit_verdieping.asp"; // Maak een nieuw
@@ -99,15 +99,17 @@ else
IFRAMER("cntlistframe", page2, { icon: "fa-list" } );
}
// tracking naar subframe :-)
if (true) // iedereen die dit mag zien, mag ook de mutaties zien
{
var autfunction = ["WEB_ALGUSE", "WEB_ALGMAN"];
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel <= 4 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?flr_key=" + flr_key);
IFRAMER("alghistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
}
PAGE_END();
PAGE_END();
%>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -82,15 +82,17 @@ if (wp_key > 0)
var page3 ="../ins/ins_search_list.asp?urole=bo&tiny=1&werkplekkey=" + wp_key;
IFRAMER("deellistframe", page3, { icon: "fa-list" } );
// tracking naar subframe :-)
if (true) // iedereen die dit mag zien, mag ook de mutaties zien
{
page = protectQS.create("../shared/status_info.asp?wp_key=" + wp_key);
IFRAMER("alghistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
// tracking naar subframe :-)
var autfunction = ["WEB_ALGUSE", "WEB_ALGMAN"];
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel <= 6 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?wp_key=" + wp_key);
IFRAMER("alghistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
}
%>
<% PAGE_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -164,6 +164,8 @@ api2 = {
if ("filter" in field)
var filter = field.filter
else if ("LOV" in field)
var filter = "exact"
else // default filtertypes
{
switch (field.typ)

View File

@@ -30,7 +30,6 @@ function model_ins_srtcontrole()
"dbs": "ins_srtcontrole_key",
"label": L("lcl_key"),
"typ": "key",
"infoPointer": { Url: "appl/shared/status_info.asp?urole=bo&inssc_key=", Title: L("lcl_key") + " " },
"required": true,
"seq": "ins_s_ins_srtcontrole_key",
"track": true

View File

@@ -365,14 +365,14 @@ function model_prs_perslid(params)
Oracle.Execute(sql);
shared.trackaction("PRSLOG", the_key, "User was deleted on {0}, now reanimated.".format(toDateTimeString(verwijder, true)));
var put_result = generic_REST_PUT(this)(params, jsondata, the_key); // bijwerken
var post_result = generic_REST_PUT(this)(params, jsondata, the_key); // bijwerken
// Klantspecifieke check functie (hookfunction) voor de invoer
var pResult = new HookResult();
if (!custfunc.prs_postsave(the_key, pResult))
{
abort_with_warning(pResult.errmsg);
}
return put_result;
return post_result;
}
oRs.Close();
// doorvallen naar gewone POST
@@ -381,7 +381,7 @@ function model_prs_perslid(params)
var post_result = generic_REST_POST(this)(params, jsondata, parent_key);
// Klantspecifieke check functie (hookfunction) voor de invoer
var pResult = new HookResult();
if (!custfunc.prs_postsave(the_key, pResult))
if (!custfunc.prs_postsave(post_result.key, pResult))
{
abort_with_warning(pResult.errmsg);
}
@@ -389,7 +389,17 @@ function model_prs_perslid(params)
}
if (params.internal || user.has("WEB_PRSMAN"))
{
this.REST_PUT = generic_REST_PUT(this);
this.REST_PUT = function (params, jsondata, the_key)
{
var put_result = generic_REST_PUT(this)(params, jsondata, the_key);
var pResult = new HookResult();
if (!custfunc.prs_postsave(the_key, pResult))
{
abort_with_warning(pResult.errmsg);
}
return put_result;
}
this.REST_DELETE = generic_REST_DELETE(this);
}
else
@@ -398,11 +408,18 @@ function model_prs_perslid(params)
if (autparams.PRSwritelevel < 9 && autparams.ALGwritelevel < 9)
{
this.REST_PUT = function (params, jsondata, the_key)
{
if (params.filter.id != user_key || params.filter.mode != "attachment") // Bijlagen *bij jezelf* mag je uploaden
abort_with_warning(L("lcl_no_auth"), 403);
var put_result = generic_REST_PUT(this)(params, jsondata, the_key);
var pResult = new HookResult();
if (!custfunc.prs_postsave(the_key, pResult))
{
if (params.filter.id != user_key || params.filter.mode != "attachment") // Bijlagen *bij jezelf* mag je uploaden
abort_with_warning(L("lcl_no_auth"), 403);
return generic_REST_PUT(this)(params, jsondata, the_key);
abort_with_warning(pResult.errmsg);
}
return put_result;
}
}
}
}

View File

@@ -70,13 +70,13 @@ function model_res_deel(ins_min_level_arr, insMultiReserve)
"filter": "like"
},
"ruimtekey": {
"dbs": "res_v_ins_deelgegevens.alg_onroerendgoed_keys",
"dbs": "res_v_ins_deelgegevens.tbl_res_deel_key",
"label": L("lcl_location"),
"typ": "key",
"hidden_fld": true,
"foreign": {
"tbl": get_tbl(),
"key": "res_deel_key",
"key": "tbl_res_deel_key",
"desc": "alg_plaatsaanduiding",
"selectorforeign": "ALG_RUIMTE",
"selectorparams": {"startlevel": 2, "eindlevel": 5, "readonlylevel": 1}
@@ -206,7 +206,7 @@ function model_res_deel(ins_min_level_arr, insMultiReserve)
+ " , a.alg_verdieping_key"
+ " , a.alg_ruimte_key"
+ " , d.ins_deel_key"
+ " , r.res_deel_key"
+ " , r.res_deel_key tbl_res_deel_key"
+ " FROM res_deel r"
+ " , ins_deel d"
+ " , ins_v_alg_overzicht a"
@@ -222,7 +222,7 @@ function model_res_deel(ins_min_level_arr, insMultiReserve)
if (inArray(1, this.ins_min_level_arr) || inArray(5, this.ins_min_level_arr)) // gekoppeld aan ins_deel
{
var gparams = { GET: { tables: [get_tbl("res_v_ins_deelgegevens")]
, wheres: ["res_deel.res_deel_key = res_v_ins_deelgegevens.res_deel_key(+)"]
, wheres: ["res_deel.res_deel_key = res_v_ins_deelgegevens.tbl_res_deel_key(+)"]
}
};
delete this.fields.res_prs_perslid_key;

View File

@@ -131,6 +131,8 @@ function model_reservations(rsv_key, params)
if (params.filter.id > 0)
{
var this_res = res.func_enabled(params.filter.id);
if (!this_res)
return [];
user.auth_required_or_abort(this_res.canReadAny);
}
else if (params.filter.order > 0)

View File

@@ -236,8 +236,10 @@ transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key",
if (bes_key > -1)
{
// tracking naar subframe :-)
if (true) // iedereen die dit mag zien, mag ook de mutaties zien
{
var autfunction = {fo: 'WEB_BESFOF', bo: 'WEB_BESBOF', mi: 'WEB_BESBAC'}[urole] || 'WEB_BESUSE';
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel < 9 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?bes_key=" + bes_key + "&urole=" + urole);
IFRAMER("alghistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
@@ -248,4 +250,4 @@ transitParam = buildTransitParam(["punch", "voorraad", "mld_key", "artikel_key",
<% PAGE_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -432,6 +432,17 @@ else // nieuwe bestelling. Defaults bepalen
$("#besFlex").toggle($("#k_all").val()>0); // verbergen als leeg
$('textarea').resize(function() { FcltMgr.resized(window) });
$('textarea').autogrow();
// show spinner when xhr calls are running
$(document).ajaxStart(function()
{
iface.button.disable("btn_bes_submit");
$("li[id=btn_bes_submit]").attr("disabled","disabled");
});
$(document).ajaxStop(function()
{
$("li[id=btn_bes_submit]").attr("disabled","");
iface.button.enable("btn_bes_submit");
});
});
function bes_cancel()

View File

@@ -89,12 +89,14 @@ oRs.Close();
page="../fin/fin_list.asp?embedded=1&bes_key=" + opdr_key;
IFRAMER("finfactuur", page, { refreshOnClose: true, title: L("lcl_fin_invoices_frame")} );
}
verkoopfactuur_IFRAMER('bestelopdr', opdr_key);
// tracking naar subframe :-)
if (true) // iedereen die dit mag zien, mag ook de mutaties zien
{
var autfunction = {fo: 'WEB_BESFOF', bo: ['WEB_BESBOR', 'WEB_BESBOF'], mi: 'WEB_BESBAC'}[urole] || 'WEB_BESUSE';
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel < 9 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?ord_key=" + opdr_key + "&urole=" + urole);
IFRAMER("alghistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
@@ -104,4 +106,4 @@ oRs.Close();
<% PAGE_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -36,37 +36,50 @@ switch (req_info)
break;
}
case "voorraad_artikel":
{
var urole = getQParam("urole");
switch(urole)
{
case "fe": autfunction = "WEB_BESUSE"; break;
case "fo": autfunction = "WEB_BESFOF"; break;
case "bo": autfunction = "WEB_BESBOF"; break;
case "mi": autfunction = "WEB_BESBAC"; break;
}
params = { catalogus_key: null
, besgroep_key: null
, item_key: getQParamInt("srtdeel_key")
, searchtekst: null
, tebestellen: null
};
var sql = bes.voorraad_srtdeel(autfunction, params);
{ // check whether stock control is enabled
var sql = "SELECT bes_ins_discipline_key_inkoop"
+ " FROM bes_srtgroep bsg,"
+ " bes_srtdeel bsd,"
+ " bes_disc_params dp"
+ " WHERE bsg.bes_srtgroep_key = bsd.bes_srtgroep_key"
+ " AND bsd.bes_srtdeel_key = " + getQParamInt("srtdeel_key")
+ " AND bsg.ins_discipline_key = dp.bes_ins_discipline_key";
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
result = { srtdeel_key: oRs("bes_srtdeel_key").Value
, voorraadmin: oRs("voorraadmin").Value
, voorraadmax: oRs("voorraadmax").Value
, maxbestel: oRs("maxbestel").Value
, bestelmin: oRs("bestelmin").Value
, bestelmax: oRs("bestelmax").Value
, bestelveelvoud: oRs("bestelveelvoud").Value
, voorraad: oRs("voorraad").Value
, voorraad_intern: oRs("voorraad_intern").Value
};
}
var bes_disc_key = (oRs.eof ? oRs("bes_ins_discipline_key_inkoop").Value : null);
oRs.Close();
if (bes_disc_key)
{
var urole = getQParam("urole");
switch(urole)
{
case "fe": autfunction = "WEB_BESUSE"; break;
case "fo": autfunction = "WEB_BESFOF"; break;
case "bo": autfunction = "WEB_BESBOF"; break;
case "mi": autfunction = "WEB_BESBAC"; break;
}
params = { catalogus_key: null
, besgroep_key: null
, item_key: getQParamInt("srtdeel_key")
, searchtekst: null
, tebestellen: null
};
var sql = bes.voorraad_srtdeel(autfunction, params);
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
result = { srtdeel_key: oRs("bes_srtdeel_key").Value
, voorraadmin: oRs("voorraadmin").Value
, voorraadmax: oRs("voorraadmax").Value
, maxbestel: oRs("maxbestel").Value
, bestelmin: oRs("bestelmin").Value
, bestelmax: oRs("bestelmax").Value
, bestelveelvoud: oRs("bestelveelvoud").Value
, voorraad: oRs("voorraad").Value
, voorraad_intern: oRs("voorraad_intern").Value
};
}
oRs.Close();
}
break;
}
}

View File

@@ -60,6 +60,8 @@ function load_item_info(srtdeel_key, urole, aantal, bes_key)
{
// NB: bes_key bestaat niet voor een nieuwe bestelling!
bes_key = (bes_key ? bes_key : -1);
checkXhrObj[bes_key] = (checkXhrObj[bes_key] ? checkXhrObj[bes_key] : {});
checkXhrObj[bes_key][srtdeel_key] = true;
$.getJSON("get_item_info_ajax.asp?srtdeel_key=" + srtdeel_key + "&bes_key=" + bes_key,
function(data)
{
@@ -73,6 +75,7 @@ function load_item_info(srtdeel_key, urole, aantal, bes_key)
}
if (aantal && aantal > 0)
AddSuggestItem(data, aantal, urole);
checkXhrObj[bes_key][srtdeel_key] = false;
}
)
}
@@ -285,6 +288,11 @@ function fetchArtikelInfo(cell, srtdeel_key, id_key)
);
}
var checkXhrObj = {};
function checkXhr(srtdeel_key, bes_key)
{
return !!(checkXhrObj[bes_key] && checkXhrObj[bes_key][srtdeel_key]);
}
var new_item_key = 0;
// editable: ik mag nog regels toevoegen en verwijderen, verhogen en verlagen
// levert een verwijzing naar de aantal_cell op.
@@ -331,8 +339,13 @@ function CreateRow(bes_item_info, aantal, received, editable, objFlex, urole)
tr.bes_item_info = bes_item_info;
if (editable)
{ // Als er op de regel geklikt wordt en als er text wordt geselecteerd (is niet hetzelfde) dan in beide gevallen de gegevens van het artikel ophalen en tonen.
tr.onclick = function () { if (!maxArtikelReached()) load_item_info(this.bes_item_info.srtdeel_key, urole, 0, this.bes_item_info.bestelling_key )};
tr.onselect = function () { if (!maxArtikelReached()) load_item_info(this.bes_item_info.srtdeel_key, urole, 0, this.bes_item_info.bestelling_key )};
$(tr).on("click select", function ()
{
if (!checkXhr(this.bes_item_info.srtdeel_key, this.bes_item_info.bestelling_key) && !maxArtikelReached())
{
load_item_info(this.bes_item_info.srtdeel_key, urole, 0, this.bes_item_info.bestelling_key );
}
});
}
tr.orgAmount = tr.amount = aantal;
tr.flexvals = [];

View File

@@ -210,7 +210,9 @@ else
if (afspr_key > -1)
{
// tracking naar subframe :-)
if (true) // staat niet tussen de notities
var autfunction = {fo: 'WEB_BEZFOF', bo: 'WEB_BEZBOF'}[urole] || 'WEB_BEZUSE';
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel < 9 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?afspr_key=" + afspr_key + "&urole=" + urole);
IFRAMER("opdrhistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );

View File

@@ -174,13 +174,14 @@ function createAfspraak(rsv_ruimte_key)
var loc = oRs("alg_locatie_key").value;
var alg_ruimte_key = oRs("alg_ruimte_key").value;
}
oRs.Close();
// S("res_copy_to_bez") (bitwise): 1=remark | 2=flex | 3=remark and flex | &4=at all changes
var remark = [];
if (S("res_copy_to_bez")&1 && oRs("res_rsv_ruimte_opmerking").value)
remark.push(L("lcl_remark") + ": " + oRs("res_rsv_ruimte_opmerking").value);
oRs.Close();
oRs = Oracle.Execute("SELECT bez_s_bez_afspraak_key.nextval FROM DUAL");
afspraak_key = oRs(0).value;
oRs.close();

View File

@@ -82,6 +82,7 @@ if (thema_key == -1) thema_key=12; // alsnog, de code is nog niet bestand tegen
var themai_key = getQParamInt("themai", -1);
var label_key = getQParamInt("label_key", 12);// In de core is een default labelthema met key 12 gedefinieerd (cad_v_label_bezetbareruimtes)
var bordlabel_key = getQParamInt("bordlabel_key", -1);//
var contmode = getQParamInt("contmode", 0); //
var floor_rap = getQParamInt("floor_rap", 0);
var datumfilter = getQParamDate("datumfilter", null);
@@ -248,6 +249,7 @@ if (fac_usrrap_key > -1)
"&labelI=<%=getQParamInt("labelI", -1)%>" +
"&labelW=<%=getQParamInt("labelW", -1)%>" +
"&antialias=<%=antialias%>" +
"&contmode=<%=contmode%>" +
"&highlight=" + window.alg_ruimte_key +
"&ins_key=" + window.ins_key // zojuist gereserveerd
+"&deel2res=" + <%=deel2res?deel2res:0%>

View File

@@ -332,9 +332,11 @@ if (cnt_key > 0)
page = protectQS.create("../cnt/cnt_search_list.asp?versions_of_cnt_key=" + cnt_key + "&urole=" + urole);
IFRAMER("cntversionframe", page, { icon: "fa-list"} );
}
if (true) // iedereen die het contract mag zien, mag ook de mutaties zien
var autfunction = ["WEB_CNTUSE", "WEB_CNTMAN"];
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel < 9 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?cnt_key=" + cnt_key + "&urole=bo");
page = protectQS.create("../shared/status_info.asp?cnt_key=" + cnt_key + "&urole=" + urole);
IFRAMER("cnthistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}

View File

@@ -356,8 +356,6 @@ function generatePortalmenu(koppen, asWidget)
+ " OR (COALESCE (mi.fac_menuitems_rw, 'R') = 'W' AND m.fac_functie_key IN (" + lmywritefacfunctiekeys + "))" /* niet-explodeerbare opties met write-autorisatie */
+ " )"
if (!mobileOnly && !appOnly)
{
lsql +=" AND COALESCE (mi.fac_menuitems_disc, 0) = 0"
+ " AND COALESCE (mi.fac_menuitems_srtdisc, 0) = 0"
+ portalOnlySql
@@ -386,7 +384,9 @@ function generatePortalmenu(koppen, asWidget)
+ "))"
+ ")"
+ " UNION ALL" // BES artikelcatalogi zonder een afzonderlijke vermelding
if (!mobileOnly && !appOnly)
{
lsql +=" UNION ALL" // BES artikelcatalogi zonder een afzonderlijke vermelding
+ " SELECT fac_menu_key"
+ " , " + lcl.xsql2('COALESCE (fac_menu_altlabel, fac_menuitems_label)', 'FAC_MENU_ALTLABEL', 'fac_menu_key') + " label"
+ " , CASE WHEN sd.ins_srtdiscipline_omschrijving IS NULL " // geen lcl.xsql; veronderstelt: geen basistaal, dan ook geen vertaling

View File

@@ -268,15 +268,15 @@ if (i1 < 0)
// Ready state 4 means the request is done
if (xhr5.readyState === 4)
{
if (xhr5.status == 404) // It should not be found when .NET not
if (xhr5.status == 404 || xhr5.status == 400) // It should not be found when .NET not installed or 'Bad request'
{
txt = "Calling an aspx fails (404). Good!";
txt = "Calling an aspx fails (http status " + xhr5.status + "). Good!";
document.getElementById('resultASPX').innerHTML = 'Ok';
document.getElementById('resultASPX').style.color = 'green';
}
else
{
txt = "Calling an aspx succeeds. Not Good!";
txt = "Calling an aspx succeeds (http status " + xhr5.status + "). Not Good!";
txt += "<br>Facilitor does not need managed code.";
txt += "<br>Best disable it in the IIS application pool.";
document.getElementById('resultASPX').innerHTML = 'Error';
@@ -304,15 +304,15 @@ if (i1 < 0)
// Ready state 4 means the request is done
if (xhr6.readyState === 4)
{
if (xhr6.status == 404) // It should not be found
if (xhr6.status == 404 || xhr6.status == 400) // It should not be found or 'Bad Request'
{
txt = "<br>Getting " + logurl + " file fails (404). Good!";
txt = "<br>Getting " + logurl + " file fails (http status " + xhr6.status + "). Good!";
document.getElementById('resultTEMP').innerHTML = 'Ok';
document.getElementById('resultTEMP').style.color = 'green';
}
else
{
txt = "<br>Getting " + logurl + " file succeeds (" + xhr6.status + "). Not good!";
txt = "<br>Getting " + logurl + " file succeeds (http status " + xhr6.status + "). Not good!";
txt += "<br><%=safe.jsstring(Server.MapPath("../TEMP/"))%>\\web.config not working properly?"
+ "<br>Is RequestFiltering installed in IIS?";
document.getElementById('resultTEMP').innerHTML = 'Error';
@@ -1396,7 +1396,7 @@ checker("Database context <strong>" + Server.HTMLEncode(server) + "</strong>",
'NETWORK_PROTOCOL',
'BG_JOB_ID',
'FG_JOB_ID',
'AUTHENTICATION_TYPE', // < Oracle 19
// 'AUTHENTICATION_TYPE', // < Oracle 19
'AUTHENTICATION_METHOD', // >= Oracle 11
'AUTHENTICATION_DATA',
'CURRENT_SQL',

View File

@@ -1242,7 +1242,7 @@ ins = {checkAutLevel:
// levert null als zelfs nog geen leesrechten
function (ins_discipline_key, ins_alg_ruimte_type, ins_alg_ruimte_key, params)
{
var iresult = {canDelete: false, canChange: false}; // Verwijderen en Wijzigen
var iresult = {canAdd: false, canDelete: false, canChange: false}; // Verwijderen en Wijzigen
var fronto = params && params.urole? params.urole == "fo" : false;
if (ins_alg_ruimte_type == "A")
{
@@ -1262,6 +1262,7 @@ ins = {checkAutLevel:
iresult.writeman = canWriteINSMAN;
iresult.writeuse = canWriteINSUSE;
iresult.writefof = canWriteINSFOF;
iresult.canAdd = canWriteINSMAN; // Toevoegen.
iresult.canDelete = canWriteINSMAN; // Verwijderen
iresult.canChange = canWriteINSMAN || canWriteINSUSE; // Wijzigen
iresult.canChangeAlg = canWriteINSMAN && !fronto; // Wijzigen algemene gegevens
@@ -1281,6 +1282,7 @@ ins = {checkAutLevel:
iresult.writeman = iresult.canWrite("WEB_INSMAN");
iresult.writeuse = iresult.canWrite("WEB_INSUSE");
iresult.writefof = iresult.canWrite("WEB_INSFOF");
iresult.canAdd = iresult.canWrite("WEB_INSMAN"); // Toevoegen.
iresult.canDelete = iresult.canWrite("WEB_INSMAN"); // Verwijderen
iresult.canChange = iresult.canWrite("WEB_INSMAN") || iresult.canWrite("WEB_INSUSE"); // Wijzigen
iresult.canChangeAlg = iresult.canWrite("WEB_INSMAN") && !fronto; // Wijzigen algemene gegevens
@@ -1324,6 +1326,7 @@ ins = {checkAutLevel:
iresult.writeman = iresult.canWrite("WEB_INSMAN");
iresult.writeuse = iresult.canWrite("WEB_INSUSE");
iresult.writefof = iresult.canWrite("WEB_INSFOF");
iresult.canAdd = iresult.canWrite("WEB_INSMAN"); // Toevoegen.
iresult.canDelete = iresult.canWrite("WEB_INSMAN"); // Verwijderen.
iresult.canChange = iresult.canWrite("WEB_INSMAN") || iresult.canWrite("WEB_INSUSE"); // Wijzigen.
iresult.canChangeAlg = iresult.canWrite("WEB_INSMAN") && !fronto; // Wijzigen algemene gegevens.

View File

@@ -19,7 +19,7 @@ FCLTHeader.Requires({ plugins:["suggest", "jQuery"],
})
var urole = getQParamSafe("urole");
// Het maakt ons hier nog niet uit of wel in SLE zitten
// Het maakt ons hier nog niet uit of we in SLE zitten
var ins_key = getQParamInt("ins_key", -1);
var copy = (getQParamInt("ins_copy", 0) == 1);
@@ -250,8 +250,13 @@ if (ins_key > 0)
page = "ins_show_note2.asp?ins_key=" + ins_key;
IFRAMER("noteframe", page, { refreshOnClose: true, sidebar: true } );
page = protectQS.create("../shared/status_info.asp?ins_key=" + ins_key + "&urole=" + urole);
IFRAMER("inshistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
var autfunction = (isSLE ? "WEB_SLEBOF" : (urole == "fo" ? "WEB_INSFOF" : "WEB_INSMAN"));
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel < 9 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?ins_key=" + ins_key + "&urole=" + urole);
IFRAMER("inshistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
}
%>

View File

@@ -618,10 +618,9 @@ else
<script>
$(function()
{
console.log("EINDE");
// Een vinkboxje voor de invoer velden toevoegen.
// Niet een vinkboxje toevoegen voor de flexkenmerken. Dat doet generateFlexKenmerkBlock.listKenmerk wel.
$("input[type=text],input[type=checkbox],input[type=number],input:not([type]),select, textarea").not(".fldtime").not("[class^='fldflex']").not("[class^='fldSflex']").each(
$(":input:not([type=hidden])").not("td.flexvalue :input, td.multi_cb :input").each(
function()
{
if ($(this).hasClass("flddate"))

View File

@@ -4,9 +4,7 @@
$Id$
File: INS/ins_edit_deel.asp
Description: Main interface to add/edit objects
Parameters: ins_key: bewerken bestaand object, we 'weten' al heel veel
Description: Main interface to add/edit objects Parameters: ins_key: bewerken bestaand object, we 'weten' al heel veel
parent_key: we hebben een parent, we tonen deels info van de parent
urole:

View File

@@ -207,9 +207,7 @@ authparams = last_this_ins.authparams(autfunction);
else
var isgevuld = thisobj.val();
if (thisobj.hasClass("flddate"))
var cb_name = "check_" + thisobj.attr("id").substr("show_".length);
else if (thisobj.hasClass("suggest"))
if (thisobj.hasClass("suggest"))
var cb_name = "check_" + thisobj.attr("id").substr(0, thisobj.attr("id").length-5);
else
var cb_name = "check_" + thisobj.attr("name");
@@ -220,7 +218,7 @@ authparams = last_this_ins.authparams(autfunction);
$(function()
{ // Een vinkboxje voor de invoer velden toevoegen.
// Niet een vinkboxje toevoegen voor de flexkenmerken. Dat doet generateFlexKenmerkBlock.listKenmerk wel.
$("input[type=text],input[type=checkbox],input[type=number],input:not([type]),select, textarea").not(".fldtime").not("[class^='fldflex']").not("[class^='fldSflex']").each(
$(":input:not([type=hidden])").not("td.flexvalue :input, td.multi_cb :input").each(
function() {
if ($(this).hasClass("flddate"))
var cb_name = "check_" + $(this).attr("id").substr("show_".length);

View File

@@ -196,7 +196,7 @@ else
// De schrijfrechten controleren i.v.m. discipline en alg scope
var iresult = ins.func_enabled_scope(disc_key, bind, bind_key);
if (!iresult || !iresult.canChange)
if (!iresult || !iresult.canAdd)
abort_with_warning(L("lcl_obj_notallowed")); // combinatie niet toegestaan
}
@@ -297,4 +297,4 @@ else
<body>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -31,7 +31,9 @@ if (deelsrtcont_key == -1)
var insPlan = getQParamInt("plan", 0) == 1; // Inplannen inspectie.
var insClose = getQParamInt("close", 0) == 1; // Afmelden of afronden inspectie.
var insEdit = !insPlan && !insClose; // Wijzigen inspectie.
var transitParam = buildTransitParam(["deelsrtcont_keys"]);
var transitParam = buildTransitParam(["deelsrtcont_keys", "fromfinish", "finishmjob", "dist_key_arr", "loc_key_arr", "bld_key_arr",
"disc_key", "srtgroep_key", "srtdeel_key", "groep", "categorie_key", "srtcontrole", "frequentie",
"account", "incbtw", "groupby", "deel", "mjbMoved", "mjbFreezed", "mjbXcped"]);
%>
<html>
@@ -108,10 +110,15 @@ var transitParam = buildTransitParam(["deelsrtcont_keys"]);
}
oRs.Close();
// tracking naar subframe :-)
if (true) // iedereen die het object mag zien, mag ook de mutaties zien
if (deelsrtcont_key > 0) // iedereen die het object mag zien, mag ook de mutaties zien
{
page = protectQS.create("../shared/status_info.asp?insc_key=" + deelsrtcont_key + "&urole=bo");
IFRAMER("inschistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
var autfunction = ["WEB_INSUSE", "WEB_INSMAN"];
var authparams = user.checkAutorisation(autfunction, true);
if (authparams && authparams.ALGreadlevel < 9 && authparams.PRSreadlevel < 9)
{
page = protectQS.create("../shared/status_info.asp?insc_key=" + deelsrtcont_key + "&urole=bo");
IFRAMER("inschistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}
}
%>

View File

@@ -212,7 +212,7 @@ user.auth_required_or_abort(tobeedited > 0); // We klagen niet over enkele wel e
$(document).ready(function()
{ // Een vinkboxje voor de invoer velden toevoegen.
// Niet een vinkboxje toevoegen voor de flexkenmerken. Dat doet generateFlexKenmerkBlock.listKenmerk wel.
$("input[type=text],input[type=checkbox],input[type=number],input:not([type]),select, textarea").not(".fldtime").not("[class^='fldflex']").not("[class^='fldSflex']").each(
$(":input:not([type=hidden])").not("td.flexvalue :input, td.multi_cb :input").each(
function() {
if ($(this).hasClass("flddate"))
var cb_name = "check_" + $(this).attr("id").substr("show_".length);
@@ -274,4 +274,4 @@ user.auth_required_or_abort(tobeedited > 0); // We klagen niet over enkele wel e
<% MODAL_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -141,10 +141,10 @@ $(document).on("ajaxError", function(event, jqXHR, ajaxSettings, thrownError) {
if (jqXHR.responseJSON && "error" in jqXHR.responseJSON)
var errtxt = jqXHR.responseJSON.error.message; // een api2.error(400, "Tekst");
else
errtxt = "JQuery Ajax Error: " + ajaxSettings +
errtxt = "JQuery Ajax Error: " +
"\n" + jqXHR.status + ": " + jqXHR.statusText +
(thrownError && thrownError != jqXHR.statusText ? "\n" + thrownError : "") +
"\n\n" + this.type + " " + this.url;
"\n\n" + ajaxSettings.type + " " + ajaxSettings.url;
FcltMgr.alert(errtxt +
"\n\n" + new Date().toLocaleString());
}

View File

@@ -172,7 +172,7 @@ function showInlineDetails(thisTD, strfnURL, position)
newRow.insertCell(0);
var theCell = newRow.insertCell(1);
theCell.innerHTML = L("lcl_shared_loading");
theCell.colSpan=5; // thisTR.children.length - 2;
theCell.colSpan = thisTR.children.length - 2;
if (position == null) position = 3;
for (var i = 0; i < position - 2; i++)
newRow.insertCell(1);

View File

@@ -27,7 +27,7 @@ if (mode != "save")
}
}
scaffolding(this_model,
var this_params =
{
"search": {
"autosearch": true,
@@ -136,7 +136,25 @@ scaffolding(this_model,
]
}
]
},
"wrap": {
"frames": []
}
}
);
var id = getQParamInt("id", -1);
if (id > 0)
{
var urole = getQParamSafe("urole", "fe");
var page = protectQS.create("../shared/status_info.asp?inssc_key=" + id + "&urole=" + urole);
this_params.wrap.frames.push({
"url": page,
"icon": "fa-list",
"title": L("lcl_tracking"),
"autfunction": this_model.authfunction
});
}
scaffolding(this_model, this_params);
%><% ASPPAGE_END(); %>

View File

@@ -106,7 +106,7 @@
"prs_perslid_key_voor"]
},
"ins_deel": { "track": "#INSUPD",
"fields": ["ins_srtdeel_key", "ins_alg_ruimte_key", "ins_alg_ruimte_type"]
"fields": ["ins_srtdeel_key", "ins_alg_ruimte_key", "ins_alg_ruimte_type", "ins_alg_ruimte_type_org", "ins_alg_ruimte_key_org"]
},
"mld_melding_note": { "track": null,
"fields": ["name", "mld_melding_note_flag"]

View File

@@ -124,6 +124,8 @@ var aanvrager_key = getQParamInt("prs_key", -1);
{
var $label = $(this).find(".mld-iconlabel");
var findStr = $label.text();
var $hint = $(this).find(".mld-hint");
var findStr2 = $hint.text();
if (findStr.toLowerCase().indexOf(searchStr.toLowerCase()) !== -1)
{
// Highlight de zoekterm, encode (FcltJuery.js) de resulterende string en vervangt de html()
@@ -137,6 +139,15 @@ var aanvrager_key = getQParamInt("prs_key", -1);
$(this).find("img:not([src])").attr("src", $(this).find("img").attr("thesrc")); // Set the <img> src
$(this).show(); // Show me
var menuid = $(this).attr("data-menuid");
$(".seperator[data-menuid="+menuid+"]").show(); // Show my header
}
if(findStr2.toLowerCase().indexOf(searchStr.toLowerCase()) !== -1)
{
$(this).find("img:not([src])").attr("src", $(this).find("img").attr("thesrc")); // Set the <img> src
$(this).show(); // Show me
var menuid = $(this).attr("data-menuid");
$(".seperator[data-menuid="+menuid+"]").show(); // Show my header
}
@@ -348,6 +359,9 @@ while (!oRs.Eof)
+ ' <div class="mld-iconlabel" title="' + safe.htmlattr(oRs("mld_stdmelding_omschrijving").value) + '" style="' + (colors[2] ? 'background-color: ' + safe.html(colors[2]) + ';' : '') + ' ' + (colors[3] ? 'color: ' + safe.html(colors[3]) + ';' : '')+ '">'
+ safe.html(oRs("mld_stdmelding_omschrijving").value)
+ ' </div>'
+ ' <div style="display: none;" class="mld-hint">'
+ safe.html(oRs("mld_stdmelding_hint").value)
+ ' </div>'
+ ' </div>'
+ '</div>';
last_disc_key = (lvl==1 ? oRs("ins_discipline_key").Value : oRs("ins_srtdiscipline_key").Value);

View File

@@ -448,7 +448,7 @@ if (mld_key == -1 || copy)
// tracking naar subframe :-)
if (hasFOBOread || (!hasFOBOread && hasFEread && !S("mld_hide_fe_tracking")))
{
page = protectQS.create("../shared/status_info.asp?mld_key=" + mld_key + "&urole=" + role);
page = protectQS.create("../shared/status_info.asp?mld_key=" + mld_key + "&urole=" + (urole == "fe" && hasFOBOread ? "bo" : urole));
IFRAMER("mldhistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );
}

View File

@@ -80,49 +80,59 @@ var JSON_Result = true;
var result = [];
if (behkey > -1 || disckey > -1) // Minimaal een van beiden moet gegeven zijn. Zo niet dan een leeg array als resultaat geven.
{
var sql = "SELECT COUNT(mld_stdmelding_key) aantal"
+ " FROM mld_stdmelding s"
+ " WHERE BITAND (s.mld_stdmelding_planbaar, 4) = 4";
var oRs = Oracle.Execute(sql);
var actiedatum_actief = oRs("aantal").Value > 0;
oRs.Close();
// Raar maar waar: er blijkt behandelaar mogelijk buiten de autorisatie die je hebt
// Ik vind Behandelaar zijn een prima autorisatie, het is gek als daar nog 3D overheen moet.
var sql = "SELECT item||' '||detail oms" // de externe referentie (meldingnummer)
+ " , item_key key" // de interne referentie (key)
+ " , datum1 van" // de datum van de service (varieert)
+ " , datum2 tot " // de datum van de service (varieert)
+ " , 'default.asp?internal=1&u=melding&k='||item_key fclturl" // de url naar de details
+ " , mld_melding_status " // te gebruiken voor styling
+ " , mld_melding_behandelaar_key" // te gebruiken voor styling
+ " FROM (SELECT mld_melding_key item_key"
+ " , sd.ins_srtdiscipline_prefix||mld_melding_key item" // +prefix
+ " , mld_melding_onderwerp detail"
// Als de actiedatum is ingevuld, dan alleen een balk op de actiedatum en niet van begin- tot einddatum.
// Zowel de begin- als de einddatum de waarde van de actiedatum geven als die is ingevuld.
+ " , COALESCE(mld_melding_actiedatum, mld_melding_datum) datum1"
+ " , COALESCE(mld_melding_actiedatum, mld_melding_einddatum) datum2"
+ " , mld_melding_status"
+ " , mld_melding_behandelaar_key"
+ " FROM mld_melding m"
+ " , mld_stdmelding s"
+ " , ins_tab_discipline d"
+ " , ins_srtdiscipline sd"
+ " WHERE m.mld_stdmelding_key = s.mld_stdmelding_key"
+ " AND s.mld_ins_discipline_key = d.ins_discipline_key"
+ (disckey == -1
? ""
: " AND d.ins_discipline_key = " + disckey)
+ (stdmkey == -1
? ""
: " AND s.mld_stdmelding_key = " + stdmkey)
+ " AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND m.mld_melding_status IN (0,2,4,7)" // lopende
+ " AND m.fac_activiteit_key IS NULL"
+ (behkey == -1
? ""
: " AND m.mld_melding_behandelaar_key = " + behkey)
+ " AND m.mld_melding_datum <= " + date_to.toSQL(true)
+ " AND m.mld_melding_einddatum >= " + date_from.toSQL(true)
+ " AND m.mld_melding_actiedatum IS NOT NULL" // Alleen meldingen met een actiedatum tonen in de kalender.
+ ")"
+ " ORDER BY mld_melding_behandelaar_key";
sql = "SELECT item||' '||detail oms" // de externe referentie (meldingnummer)
+ " , item_key key" // de interne referentie (key)
+ " , datum1 van" // de datum van de service (varieert)
+ " , datum2 tot " // de datum van de service (varieert)
+ " , 'default.asp?internal=1&u=melding&k='||item_key fclturl" // de url naar de details
+ " , mld_melding_status " // te gebruiken voor styling
+ " , mld_melding_behandelaar_key" // te gebruiken voor styling
+ " FROM (SELECT mld_melding_key item_key"
+ " , sd.ins_srtdiscipline_prefix||mld_melding_key item" // +prefix
+ " , mld_melding_onderwerp detail"
// Als de actiedatum is ingevuld, dan alleen een balk op de actiedatum en niet van begin- tot einddatum.
// Zowel de begin- als de einddatum de waarde van de actiedatum geven als die is ingevuld.
+ " , COALESCE(mld_melding_actiedatum, mld_melding_datum) datum1"
+ " , COALESCE(mld_melding_actiedatum, mld_melding_einddatum) datum2"
+ " , mld_melding_status"
+ " , mld_melding_behandelaar_key"
+ " FROM mld_melding m"
+ " , mld_stdmelding s"
+ " , ins_tab_discipline d"
+ " , ins_srtdiscipline sd"
+ " WHERE m.mld_stdmelding_key = s.mld_stdmelding_key"
+ " AND s.mld_ins_discipline_key = d.ins_discipline_key"
+ (disckey == -1
? ""
: " AND d.ins_discipline_key = " + disckey)
+ (stdmkey == -1
? ""
: " AND s.mld_stdmelding_key = " + stdmkey)
+ " AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND m.mld_melding_status IN (0,2,4,7)" // lopende
+ " AND m.fac_activiteit_key IS NULL"
+ (behkey == -1
? ""
: " AND m.mld_melding_behandelaar_key = " + behkey)
+ " AND m.mld_melding_datum <= " + date_to.toSQL(true)
+ " AND m.mld_melding_einddatum >= " + date_from.toSQL(true)
// Alleen meldingen met een actiedatum tonen in de kalender indien er stdmeldingen met een actiedatum actief zijn.
+ (actiedatum_actief
? " AND m.mld_melding_actiedatum IS NOT NULL" // Alleen meldingen met een actiedatum tonen in de kalender.
: "")
+ ")"
+ " ORDER BY mld_melding_behandelaar_key";
var oRs = Oracle.Execute(sql);
oRs = Oracle.Execute(sql);
while (!oRs.Eof)
{

View File

@@ -364,12 +364,12 @@ var subject = (isReservering
}
if (!validateForm("afspraak"))
return false;
<%
if (!isReservering)
{
%>
if ($("#date_from").val() == $("#date_to").val())
if ($("#date_from").val() == $("#date_to").val() &&
$("#time_from_date_from").val() == $("#time_from_date_to").val())
{
FcltMgr.alert(L("lcl_vis_same_time"));
return false;

View File

@@ -168,7 +168,7 @@ else
};
function fncolDetail(oRs)
{
return safe.html(fronto ? oRs("soort").Value : oRs("ins_srtdeel_omschrijving").Value) + (oRs("hoeveelheid").Value != "1" ? "&nbsp;<span class='c1'>" + safe.html(oRs("hoeveelheid").Value) + "</span>" : "");
return safe.html(fronto ? oRs("soort").Value : (oRs("ins_srtdeel_omschrijving").Value + (oRs("hoeveelheid").Value != "1" ? "&nbsp;<span class='c1'>" + safe.html(oRs("hoeveelheid").Value) + "</span>" : "")));
};
function fncolsubHeader(oRs)

View File

@@ -743,7 +743,7 @@ function recalcEinddatum(recalc_always)
var startdate = new Date(parseInt($("#startdate").val(),10));
var sysdate = new Date();
var startOfWorkDay = <%=S("fac_t_startofworkday")%>;
var startOfWorkDay = <%=String(S("fac_t_startofworkday")).replace(",", ".")%>;
var startwerkdag_uur = Math.floor(startOfWorkDay);
var startwerkdag_min = (startOfWorkDay - Math.floor(startOfWorkDay)) * 60;
var startdatebegin = new Date(startdate.getFullYear(), startdate.getMonth(), startdate.getDate(), startwerkdag_uur, startwerkdag_min);
@@ -1543,6 +1543,8 @@ if (mld_key > -1)
var sql = "SELECT l.alg_locatie_adres"
+ " , l.alg_locatie_plaats"
+ " , l.alg_locatie_code"
+ " , l.alg_locatie_omschrijving"
+ " , o.alg_gebouw_naam"
+ " , o.alg_verdieping_omschrijving"
+ " , o.alg_ruimte_nr"
@@ -1550,8 +1552,8 @@ if (mld_key > -1)
+ " FROM alg_v_onroerendgoed_gegevens o"
+ " , alg_locatie l"
+ " , mld_melding m"
+ " WHERE o.alg_locatie_key = l.alg_locatie_key"
+ " AND o.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys"
+ " WHERE m.mld_alg_locatie_key = l.alg_locatie_key"
+ " AND o.alg_onroerendgoed_keys(+) = m.mld_alg_onroerendgoed_keys"
+ " AND m.mld_melding_key = " + mld_key;
var oRs = Oracle.Execute(sql);
if (!oRs.eof)
@@ -1559,6 +1561,8 @@ if (mld_key > -1)
var info_params = { suppressEmpty: true };
ROFIELD("fld", L("lcl_alg_loc_adres"), oRs("alg_locatie_adres").Value, info_params);
ROFIELD("fld", L("lcl_alg_loc_plaats"), oRs("alg_locatie_plaats").Value, info_params);
ROFIELD("fld", L("lcl_estate_locatie_man_code"), oRs("alg_locatie_code").Value, info_params);
ROFIELD("fld", L("lcl_estate_locatie_title"), oRs("alg_locatie_omschrijving").Value, info_params);
ROFIELD("fld", L("lcl_estate_gebouw_man_name"), oRs("alg_gebouw_naam").Value, info_params);
ROFIELD("fld", L("lcl_estate_verdieping_man_descr"), oRs("alg_verdieping_omschrijving").Value, info_params);
ROFIELD("fld", L("lcl_estate_ruimte_man_nr"), oRs("alg_ruimte_nr").Value, info_params);

View File

@@ -37,6 +37,7 @@ var action = getQParam("action", "");
var urole = getQParamSafe("urole", "");
var stdmgroep_keys = getQParamIntArray("stdmgroepkey", []);
var stdm_keys = getQParamIntArray("stdm_keys", []);
var has_divider = getQParamInt("divider", 1) == 1;
var objPlaats = {
loc_key: -1,
bld_key: -1,
@@ -71,7 +72,7 @@ else
var authparams = user.checkAutorisation(autfunction, true);
var autlevel = authparams.ALGwritelevel;
var transitParam = buildTransitParam(["mld_key", "ruimte_key", "ins_key", "action", "disc", "srtdisc", "ins_key", "loc_key", "bld_key", "flr_key", "roo_key", "meldbronkey", "deelsrtcont_key"] );
var transitParam = buildTransitParam(["mld_key", "ruimte_key", "ins_key", "action", "disc", "srtdisc", "stdmgroepkey", "ins_key", "loc_key", "bld_key", "flr_key", "roo_key", "meldbronkey", "deelsrtcont_key"] );
// Verplicht:
var srtdisc_keys = getQParamIntArray("srtdisc", []);
@@ -321,7 +322,7 @@ else
oRs.Close();
}
if (srtdisc_keys.length==0) // Dan <20>cht eerst srtdiscipline kiezen
if (srtdisc_keys.length==0 && stdmgroep_keys.length == 0) // Dan <20>cht eerst srtdiscipline kiezen
{
var rst = new ResultsetTable({ sql: mySRTsql
, keyColumn: "ins_srtdiscipline_key"
@@ -413,6 +414,10 @@ else
+ " WHERE sm.mld_ins_discipline_key = di.ins_discipline_key"
+ " AND di.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND sm.mld_stdmelding_verwijder IS NULL"
+ ( stdmgroep_keys.length
? " AND sm.mld_stdmeldinggroep_key IN (" + stdmgroep_keys.join(",") + ")"
: ""
)
+ filtClause.where
+ check_notfrontend;
// Selector mode vakgroep/melding voor de frontend. {0(=default)=vakgroep en melding (beide eerst te kiezen), 1=vakgroep readonly, 2=alleen melding}
@@ -426,7 +431,7 @@ else
, keyColumn: "mld_stdmelding_key"
, linkColumn: fncolLink
, singleLink: true
, dividerColumn: S("mld_selector_mode")==0?"ins_discipline_omschrijving":null // groepeer op vakgroep
, dividerColumn: S("mld_selector_mode")==0 && has_divider ?"ins_discipline_omschrijving":null // groepeer op vakgroep
, headerColumn: "mld_stdmelding_omschrijving"
, subheaderColumn: fncolDetail
, detailColumn: fncolSubHeader

View File

@@ -105,7 +105,7 @@
%><body><%
PAGE_START();
HEADER ({title: L("lcl_flexplek"), back:!qrc, home:!qrc});
HEADER ({title: L("lcl_flexplek") + " " + res_deel, back:!qrc, home:!qrc});
CONTENT_START();
%>
<form id="claimwp" name="claimwp" action="res_claimwp.asp?submit=1&ins_deel_key=<%=ins_deel_key%>" method="post">
@@ -113,7 +113,7 @@
if (claimed)
{
Response.write(L("lcl_flexplek")+" "+safe.html(alg_plaats)+" "+L("lcl_flexplekclaimed")+" "+user.naam() + " "+ L("lcl_flexplekclaimfooter"));
Response.write(L("lcl_flexplek")+" "+safe.html(res_deel)+" "+L("lcl_flexplekclaimed")+" "+user.naam() + " "+ L("lcl_flexplekclaimfooter"));
}
else
{

View File

@@ -604,7 +604,7 @@ else
oRsdi += 1;
oRsd.moveNext();
}
oRsdi.Close();
oRsd.Close();
// - indien leesrechten? TODO
sqla = "SELECT res_artikel_omschrijving, res_rsv_artikel_aantal"
+ " FROM res_rsv_artikel rra, res_artikel ra"
@@ -619,7 +619,7 @@ else
oRsdi += 1;
oRsa.moveNext();
}
oRsdi.Close();
oRsa.Close();
if (oRsdi > 0)
BLOCK_END();
// Bezoekers - indien leesrechten? TODO

View File

@@ -93,6 +93,14 @@ if (rsv_ruimte_key == -1)
oRs.Close();
}
// Omzetten van restypes naar key: 1=Reserveerbaar object (V); 2=Verbruiksartikel (C); 3=Ruimte (R).
// Default heeft restype_key_arr al [0] zodat bij geen of ongeldige restype niets geselecteerd wordt.
var restype_key_arr =[0];
for (var i=0; i<restype.length; i++)
{
if ("VRC".indexOf(restype.substr(i,1)) >= 0)
restype_key_arr.push(i+1);
}
// Activiteiten
var sql_a = "SELECT a.res_activiteit_key"
+ " , " + "CASE WHEN sa.res_srtactiviteit_prefix IS NULL"
@@ -122,7 +130,7 @@ if (rsv_ruimte_key == -1)
+ " AND rad.res_discipline_key = disc.ins_discipline_key"
+ " AND rad.res_activiteit_key = a.res_activiteit_key"
+ " AND ins_discipline_verwijder IS NULL"
+ " AND ins_discipline_min_level = " + (restype == "R" ? "3" : "1") // 1; Reserveerbaar object; 2; Verbruiksartikel; 3; Ruimte
+ " AND ins_discipline_min_level IN (" + restype_key_arr.join(",") + ")"
+ " )"
+ " ORDER BY res_activiteit_volgnr"
+ " , sa.res_srtactiviteit_prefix"

View File

@@ -106,6 +106,37 @@ if (datelimit == -1)
li.vrijweekend i.fa, li.vrijedag i.fa {
color: #eee;
}
li.beschikb0 {
color: #FFF;
background-color: #E50012;
}
li.beschikb10 {
color: #FFF;
background-color: #FF8504;
}
li.beschikb50 {
color: #FFF;
background-color: #A5D200;
}
li.beschikb100 {
color : #FFF;
background-color : #0AAA32;
}
li.vrijedag {
color : #333;
background-color : #eee;
cursor: auto;
}
li.vrijweekend {
color : #f33;
background-color : #eee;
cursor: auto;
}
li.werkweekend {
color : #f33;
background-color : inherit;
}
</style>
<script>
// shows the floorplan

View File

@@ -29,7 +29,7 @@
De PlanMode krijg je automatisch als je een res_van meegeeft, of als je planmode=1 meegeeft, dan is het vanaf nu
Zo kun je de intervallen ook in bv een bookmark oproepen.
Met restrict2res_disc kun je een res_disciplinekey (typisch via de klik-url vanuit de tekening) meegeven,
Met restrict2res_disc kun je een res_disciplinekey (typisch via de klik-url vanuit de tekening) meegeven,
dan wordt het (ins_key) object gevalideerd tegen deze catalogus. Als dat niet matcht, kun je toch niet reserveren.
Beetje suf wellicht, maar soms prettig.
@@ -171,11 +171,6 @@ FCLTHeader.Requires({ js: [rooturl+"/appl/pda/modernizr-3.3.0.custom.min.js"],
var res_disc_key = oRs("res_discipline_key").value;
oRs.Close();
if (PlanMode)
{
var bloktijden = res.getBloktijdenDisc(res_disc_key, res_van);
}
sql = " SELECT MIN (ra.res_activiteit_key) res_activiteit_key "
+ " FROM res_activiteitdiscipline ad, "
+ " res_activiteit ra,"
@@ -188,6 +183,12 @@ FCLTHeader.Requires({ js: [rooturl+"/appl/pda/modernizr-3.3.0.custom.min.js"],
res_activiteit_key = oRs("res_activiteit_key").value;
oRs.Close();
if (PlanMode)
{
var bloktijden = DeelMode ? res.getBloktijdenDisc(res_disc_key, res_van) // Deelmode
: res.getBloktijdenAct(res_activiteit_key, res_van); // RuimteMode
}
// Nu we de discipline hebben kunnen we ook wat autorisatiecontrole doen
// Omdat PDA reserveren vaak ad-hoc is zijn we wat flexibeler over
// alg_scope en dergelijke dan anders
@@ -209,37 +210,39 @@ FCLTHeader.Requires({ js: [rooturl+"/appl/pda/modernizr-3.3.0.custom.min.js"],
<% if (PlanMode) { %>
function reserveer(van, tot)
{
var double_reservations = handle_double_reservations(van, tot);
if (double_reservations.length > 0)
{
FcltMgr.confirm("<%=safe.jsstring(L('lcl_res_deel_replace'))%>",
<% if (DeelMode && (!bloktijden.length || !("multiperday" in bloktijden[0]) || !bloktijden[0].multiperday)) { %>
var double_reservations = handle_double_reservations(van, tot);
if (double_reservations.length > 0)
{
fncancel: function () {
return;
}
},
function ()
FcltMgr.confirm("<%=safe.jsstring(L('lcl_res_deel_replace'))%>",
{
var index;
for (index = 0; index < double_reservations.length; index++)
{
var data = {};
data["has_" + double_reservations[index].res_deel_key] = "";
if (index == 0) {
data["chk_<%=res_deel_key%>"] = "on";
proceed_reserveer(van, tot, double_reservations[index].res_rsv_ruimte_key);
}
protectRequest.dataToken(data);
$.post("<%=rooturl%>/appl/res/res_edit_objcat_save.asp?urole=fe&verynew=0&rsv_ruimte_key=" + double_reservations[index].res_rsv_ruimte_key,
data,
null,
"json");
fncancel: function () {
return;
}
return true;
}
);
}
else
},
function ()
{
var index;
for (index = 0; index < double_reservations.length; index++)
{
var data = {};
data["has_" + double_reservations[index].res_deel_key] = "";
if (index == 0) {
data["chk_<%=res_deel_key%>"] = "on";
proceed_reserveer(van, tot, double_reservations[index].res_rsv_ruimte_key);
}
protectRequest.dataToken(data);
$.post("<%=rooturl%>/appl/res/res_edit_objcat_save.asp?urole=fe&verynew=0&rsv_ruimte_key=" + double_reservations[index].res_rsv_ruimte_key,
data,
null,
"json");
}
return true;
}
);
}
else
<% } /* !meerperdag */ %>
{
proceed_reserveer(van, tot);
return true;
@@ -774,17 +777,23 @@ FCLTHeader.Requires({ js: [rooturl+"/appl/pda/modernizr-3.3.0.custom.min.js"],
var authparams = user.checkAutorisation("WEB_RESUSE");
var resparams = {
res_van: new Date().setFloatHours(res_ruimte_data.begintijd, S("res_h")),
res_tot: new Date().setFloatHours(res_ruimte_data.eindtijd, S("res_h")),
res_van: new Date().setFloatHours(res_ruimte_data.begintijd),
res_tot: new Date().setFloatHours(res_ruimte_data.eindtijd),
res_ruimte_key: res_ruimte_key,
ruimtecat: [],
authparams: authparams,
anonymous: true // minimale informatie
};
if (PlanMode) // res_van != null
{ // Planmode hoeft niet vandaag te zijn
resparams.res_van = res_van.setFloatHours(res_ruimte_data.begintijd);
resparams.res_tot = res_van.setFloatHours(res_ruimte_data.eindtijd);
}
var plan_bezet_info = res.plan_bezet_info(resparams);
html.push("<tr>");
html.push(make_plan_regel(res_ruimte_data, plan_bezet_info[res_ruimte_key], resparams, nr_days, hour_px));
html.push(make_plan_regel(res_ruimte_data, plan_bezet_info[res_ruimte_key], resparams, nr_days, hour_px));
html.push("</tr></table></div>");
Response.Write(html.join("\n"));

View File

@@ -167,8 +167,8 @@ user.auth_required_or_abort(ingesloten.length); // We klagen niet over enkele we
readonly: !prsauthparams.writeman,
required: false
});
var sql = "SELECT 0, " + safe.quoted_sql(L("lcl_prs_perslid_visibility0")) + " FROM DUAL UNION ALL"
var sql = "SELECT 0, " + safe.quoted_sql(L("lcl_prs_perslid_visibility0")) + " FROM DUAL UNION ALL"
+ " SELECT 1, " + safe.quoted_sql(L("lcl_prs_perslid_visibility1")) + " FROM DUAL";
FCLTselector("prs_visibility", sql,
{ label: L("lcl_prs_person_visibility"),
@@ -201,7 +201,7 @@ user.auth_required_or_abort(ingesloten.length); // We klagen niet over enkele we
$(function()
{ // Een vinkboxje voor de invoer velden toevoegen.
// Niet een vinkboxje toevoegen voor de flexkenmerken. Dat doet generateFlexKenmerkBlock.listKenmerk wel.
$("input[type=text],input[type=checkbox],input[type=number],input:not([type]),select, textarea").not(".fldtime").not("[class^='fldflex']").not("[class^='fldSflex']").each(
$(":input:not([type=hidden])").not("td.flexvalue :input, td.multi_cb :input").each(
function() {
if ($(this).hasClass("flddate"))
var cb_name = "check_" + $(this).attr("id").substr("show_".length);
@@ -263,4 +263,4 @@ user.auth_required_or_abort(ingesloten.length); // We klagen niet over enkele we
<% MODAL_END(); %>
</body>
</html>
<% ASPPAGE_END(); %>
<% ASPPAGE_END(); %>

View File

@@ -367,6 +367,20 @@ input[type=text].button.required.res_fatal
#timetip {position:absolute;border:1px solid #666;background-color:#fff;padding:2px;z-index:999;display:none;}
.res_optie_eigen { background-color: #F59D04; color: #fff; } /* Tangerine */
.res_definitief_eigen { background-color: #CC5252; color: #fff; } /* Grapefruit */
.res_optie { background-color: #0FD3BB; color: #333; } /* Ocean Green */
.res_definitief { background-color: #007764; color: #fff; } /* Pine Green */
.res_blok { background-color: rgba(255, 255, 255, 0.6); color: #333;} /* bijna als planbordgrid-achtergrond*/
.res_lunchblok { background-color: #fffb;} /* bijna als planbordgrid-achtergrond */ /* hex-kleuren met 4 of 8 karakters worden niet in IE11 ondersteund (rgba() wel) */
.res_vervallen { background-color: #73007E; color: #fff;} /* Berry */
.res_nietvrij { background-color: #B1B3B4; color: #000; } /* Niet beschikbaar: oranje LICHTGROEN */
.res_cleaning { border-left-style: solid;
border-left-color: #808080;
border-right-style: solid;
border-right-color: #808080;
}
@media print
{ /* in print-mode doe we de kleuren als border. Daarmee geeft cleaning wel rare 'punten'. Het zij zo. */
div.res_optie_eigen { height:0px!important; border-top:7px solid #E37B00; border-bottom:7px solid #E37B00; } /* Optie eigen reservering: lichtblauw */

View File

@@ -782,6 +782,8 @@ res = {
+ " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key
+ " AND r.res_activiteit_key = ra.res_activiteit_key";
var roRs = Oracle.Execute(sql);
if (roRs.EOF) // vanuit API2 niet bestaande id
return null;
var rsv_ruimte_verwijder = roRs("res_rsv_ruimte_verwijder").Value;
var res_reservering_key = roRs("res_reservering_key").Value;
@@ -1271,12 +1273,30 @@ res = {
// Tijdens het opslaan wordt gekeken of er catalogussen zijn met een totaal bestelbedrag die boven de drempelwaarde ligt.
// Afhankelijk daarvan wordt de waarde res_rsv_ruimte_cat_appr op 0=Nee of 1=Ja gezet (Wel of niet fiatteren).
// 4) Ben ik de budgethouder van de kostenplaats van de reservering?
rresult.canFiatteren = !oRs.eof && // 1) Er zijn niet gefiatteerde artikelregels en 2) BO status is Nieuw(2).
oRs("res_rsv_ruimte_cat_appr").Value == 1 && // 3) De artikelregels zijn nog niet gefiatteerd en er dient gefiatteerd te worden.
(oRs("budgethouder").Value && oRs("budgethouder").Value == user_key); // 4) Er is een budgethouder voor de kostenplaats en dat ben ik.
rresult.canFiatteren = !oRs.eof && // 1) Er zijn niet gefiatteerde artikelregels en 2) BO status is Nieuw(2).
oRs("res_rsv_ruimte_cat_appr").Value == 1 && // 3) De artikelregels zijn nog niet gefiatteerd en er dient gefiatteerd te worden.
(oRs("budgethouder").Value && user.isCollega(oRs("budgethouder").Value)); // 4) Er is een budgethouder voor de kostenplaats en dat ben ik of een collega/vervanger.
rresult.canAfwijzen = rresult.canFiatteren;
oRs.Close();
// Als een collega/vervanger of de user al gefiatteerd heeft mag hij/zij ook de reservering inzien.
sql = "SELECT ra.res_rsv_ruimte_key"
+ " FROM res_rsv_ruimte rr"
+ " , res_rsv_artikel ra"
+ " , prs_kostenplaats k"
+ " WHERE rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key"
+ " AND rr.prs_kostenplaats_key = k.prs_kostenplaats_key"
+ " AND rr.res_rsv_ruimte_cat_appr = 1"
+ " AND ra.res_rsv_artikel_approved = 1"
+ " AND ra.res_rsv_ruimte_key = " + rsv_ruimte_key
+ " AND k.prs_perslid_key IN (" + user.collegakeylist() + ")";
oRs = Oracle.Execute(sql);
hasFiat = !oRs.eof;
oRs.Close();
rresult.canReadAnyBudget = rresult.canFiatteren || hasFiat;
rresult.canReadAny |= rresult.canReadAnyBudget;
if (rresult.canDelete)
{ // Hij mag geen onderdelen hebben met status 6 (verwerkt)
if (rresult.max_bo && rresult.max_bo == 6)
@@ -1888,6 +1908,7 @@ res = {
+ " , -1 bez_bezoekers_key"
+ " , rrd.res_status_bo_key"
+ " , rd.res_ins_deel_key"
+ " , rd.res_prs_perslid_key"
+ " , rd.res_discipline_key"
+ " , 1 type"
+ " , rr.res_reservering_key"
@@ -1918,6 +1939,7 @@ res = {
+ " , -1 bez_bezoekers_key"
+ " , rrd.res_status_bo_key"
+ " , rd.res_ins_deel_key"
+ " , rd.res_prs_perslid_key"
+ " , rd.res_discipline_key"
+ " , 2 type"
+ " , rr.res_reservering_key"
@@ -1954,6 +1976,7 @@ res = {
+ " , rrd.bez_bezoekers_key"
+ " , rrd.res_status_bo_key"
+ " , rd.res_ins_deel_key"
+ " , rd.res_prs_perslid_key"
+ " , rd.res_discipline_key"
+ " , 1 type"
+ " , 0 res_reservering_key"
@@ -1973,7 +1996,7 @@ res = {
var oRs = Oracle.Execute(sql);
while (!oRs.eof)
{
var ins_d_key = oRs("res_ins_deel_key").Value;
var ins_d_key = params.personenmode?oRs("res_prs_perslid_key").Value:oRs("res_ins_deel_key").Value;
if (!existing_res[ins_d_key]) existing_res[ins_d_key] = new Array();
@@ -2320,7 +2343,7 @@ function get_res_deel_sql (params)
}
var ora_date2 = res_tot.endToSQL();
if (params.mld_opdr_key > 0) // opdrachtmode. Alleen persoon-res_deel die geen alg-scope hebben
if (params.personenmode) // personenmode. Alleen persoon-res_deel die geen alg-scope hebben
{
var sql1 = "SELECT " + params.select_fields
+ " FROM prs_perslid p"

View File

@@ -450,7 +450,10 @@ function res_list (pautfunction, params)
+ " WHERE rar2.res_ruimte_key = rr.res_ruimte_key)"
+ " AND rm.res_rsv_ruimte_contact_key = pcontact.prs_perslid_key"
+ " AND pHost.prs_perslid_key = rm.res_rsv_ruimte_host_key"
+ " AND pcontact.prs_afdeling_key = boom.prs_afdeling_key";
+ " AND pcontact.prs_afdeling_key = boom.prs_afdeling_key"
+ (art_key_arr.length != 0
? " AND 0 = 1"
: "");
if (!res_key)
{
@@ -538,6 +541,9 @@ function res_list (pautfunction, params)
: " FROM res_v_aanwezigrsv_deel rvard")
+ ", res_deel resd"
+ " WHERE rvard.res_deel_key = resd.res_deel_key"
+ (art_key_arr.length != 0
? " AND 0 = 1"
: "")
+ (S("vis_parking_key") != -1 ? " AND resd.res_discipline_key != " + S("vis_parking_key") : "")
+ " GROUP BY rvard.res_rsv_ruimte_key"
+ ", rvard.res_rsv_deel_van"
@@ -644,7 +650,9 @@ function res_list (pautfunction, params)
"boom.prs_afdeling_key",
pautfunction,
(!res_key && (roomcatalogue_key_arr.length != 0) ? roomcatalogue_key_arr.join(",") : ""),
2,null,1);
2,
null,
(params.resourcetypes && inArray(4, params.resourcetypes) ? 4 : 1));
}
else
{ // FrontEnd is al gefilterd
@@ -670,6 +678,9 @@ function res_list (pautfunction, params)
: " FROM res_v_aanwezigrsv_artikel rvara")
+ ", res_artikel resa"
+ " WHERE rvara.res_artikel_key = resa.res_artikel_key"
+ (art_key_arr.length != 0
? " AND resa.res_discipline_key IN (" + art_key_arr.join(",") + ")"
: "")
+ " GROUP BY rvara.res_rsv_ruimte_key"
+ ", resa.res_discipline_key";

View File

@@ -409,7 +409,8 @@ function make_plan_obj_v2(disc_key, res_van, res_tot, params)
var dparams = { res_van: res_van,
res_tot: res_tot,
disc_key: disc_key
disc_key: disc_key,
personenmode: params.personenmode
}
var existing_res = res.plan_deel_bezet_info(dparams);
@@ -451,18 +452,21 @@ function make_plan_obj_v2(disc_key, res_van, res_tot, params)
+ ", r.res_deel_image"
+ ", " + lcl.xsqla('r.res_deel_eenheid', 'r.res_deel_key')
+ ", res_disc_params_preposttime";
if (params.mld_opdr_key > 0)
if (params.personenmode)
select_fields += ", null ins_alg_ruimte_key_org"
+ ", null ins_discipline_key"
+ ", 0 ins_deel_state"
+ ", null ins_deel_key";
+ ", null ins_deel_key"
+ ", res_prs_perslid_key prs_perslid_key";
else
select_fields += ", d.ins_alg_ruimte_key_org"
+ ", d.ins_discipline_key"
+ ", d.ins_deel_state"
+ ", d.ins_deel_key";
+ ", d.ins_deel_key"
+ ", NULL prs_perslid_key";
var group_by = " GROUP BY "
+ " r.res_deel_key"
+ ", res_prs_perslid_key"
+ ", r.res_deel_opmerking"
+ ", r.res_deel_omschrijving"
+ ", r.res_deel_vervaldatum"
@@ -471,7 +475,7 @@ function make_plan_obj_v2(disc_key, res_van, res_tot, params)
+ ", r.res_deel_eenheid"
+ ", res_disc_params_preposttime";
if (!(params.mld_opdr_key > 0))
if (!params.personenmode)
group_by += ", d.ins_alg_ruimte_key_org"
+ ", d.ins_discipline_key"
+ ", d.ins_deel_state"
@@ -486,6 +490,7 @@ function make_plan_obj_v2(disc_key, res_van, res_tot, params)
alg_ruimte_key: alg_ruimte_key,
res_ruimte_key: res_ruimte_key,
mld_opdr_key: params.mld_opdr_key,
personenmode: params.personenmode,
select_fields : select_fields,
reg_key : params.reg_key,
dist_key : params.dist_key,
@@ -525,6 +530,7 @@ function make_plan_obj_v2(disc_key, res_van, res_tot, params)
var res_deel_opm2 = oRs("res_deel_opmerking").value;
var prepost_time = oRs("res_disc_params_preposttime").Value||0;
var ins_deel_key = oRs("ins_deel_key").value;
var prs_perslid_key = oRs("prs_perslid_key").value;
Response.Write(empty_grid_line(row, { res_deel_key: res_deel_key, disc_key: disc_key }, nr_days));
var showLendOut = false;
@@ -548,7 +554,7 @@ function make_plan_obj_v2(disc_key, res_van, res_tot, params)
res_deel_prijs = 0.0;
}
var ar = existing_res[ins_deel_key]; // Bestaande reserveringen op dit deel
var ar = existing_res[params.personenmode?prs_perslid_key:ins_deel_key]; // Bestaande reserveringen op dit deel
var ro = " readonly ", st = false;

View File

@@ -930,9 +930,10 @@ __Log("start make_plan_room");
imageClass = " rrphoto";
}
%>
<label<%=((cad_button && !params.extern) ? " title='" + L("lcl_room_cad") + "' class='details' onclick='openFG(event, " + room.res_ruimte_key + ", \"" + safe.jsstring(room.res_ruimte_nr) + "\")'>" : ">")%>
<label>
<%=(room.catimage ? I(room.catimage + " fa-2x", { fastyle: "far" }) + "&nbsp;" : "")%><%=safe.html(room.res_ruimte_nr)%>
</label>
<i<%=((cad_button && !params.extern) ? " title='" + L("lcl_room_cad") + "' class='far fa-fw fa-map-marker' onclick='openFG(event, " + room.res_ruimte_key + ", \"" + safe.jsstring(room.res_ruimte_nr) + "\")'>" : ">")%></i>
<%
if (nr_days < S('res_plantable_condensed_from'))
{

View File

@@ -221,7 +221,7 @@ else // Bestaande reservering
{
if (urole == "xx") // In case you enter via search
{
var authparamsRESFOF = user.checkAutorisation("WEB_RESFOF");
var authparamsRESFOF = user.checkAutorisation("WEB_RESFOF", true);
if (authparamsRESFOF)
urole = "fo";
else
@@ -994,7 +994,7 @@ if (options.length > 1) {
verkoopfactuur_IFRAMER('reservering', rsv_ruimte_key);
// tracking naar subframe :-)
if (true) // staat niet tussen de notities
if (rsv_ruimte_key > 0) // staat niet tussen de notities
{
page = protectQS.create("../shared/status_info.asp?rsv_ruimte_key=" + rsv_ruimte_key + "&urole=" + urole);
IFRAMER("opdrhistoryframe", page, { icon: "fa-list", title: L("lcl_tracking")} );

View File

@@ -69,6 +69,7 @@ var selectmode = getQParamInt("selectmode", 0); // kiezen van het item
var fotos = getQParamInt("fotos", 1); // for selectmode 1: show photo or not
var floorselect = getQParamInt("floorselect", 1); // na gebouw ook de verdiepingen laten kiezen
var sametab = getQParamInt("sametab", 1); // alles in 1 tab of tabs na elkaar?
var contmode = getQParamInt("contmode", 0); // contouren aan 0 of uit -1
var resdate = getQParamDate("date", null); // de (in stap 2 gekozen) datum
@@ -134,8 +135,8 @@ var link2res = getQParamInt("link2res", 1);
var deel2res = 1; // het is een reserveerbaar deel
// ik twijfel of geb_key en floor_key hier in moeten, voor de zekerheid nu ff 2 versies dan maar
var transitParam1 = buildTransitParam(['daylimit', 'offset', 'limit', 'selectmode', 'res_disc', 'floorselect', 'date', 'link2res', 'dagcapaciteit', 'minbes', 'onlyfree', 'sametab', 'thema_key', 'label_key', 'bordlabel_key', 'themaI_key', 'fotos', 'zoomScale', 'zoomDWGX', 'zoomDWGY']);
var transitParam2 = buildTransitParam(['daylimit', 'offset', 'limit', 'selectmode', 'res_disc', 'floorselect', 'date', 'link2res', 'geb_key', 'floor_key', 'dagcapaciteit', 'minbes', 'onlyfree', 'sametab', 'thema_key', 'label_key', 'bordlabel_key', 'themaI_key', 'fotos', 'zoomScale', 'zoomDWGX', 'zoomDWGY']);
var transitParam1 = buildTransitParam(['daylimit', 'offset', 'limit', 'selectmode', 'res_disc', 'contmode', 'floorselect', 'date', 'link2res', 'dagcapaciteit', 'minbes', 'onlyfree', 'sametab', 'thema_key', 'label_key', 'bordlabel_key', 'themaI_key', 'fotos', 'zoomScale', 'zoomDWGX', 'zoomDWGY']);
var transitParam2 = buildTransitParam(['daylimit', 'offset', 'limit', 'selectmode', 'res_disc', 'contmode', 'floorselect', 'date', 'link2res', 'geb_key', 'floor_key', 'dagcapaciteit', 'minbes', 'onlyfree', 'sametab', 'thema_key', 'label_key', 'bordlabel_key', 'themaI_key', 'fotos', 'zoomScale', 'zoomDWGX', 'zoomDWGY']);
if (datelimit == -1)
{
@@ -501,7 +502,7 @@ if (datelimit == -1)
<script>
window.location.href = "../cad/infobord.asp?discs=<%=ins_disc_key%>&geb_key=<%=geb_key%>&floor_key=<%=floor_key%>"
+ "&bordlabel_key=<%=bordlabel_key%>&themaI=<%=themaI_key%>&thema_key=<%=thema_key%>&label_key=<%=label_key%>"
+ "&datumfilter=<%=resdate.getTime()%>"
+ "&datumfilter=<%=resdate.getTime()%>&contmode=<%=contmode%>"
+ "&link2res=<%=link2res%>"
+ "&deel2res=<%=deel2res%>"
+ "&zoomScale=<%=zoomScale%>&zoomDWGX=<%=zoomDWGX%>&zoomDWGY=<%=zoomDWGY%>"

View File

@@ -107,7 +107,7 @@ var sametab = getQParamInt("sametab", 1); // alles in 1 tab of t
var resdate = getQParamDate("date", null); // de (in stap 2 gekozen) datum
var minimumbeschikbaarheid = getQParamFloat("minbes", 1); // minder dan zoveel uur beschikbaar beschouwen we onbeschikbaar
var onlyfree = getQParamInt("onlyfree", 0); // moeten bezette werkplekken wel (0) of niet (1) (onklikbaar) getoond worden in de lijst
var onlyfree = getQParamInt("onlyfree", 0); // moeten bezette ruimtes 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)
// var themaI_key = getQParamInt("themai_key", 13); // Voor objectkleurenen ("installaties")
@@ -132,8 +132,8 @@ var transitParam2 = buildTransitParam(['activiteit_key', 'daylimit', 'offset', '
<head>
<% FCLTHeader.Generate(); %>
<style>
div.iconmenuh { height: 500px;}
</style>
div.iconmenuh { height: 500px; }
</style>
<script>
function reserveerresruimte (row)
@@ -256,7 +256,7 @@ var transitParam2 = buildTransitParam(['activiteit_key', 'daylimit', 'offset', '
// TODO YKPN/MVP mag versimpeld tot wel/niet per dag. Als we dat generiek willen moet dit simpeler en hoeven we de intervallen niet te weten
var lsql = "SELECT datum, SUM (gevuld) gevuld, MAX (aantal) aantal, MAX (vrijedag) vrijedag, MAX (weekdag) weekdag "
+ "FROM ("
+ " FROM ("
+ " SELECT "+ lcl.xsqla("rd.ins_discipline_omschrijving", "rd.ins_discipline_key")+","
+ " TRUNC (rrr.res_rsv_ruimte_van) datum,"
+ " SUM(DECODE( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van),0,0,1)) gevuld,"
@@ -283,7 +283,7 @@ var transitParam2 = buildTransitParam(['activiteit_key', 'daylimit', 'offset', '
+ (p_flr_key > -1 ? " AND plts.alg_verdieping_key = " + p_flr_key
: (p_geb_key > -1 ? " AND plts.alg_gebouw_key = " + p_geb_key : "")
)
+ (p_disc_key > -1 ? " AND rr.res_discipline_key = " + p_disc_key
+ (p_disc_key > -1 ? " AND rr.res_discipline_key = " + p_disc_key
: " AND rr.res_discipline_key IN (SELECT res_discipline_key FROM res_activiteitdiscipline WHERE res_activiteit_key= " + p_act_key+") "
)
+ (p_resdate ? " AND TRUNC (rrr.res_rsv_ruimte_van) = " + p_resdate.toSQL()
@@ -344,7 +344,7 @@ var transitParam2 = buildTransitParam(['activiteit_key', 'daylimit', 'offset', '
+ (p_flr_key > -1 ? " AND plts.alg_verdieping_key = " + p_flr_key
: (p_geb_key > -1 ? " AND plts.alg_gebouw_key = " + p_geb_key : "")
)
+ (p_disc_key > -1 ? " AND rr.res_discipline_key = " + p_disc_key
+ (p_disc_key > -1 ? " AND rr.res_discipline_key = " + p_disc_key
: " AND rr.res_discipline_key IN (SELECT res_discipline_key FROM res_activiteitdiscipline WHERE res_activiteit_key= " + p_act_key+") "
)
+ (p_resdate ? " AND TRUNC (rrr.res_rsv_ruimte_van) = " + p_resdate.toSQL()
@@ -477,6 +477,73 @@ var transitParam2 = buildTransitParam(['activiteit_key', 'daylimit', 'offset', '
return lsql;
}
// sql = rrpt_res_ruimte_bezetting_op_dag_sql(res_disc_key, act_key, geb_key, floor_key, authparams.ALGwritelevel, resdate, onlyfree);
function rrpt_res_ruimte_bezetting_op_dag_sql(p_disc_key, p_act_key, p_gebouw_key, p_floor_key, p_alglevel, p_resdate, onlyfree)
{
// Bloktijden van de activiteit
var bloktijden = res.getBloktijdenAct(p_act_key, p_resdate);
var van = null;
var tot = null;
if (bloktijden.length == 1) // We doen hier nog geen intervallen, maar als er 1 interval bekend is, gebruiken we die tijden ipv de openingstijden van de res_ruimte
{
van = bloktijden[0].startdatum.getHours() + (bloktijden[0].startdatum.getMinutes() / 60);
tot = bloktijden[0].einddatum.getHours() + (bloktijden[0].einddatum.getMinutes() / 60);
}
var safe_van = van === null || isNaN(parseFloat(van)) ? "NULL" : parseFloat(van);
var safe_tot = tot === null || isNaN(parseFloat(tot)) ? "NULL" : parseFloat(tot);
var sql = " SELECT rr.res_ruimte_key "
+ " , " + lcl.xsqla('rr.res_ruimte_nr', 'rr.res_ruimte_key')
+ " , " + lcl.xsqla('rr.res_ruimte_omschrijving', 'rr.res_ruimte_key')
+ " , rr.res_discipline_key"
+ " , v.alg_verdieping_omschrijving"
+ " , rr.res_ruimte_image"
+ " , COUNT(rsv.res_ruimte_key) bezet"
+ " FROM res_v_aanwezigalg_ruimte rar, "
+ " alg_v_allonroerendgoed plts, "
+ " alg_v_aanwezigverdieping v, "
+ " res_v_aanwezigruimte rr, " // reserveerbare ruimten
+ " res_discipline rd, "
+ " (SELECT rro.res_ruimte_key"
+ " , rrr.res_rsv_ruimte_van"
+ " , rrr.res_rsv_ruimte_tot"
+ " FROM res_v_aanwezigrsv_ruimte rrr,"
+ " res_reservering r,"
+ " res_ruimte_opstelling rro"
+ " WHERE r.res_reservering_key = rrr.res_reservering_key"
+ " AND rro.res_ruimte_opstel_key = rrr.res_ruimte_opstel_key"
+ " AND rrr.res_rsv_ruimte_dirtlevel = 0"
+ " AND TRUNC (rrr.res_rsv_ruimte_van) = TRUNC(" + p_resdate.toSQL() + ")" // Dezelfde dag
+ " AND r.res_reservering_verwijder IS NULL) rsv"
+ " WHERE rr.res_ruimte_key = rar.res_ruimte_key"
+ " AND rr.res_ruimte_key = rsv.res_ruimte_key(+)"
// Voor de >= staat voor de (tot/van) tijd van de bestaande reservering ('(+)' => if any), en na de >= staat voor de (van/tot) tijd van de te maken reservering
+ " AND (rsv.res_rsv_ruimte_tot(+) - TRUNC(rsv.res_rsv_ruimte_tot(+))) * 24 >= COALESCE(" + safe_van + ", rr.res_ruimte_begintijd, " + S("res_t1") + ") " // Vergelijk fractionele uren
+ " AND (rsv.res_rsv_ruimte_van(+) - TRUNC(rsv.res_rsv_ruimte_van(+))) * 24 <= COALESCE(" + safe_tot + ", rr.res_ruimte_eindtijd, " + S("res_t2") + ") " // Vergelijk fractionele uren
+ " AND rar.alg_ruimte_key = plts.alg_ruimte_key"
+ " AND plts.alg_gebouw_key = " + p_gebouw_key
+ (p_floor_key > -1 ? " AND plts.alg_verdieping_key = " + p_floor_key : "")
+ " AND plts.alg_type = 'R'"
+ " AND plts.alg_verdieping_key = v.alg_verdieping_key"
+ (p_alglevel > -1 ? " AND v.alg_verdieping_key IN (SELECT alg_verdieping_key FROM fac_v_my_floors "
+ " WHERE prs_perslid_key = " + user_key
+ " AND niveau = " + p_alglevel + ")"
: "")
+ " AND rd.ins_discipline_key = rr.res_discipline_key"
+ (p_disc_key > -1 ? " AND rr.res_discipline_key = " + p_disc_key
: " AND rr.res_discipline_key IN (SELECT res_discipline_key FROM res_activiteitdiscipline WHERE res_activiteit_key= " + p_act_key + ") "
)
+ " GROUP BY rr.res_ruimte_key"
+ " , rr.res_ruimte_nr"
+ " , rr.res_ruimte_omschrijving"
+ " , rr.res_discipline_key"
+ " , v.alg_verdieping_omschrijving"
+ " , rr.res_ruimte_image"
+ (onlyfree ? " HAVING COUNT (rsv.res_ruimte_key) = 0" : ""); // Alleen beschikbare ruimtes (met bezet = 0)
return sql;
}
// 1. KIES GEBOUW INDIEN NOG NIET BEKEND
// We willen daarbij een indicatie van de mogelijkheden, zijnde het aantal + soort ruimte die voor deze activiteit zijn
@@ -622,7 +689,6 @@ var transitParam2 = buildTransitParam(['activiteit_key', 'daylimit', 'offset', '
cpos =0;
for (disc in gebdiscArr)
{
var gebouwcapaciteit = "??";
%>
<h3><a><%=L("lcl_beschikbaarheid_by_day").format(safe.html(gebouw_naam))+": "+gebdiscArr[cpos].naam%></a></h3>
<div style='display:none;'>
@@ -681,8 +747,6 @@ var transitParam2 = buildTransitParam(['activiteit_key', 'daylimit', 'offset', '
} // resdate
// 3. KIES VERDIEPING INDIEN GEWENST EN NOG NIET BEKEND
if (resdate && floorselect == 1 && geb_key > -1 && floor_key == -1)
{
@@ -746,7 +810,7 @@ var transitParam2 = buildTransitParam(['activiteit_key', 'daylimit', 'offset', '
// 4. ALS JE HIER BENT, WEET JE EEN GEBOUW, DESGEWENST ZELFS EEN VERDIEPING, EN EEN DATUM(B)
// Dan willen we verder tot een res_deel_key en concrete van/tot-tijden
// Dan willen we verder concrete van/tot-tijden
if (resdate && geb_key > 0 && (floorselect == 0 || (floorselect == 1 && floor_key > -1)))
{
if (selectmode != 1)
@@ -786,9 +850,9 @@ var transitParam2 = buildTransitParam(['activiteit_key', 'daylimit', 'offset', '
</script>
<%
}
else {
else
{
// Er zijn geen tekeningen of er wordt naar een lijst geforceerd
sql = "SELECT alg_gebouw_naam"
+ " FROM alg_v_aanweziggebouw"
+ " WHERE alg_gebouw_key = " + geb_key;
@@ -796,18 +860,14 @@ var transitParam2 = buildTransitParam(['activiteit_key', 'daylimit', 'offset', '
var gebouw_naam = oRs("alg_gebouw_naam").Value;
oRs.Close();
bloktijden = res.getBloktijdenDisc(res_disc_key, resdate);
function fnIntervallen(oRs)
{
var res = rdpt.getIntervalString(oRs("res_deel_key").value, resdate, bloktijden);
if (res =="") res = L("lcl_res_intervalbezet");
return res;
return oRs("bezet").value == 0 ? L("lcl_mobile_res_ruimtevrij") : L("lcl_res_intervalbezet");
}
function fnResRuimtePhoto(oRs)
{
var icon="";
var icon = "fa-map-marker";
if (oRs.Fields("res_ruimte_image").Value != null)
{
icon = oRs.Fields("res_ruimte_image").Value;
@@ -828,23 +888,11 @@ var transitParam2 = buildTransitParam(['activiteit_key', 'daylimit', 'offset', '
function fnResRuimteIcon(oRs)
{
// een gekleurde indicatie
var lcls = rdpt.bezettings_class_ruimte(oRs("bezet").value, 99, minimumbeschikbaarheid);
var lcls = rdpt.bezettings_class_ruimte(oRs("bezet").value, 1, minimumbeschikbaarheid); // gewoon bezet of niet, dus capaciteit op 1 (er mag maar 1 reservering staan)
return '<span class="rticon {0}">'.format(lcls) + I("fa-circle fa-2x", {fastyle: "fas"}) + '</span>';
}
function fnrowClass(oRs)
{
// Ik wil een kleur naar gelang het aantal nog beschikbare intervallen. Dat bepalen we indirect in fnIntervallen()
// dat is al per regel, en dat wil ik hier niet nogmaals doen. Vooralsnog een benadering obv tijd, wat wel
// als voordeel heeft dat ook bezetting buiten de intervallen mee telt. Wat goed of fout kan zijn.
// Gedachte is een globaal array te maken met voor elke plek het aantal intervallen, dat alleen wordt berekend
// als dat nog niet eerder gebeurde.
return rdpt.bezettings_class_ruimte(oRs("bezet").value, 99, minimumbeschikbaarheid);
}
// TODO
sql = rrpt_res_ruimte_bezetting_op_dag_sql(res_disc_key, geb_key, floor_key, resdate, (onlyfree ? 99 - minimumbeschikbaarheid : null));
sql = rrpt_res_ruimte_bezetting_op_dag_sql(res_disc_key, act_key, geb_key, floor_key, authparams.ALGwritelevel, resdate, onlyfree);
var rst = new ResultsetTable({ keyColumn: "res_ruimte_key",
ID: "resrmtable",
@@ -855,12 +903,12 @@ var transitParam2 = buildTransitParam(['activiteit_key', 'daylimit', 'offset', '
if (fotos)
rst.addColumn(new Column({caption: "", content: fnResRuimtePhoto, colName: "fnResRuimtePhoto", classList: "placephoto"}));
rst.addColumn(new Column({caption: L("lcl_floor"), content: "alg_verdieping_omschrijving", nowrap: true}));
rst.addColumn(new Column({caption: L("lcl_room"), content: "plaats", nowrap: true}));
rst.addColumn(new Column({caption: L("lcl_estate_ruimte_man_descr"), content: "alg_ruimte_omschrijving", nowrap: true}));
rst.addColumn(new Column({caption: L("lcl_item"), content: "res_ruimte_omschrijving", nowrap: true}));
rst.addColumn(new Column({caption: L("res_ruimte_nr"), content: "res_ruimte_nr", nowrap: true}));
rst.addColumn(new Column({caption: L("res_ruimte_omschrijving"), content: "res_ruimte_omschrijving", nowrap: true}));
rst.addColumn(new Column({caption: "", content: fnResRuimteIcon, colName: "fnResRuimteIcon", classList: "placeicon", align: "center" }));
rst.addColumn(new Column({caption: L("lcl_res_interval_opties"), content: fnIntervallen, nowrap: true}));
// debug: rst.addColumn(new Column({caption: L("lcl_res_dagbezetting"), content: "bezet", datatype: "currency", total: true}));
rst.addAction({ action: "reserveerresruimte", caption: "", isDefault: true });
var cnt = rst.processResultset();

View File

@@ -123,7 +123,7 @@ var artgroup = getQParamInt("artgroup", -1); // Artikelgroep
var sortout = getQParamInt("sortout", -1); // Sortering
var group = getQParamInt("groupby", -1); // Groepering
var resstatus = getQParamInt("resstatus", -1); // fo_status
var resourcetypes = getQParamIntArray("resourcetypes", [1, 2, 3, 4]);
var resourcetypes = getQParamIntArray("resourcetypes", [1, 2, 3]);
var res_actual = getQParamInt("res_actual", 1) == 1; // Standaard aangevinkt indien niet meegegeven
var res_deleted = getQParamInt("res_deleted", 0) == 1; // Standaard niet aangevinkt indien niet meegegeven

View File

@@ -114,6 +114,8 @@ else
// minimaal <20><>n categorie moet aangekruist zijn
if (!roomcat && !objcat && !artcat)
roomcat = true;
var resourcetypes = getFParamIntArray("resourcetypes", [1]); /* 4 = Personenresource is exclusief gemaakt met personenmode */
// ** de velden van de form zijn nu allemaal bekend **
params.datefrom = datefrom;
@@ -153,6 +155,7 @@ else
params.res_notapproved = (backo || minfo || frontend? res_notapproved : null); // Wordt alleen gebruikt bij bo en mi
params.res_tobeapproved= (frontend? res_tobeapproved : null); // Wordt alleen gebruikt bij frontend
params.res_noshowonly = (getFParam("res_noshowonly", "") == "on"); // Wordt alleen gebruikt bij bo en mi
params.resourcetypes = resourcetypes;
// Flags
params.flags = [];

View File

@@ -38,7 +38,8 @@ var dis_key = getQParamInt("dis_key", -1); // (Alleen) default openklappen
var srtact = getFParamInt("srtact", -1);
var mld_opdr_key = getFParamInt("mld_opdr_key", -1); // opdracht/resource mode
var resourcetypes = getFParamIntArray("resourcetypes", [1, 4]);
var resourcetypes = getFParamIntArray("resourcetypes", [1]); /* 4 = Personenresource is exclusief gemaakt met personenmode */
var ins_disc_min_level_arr = [];
if (inArray(1, resourcetypes)) /* 1 = Reserveerbaar object */
ins_disc_min_level_arr.push(1);
@@ -307,6 +308,7 @@ IFRAMER_HEADER(L("lcl_res_frame_voorziening"), buttons);
act_key: getFParamInt("act", -1),
objcat_keys: objcatmulti,
mld_opdr_key : mld_opdr_key,
personenmode: mld_opdr_key > 0 || inArray(4, resourcetypes),
fnStep : fnStep,
srtact : srtact,
planbord: true,
@@ -329,7 +331,7 @@ IFRAMER_HEADER(L("lcl_res_frame_voorziening"), buttons);
geb_key_arr : params.geb_key_arr,
ver_key : params.ver_key,
ver_key_arr : params.ver_key_arr,
mld_opdr_key : mld_opdr_key,
personenmode : params.personenmode,
act_key : params.act_key,
sdisc : "dis.ins_discipline_key",
autfunction : autfunction,
@@ -351,7 +353,7 @@ IFRAMER_HEADER(L("lcl_res_frame_voorziening"), buttons);
+ " AND g.prs_perslid_key ="+user_key
+ " )"
if (mld_opdr_key > 0)
if (inArray(4, resourcetypes)) // personen
{
sql +=" AND dis.ins_discipline_key IN"
+ " (SELECT res_discipline_key" /* DISTINCT */

View File

@@ -27,6 +27,7 @@
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../shared/iface.inc" -->
<!-- #include file="../shared/save2db.inc" -->
<!-- #include file="../mld/mld.inc" -->
<!-- #include file="res.inc" -->
<%
FCLTHeader.Requires({plugins: ["jQuery"]});
@@ -42,21 +43,24 @@ sql = "SELECT res_rsv_ruimte_key"
+ " , bez_bezoekers_key"
+ " , rrd.res_deel_key"
+ " , "+ lcl.xsqla('rd.res_deel_omschrijving', 'rd.res_deel_key')
+ " , prs_perslid_naam_friendly"
+ " , res_rsv_deel_van"
+ " , res_rsv_deel_tot"
+ " FROM ins_deel d"
+ " , prs_v_perslid_fullnames_all p"
+ " , res_deel rd"
+ " , res_rsv_deel rrd"
+ " WHERE rrd.res_rsv_deel_key = " + rsv_deel_key
+ " AND rrd.res_deel_key = rd.res_deel_key"
+ " AND rd.res_ins_deel_key = d.ins_deel_key" ;
+ " AND rd.res_ins_deel_key = d.ins_deel_key(+)"
+ " AND rd.res_prs_perslid_key = p.prs_perslid_key(+)" ;
var oRs = Oracle.Execute(sql);
var rsv_ruimte_key = oRs("res_rsv_ruimte_key").value;
var bezoekers_key = oRs("bez_bezoekers_key").value;
var old_van = new Date(oRs("res_rsv_deel_van").value);
var old_tot = new Date(oRs("res_rsv_deel_tot").value);
var old_deel_key = oRs("res_deel_key").value;
var old_deel_oms = oRs("res_deel_omschrijving").value;
var old_deel_oms = oRs("res_deel_omschrijving").value || oRs("prs_perslid_naam_friendly").value;
if (rsv_ruimte_key) // Bij parkeerplaats is er geen res_rsv_ruimte_key.
res.res_set_dialect(rsv_ruimte_key);
@@ -176,6 +180,7 @@ if (old_deel_key != new_deel_key)
+ ", rr.res_rsv_ruimte_volgnr"
+ ", rr.res_ruimte_opstel_key"
+ ", rr.alg_ruimte_key"
+ ", rr.mld_opdr_key"
+ " FROM res_rsv_ruimte rr,"
+ " res_deel rd,"
+ " res_rsv_deel rrd"
@@ -207,7 +212,7 @@ if (old_deel_key != new_deel_key)
ROFIELDTR("fldresroom", L("lcl_room"), oRs2("res_ruimte_nr").value);
oRs2.Close();
}
else // Alg_ruimte_key zal gevuld zijn
else if (oRs("alg_ruimte_key").value != null)
{
sql = "SELECT alg_ruimte_aanduiding"
+ " FROM alg_v_ruimte_gegevens_all"
@@ -216,6 +221,12 @@ if (old_deel_key != new_deel_key)
ROFIELDTR("fldresroom", L("lcl_room"), oRs2("alg_ruimte_aanduiding").value);
oRs2.Close();
}
else // mld_opdr_key zal gevuld zijn
{
var mld_opdr = mld.mld_opdr_info(oRs("mld_opdr_key").value);
var opdr_id = (mld_opdr.srtdiscprefix||"") + mld_opdr.mld_key + "/" + mld_opdr.volgnr;
ROFIELDTR("fldresroom", L("lcl_mld_opdr_number"), opdr_id);
}
oRs.Close();
var this_res = res.func_enabled(rsv_ruimte_key); // Wat heb ik zoal aan rechten op deze specifieke reservering
@@ -286,4 +297,4 @@ IFACE.FORM_END();
%>
<% MODAL_END(); %>
</body>
</html><% ASPPAGE_END(); %>
</html><% ASPPAGE_END(); %>

View File

@@ -505,7 +505,7 @@ function scaffolding_edit(model, scf_params)
$(function()
{
$("input[type=text],input[type=checkbox],input[type=number],input:not([type]),select, textarea").not(".fldtime").not(".processingtime").not("[class^='fldflex']").not("[class^='fldSflex']").each(function() {
$(":input:not([type=hidden])").not("td.flexvalue :input, td.multi_cb :input").each(function() {
if ($(this).hasClass('flddate'))
var fld_name = $(this).attr("id").substr("show_".length);
else if ($(this).hasClass("suggest"))

View File

@@ -859,7 +859,7 @@ function oneFileInfo(pFileData, pResult, pModule, pKey, pSubpath, pNiveau, param
var oStream = Server.CreateObject("ADODB.Stream");
oStream.Open;
oStream.Type = 1; // adTypeBinary
oStream.LoadFromFile(fAttachPath + fName);
oStream.LoadFromFile(safe.UNC(fAttachPath + fName));
var oXML = new ActiveXObject("Msxml2.DOMDocument.6.0");
var oNode = oXML.createElement("encodeddata");
@@ -1493,7 +1493,7 @@ function StreamFile(filePath, filename, mime, pcontentdp)
var oStream = Server.CreateObject("ADODB.Stream");
oStream.Open;
oStream.Type = 1; // adTypeBinary
oStream.LoadFromFile(safefullpath);
oStream.LoadFromFile(safe.UNC(safefullpath));
while (!oStream.EOS && Response.IsClientConnected)
{
Response.BinaryWrite(oStream.read(CHUNKSIZE));
@@ -1519,7 +1519,7 @@ function zipfile(fullpath, filename)
iStream.CharSet = "utf-8";
try
{
iStream.LoadFromFile(fullpath);
iStream.LoadFromFile(safe.UNC(fullpath));
}
catch (e)
{
@@ -1533,7 +1533,7 @@ function zipfile(fullpath, filename)
oStream.Open;
oStream.Type = 1; // adTypeBinary
oStream.LoadFromFile(temp);
oStream.LoadFromFile(safe.UNC(temp));
oStream.Position = 0;
fso.DeleteFile(temp);
Response.clear;

View File

@@ -44,8 +44,8 @@ var sql = "SELECT ins_srtcontrole_key"
+ " , ctr_disc_params cdp"
+ " , ctr_discipline cd"
+ filtClause.from
+ " WHERE (UPPER(" + lcl.xsql("ins_srtcontrole_omschrijving", "isc.ins_srtcontrole_omschrijving") + ") LIKE " + safe.quoted_sql_wild2(chars)
+ " OR UPPER("+ lcl.xsql("ins_discipline_omschrijving", "d.ins_discipline_omschrijving") + ") LIKE " + safe.quoted_sql_wild2(chars) + ")"
+ " WHERE (UPPER(" + lcl.xsql("ins_srtcontrole_omschrijving", "isc.ins_srtcontrole_key") + ") LIKE " + safe.quoted_sql_wild2(chars)
+ " OR UPPER("+ lcl.xsql("ins_discipline_omschrijving", "cd.ins_discipline_key") + ") LIKE " + safe.quoted_sql_wild2(chars) + ")"
+ " AND isc.ctr_discipline_key = cdp.ctr_ins_discipline_key"
+ " AND cdp.ctr_ins_discipline_key = cd.ins_discipline_key"
+ filtClause.where

View File

@@ -20,7 +20,7 @@ function getFiltClauseSrtcontrole(pfiltcode, params, init)
switch(pfiltcode)
{
case "MJOB": // MJOB: Alleen de MJOB taken mag je zien.
lfiltClause.select += ", " + lcl.xsqla("ins_srtcontrole_omschrijving", "isc.ins_srtcontrole_omschrijving")
lfiltClause.select += ", " + lcl.xsqla("ins_srtcontrole_omschrijving", "isc.ins_srtcontrole_key")
lfiltClause.where += " AND cdp.ctr_disc_params_ismjob = 1"
+ " AND (ins_srtcontrole_eind IS NULL OR ins_srtcontrole_eind > SYSDATE)";
break;
@@ -36,7 +36,7 @@ function getFiltClauseSrtcontrole(pfiltcode, params, init)
+ " AND w.fac_gebruiker_prs_level_read < 9"
+ " AND w.fac_gebruiker_alg_level_read < 9"
+ " AND w.prs_perslid_key = " + user_key + ")";
lfiltClause.select += ", " + lcl.xsql("ins_srtcontrole_omschrijving", "isc.ins_srtcontrole_omschrijving")
lfiltClause.select += ", " + lcl.xsql("ins_srtcontrole_omschrijving", "isc.ins_srtcontrole_key")
+ " || CASE"
+ " WHEN ins_srtcontrole_niveau = 'S'"
+ " THEN ' ' || asi.srtdeel_oms"

View File

@@ -1900,12 +1900,19 @@ div.labelgrid label {
text-overflow: ellipsis;
font-size: 1.1em;
padding-left: 6px;
cursor: inherit;
max-width: calc(100% - 24px);
display: inline-block;
}
div.labelgrid label i {
vertical-align: bottom;
padding: 1px;
color: ==tableheaderbackgroundcolor==;
}
div.labelgrid i {
vertical-align: super;
cursor: pointer;
}
#mod_res_selectroom .labelgrid:hover,
#mod_res_selectroom .labelgrid:hover label i {
color: ==menuitemhovercolor==;

View File

@@ -8,7 +8,7 @@
Context: Vanuit ELK asp bestand
*/
var FCLTVersion="2021.1d";
var FCLTVersion="2021.1e";
var FCLTMinDatabaseSchema="40"; // Alleen de cijfers
var custpath = rooturl + "/cust/" + customerId; // path to customer files

View File

@@ -640,23 +640,19 @@ function ROFIELD(pclass, plabel, pvalue, params)
if (params.infoPointer)
{
if (params.infoPointer.Url.indexOf("status_info.asp") > 0)
prot_url = protectQS.create(params.infoPointer.Url);
else
prot_url = params.infoPointer.Url;
var url = params.infoPointer.Url;
if (params.infoPointer.NewWindow)
{
var fnclick = "FcltMgr.windowopen(\"" + safe.jsstring(prot_url) + "\")";
var fnclick = "FcltMgr.windowopen(\"" + safe.jsstring(url) + "\")";
}
else if (params.infoPointer.Modal)
{
fnclick = "FcltMgr.openModalDetail(\"" + safe.jsstring(prot_url) + "\""
fnclick = "FcltMgr.openModalDetail(\"" + safe.jsstring(url) + "\""
+ ", { titel: \"" + safe.jsstring(params.infoPointer.Title||"") + "\" })";
}
else
{
fnclick = "FcltMgr.openDetail(\"" + safe.jsstring(prot_url) + "\""
fnclick = "FcltMgr.openDetail(\"" + safe.jsstring(url) + "\""
+ ", { reuse: true, titel: \"" + safe.jsstring(params.infoPointer.Title||"") + "\" })";
}
input += " onclick='" + safe.htmlattr(fnclick) + "'";

View File

@@ -594,7 +594,8 @@ function kv2html(pfield, pparams)
// Bloktitel's en Nieuwe secties doen we niks meer aan, die zijn goed zoals ze zijn.
if (pfield.kkenmerktype == "l" || pfield.kkenmerktype == "Q")
return (pparams.kv);
// hidden when ishidden
return (pfield.ishidden ? '<div class="hidden"></div>' : pparams.kv);
if (pparams.kv != "")
{
@@ -2160,7 +2161,7 @@ function listKenmerk(sql, module, pkey, props)
prssql = true;
thisfield.kwaarde = thisfield.kwaarde.substr(thisfield.kwaarde.indexOf('##SQL##') + 7);
var sql2 = thisfield.kwaarde.replace("##PRS_PERSLID_KEY##", props.prs_key).replace("##PRS_CONTACTPERSOON_KEY##", props.cont_key);
oRsPerslid = Oracle.Execute(sql2);
var oRsPerslid = Oracle.Execute(sql2);
if (!oRsPerslid.eof)
thisfield.kwaarde = String(oRsPerslid(0).Value);
else
@@ -2803,7 +2804,8 @@ function listKenmerk(sql, module, pkey, props)
%><script type="text/javascript">
$(function()
{
if (typeof Modernizr == "undefined" || !Modernizr.inputtypes.date)
var touchdevice = (typeof window.orientation !== "undefined") || (typeof window.ontouchstart !== "undefined") || (navigator.userAgent.indexOf('IEMobile') !== -1);
if (typeof Modernizr == "undefined" || !Modernizr.inputtypes.date || !touchdevice)
{
if ($.datepicker)
{
@@ -2814,7 +2816,6 @@ function listKenmerk(sql, module, pkey, props)
dateFormat: 'dd-mm-yy', // zo verwacht de flex-code het.
changeYear: true,
changeMonth: true,
duration: 'fast',
beforeShow: function(input, inst) { setTimeout("FcltMgr.resized(window)", 100) },
dayNames: calendar_names.days,
dayNamesMin: calendar_names.daysMin,
@@ -2861,7 +2862,8 @@ function listKenmerk(sql, module, pkey, props)
var minMax = minMax || {};
$(function()
{
if (typeof Modernizr == "undefined" || !Modernizr.inputtypes.time)
var touchdevice = (typeof window.orientation !== "undefined") || (typeof window.ontouchstart !== "undefined") || (navigator.userAgent.indexOf('IEMobile') !== -1);
if (typeof Modernizr == "undefined" || !Modernizr.inputtypes.time || !touchdevice)
{
<% for (i = 0; i < minMax.length; i++)
{ %>
@@ -2962,12 +2964,10 @@ function listKenmerk(sql, module, pkey, props)
<script type="text/javascript">
$(function()
{ // Alleen een vinkboxje voor de flexkenmerken toevoegen.
$("[class^='fldflex'], [class^='fldflexS']").not(".fldtime").each( // beetje misbruik van classes?
$("td.flexvalue :input:not([type=hidden])").each( // beetje misbruik van classes?
function()
{
if ($(this).hasClass('flddate'))
var cb_name = "check_" + $(this).attr("id").substr("show_".length);
else if ($(this).hasClass('suggest'))
if ($(this).hasClass('suggest'))
var cb_name = "check_" + $(this).attr("id").substr(0, $(this).attr("id").length-5);
else
var cb_name = "check_" + $(this).attr("name");

View File

@@ -362,10 +362,14 @@ function callback_flex_expr_info(json)
{
for (var kenmerk=0; kenmerk < json.length; kenmerk++)
{
// save initial visibility state of field
var initialVisible = $("#" + json[kenmerk].kfieldid + "val").is(":visible");
// save default value in flex field
if ($("#" + json[kenmerk].kfieldid + "val").attr("default") == undefined)
{
$("#" + json[kenmerk].kfieldid + "val").attr("default", json[kenmerk].waarde);
$("#" + json[kenmerk].kfieldid + "val").attr("default", json[kenmerk].waarde);
var $fld = $("#" + json[kenmerk].kfieldid + "val");
if ($fld.length && $fld.attr("type") == "checkbox" && !$fld.prop("checked")) { $fld.prop("checked", $fld.attr("default") == "1"); }
}
if ($("#" + json[kenmerk].kfieldid + "val").hasClass("flexshow") ||
@@ -417,7 +421,7 @@ function callback_flex_expr_info(json)
var $fld = $("#" + json[kenmerk].kfieldid + "val");
var $fld_show = $("#Suggest" + json[kenmerk].kfieldid + "_show");
if ($fld.length && $fld.attr("type") == "checkbox") { $fld.attr("default", $fld.prop("checked") ? "1" : "0"); }
if ($fld.length && $fld.attr("type") == "checkbox" && initialVisible) { $fld.attr("default", $fld.prop("checked") ? "1" : "0"); }
// erase the value when the field is hidden and the field has a value
if (json[kenmerk].exprwaarde == 0 || json[kenmerk].exprwaarde == null) {

View File

@@ -88,7 +88,8 @@ function SafeExec( sql, catchErrors ) {
{
_LastFacError.friendlyMsg = RegCode[2] || _LastFacError.faccode; // een ORA-20000 met ingebouwde tekst zoals ORA-20000: alg_m999 Ruimte kan nog niet verwijderd worden. Er zijn nog lopende meldingen
var knownError = true;
} else if (msg.match(/^ORA-20001/i))
}
else if (msg.match(/^ORA-20001/i)) // Alleen tekst: 'ORA-20001 Deze ruimte of voorziening is niet beschikbaar. Kies een andere ruimte of een ander tijdstip!'
{
var knownError = true;
}
@@ -103,7 +104,7 @@ function SafeExec( sql, catchErrors ) {
var knownError = true;
_LastFacError.friendlyMsg = oRs("FAC_MESSAGE_TEXT").Value + "\n(" + _LastFacError.faccode + ")";
}
else
else if (!knownError)
{
__SafeDoLog("TODO: <em>{0}</em> opnemen in een XXX_INI.SRC (FCLT#51673)?".format(safe.html(_LastFacError.faccode)));
}

View File

@@ -41,7 +41,7 @@
{
try
{
oWhipFile = _openContourDWF(dwfFile, pContLayers, pLabelLayers, pMinMergeDistance)
oWhipFile = _openContourDWF(dwfFile, pContLayers, pLabelLayers, pMinArea, pMinMergeDistance)
}
catch( ee )
{