1091 lines
50 KiB
Plaintext
1091 lines
50 KiB
Plaintext
<%@language = "javascript" %>
|
||
<%
|
||
/* $Revision$
|
||
$Id$
|
||
|
||
File: res_reservering.asp
|
||
Description: Muteerscherm voor reserveringen
|
||
Parameters: (allemaal optioneel)
|
||
rsv_ruimte_key: te bewerken
|
||
restype: "R" of "CV" of "O" om (via CV) alleen catering/objecten te reserven. "R" is default.
|
||
"O" is vanuit Opdrachten, een variant van CV, biedt de optie om bepaalde activiteiten (nl CV)
|
||
niet te tonen.
|
||
verynew: we zijn heel erg nieuw (net aangemaakt)
|
||
gevolg:==> Bij CV wordt catering direct geopend
|
||
==> ?? Automatisch multi voor alle deelreservingen ??
|
||
nowold: nog sterker dan verynew, negeer verynew.
|
||
Context:
|
||
Note:
|
||
*/ %>
|
||
|
||
<!-- #include file="../Shared/common.inc" -->
|
||
<!-- #include file="../Shared/iface.inc" -->
|
||
<!-- #include file="res.inc" -->
|
||
<!-- #include file="../fin/fin_verkoopfactuur.inc" -->
|
||
<%
|
||
FCLTHeader.Requires({plugins: ["jQuery"],
|
||
js: ["jQuery-ui.js"],
|
||
css: ["../shared/suggest/suggest.css"]}); // css voor child frames
|
||
|
||
// AUTORISATIEPARAMETERS
|
||
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key", -1);
|
||
if (rsv_ruimte_key > 0)
|
||
{
|
||
var urole = getQParamSafe("urole", "fe");
|
||
var autolike = getQParamInt("autolike", 0) == 1;
|
||
}
|
||
else
|
||
var urole = getQParamSafe("urole", "xx"); // autodetect
|
||
var rrr = { rsv_ruimte_key: rsv_ruimte_key };
|
||
|
||
var orgurole = urole;
|
||
var verynew = getQParamInt("verynew", 0) == 1 && getQParamInt("nowold", 0) != 1;
|
||
var bez_edit = getQParamInt("bez_edit", 0) == 1;
|
||
var res_edit = getQParamInt("res_edit", 0) == 1;
|
||
var pageTitle = L('lcl_reservation');
|
||
|
||
var transitParam = "";
|
||
if (verynew)
|
||
transitParam += "&verynew=1";
|
||
|
||
// res_deel_key: Te reserveren deel, Vanuit planbord geklikt
|
||
// activiteit_key: res_activiteit_key die we van plan zijn. Wordt automatisch bevroren
|
||
// host_key: gastheer, vanuit PACTA
|
||
// ab_mode: zie res_default_CVAB_mode
|
||
// alg_ruimte_key, handig bij bezorgen
|
||
// flex_defaults pacta, bijv: bsn=12345678&plaats=Enschede&postcode=1234AB
|
||
transitParam += buildTransitParam(["res_deel_key", "res_artikel_key", "res_ruimte_key", "disc_key", "host_key", "activiteit_key",
|
||
"res_van", "res_tot", "ab_mode", "alg_ruimte_key","mld_opdr_key", "mld_melding_key",
|
||
"flex_defaults", "rsv_copy_key","rsv_is_serie","pool","timefrom",
|
||
"bez_omschr", // vanuit Outlook
|
||
"bez_naam", "bez_bedrijf"]); // alleen eerste naam/bedrijf
|
||
|
||
var res_deel_key = getQParamInt("res_deel_key", -1);
|
||
var res_artikel_key = getQParamInt("res_artikel_key", -1);
|
||
|
||
// Nog een alternatieve ingang: als een (hoofd)reserveringskey wordt meegegeven en geen deelreservernmg
|
||
// Dan gaat het toch niet om een nieuwe reservering, maar iets dat info wil over deze xreservering
|
||
// Dan zoeken we er de eerste deelreservering bij om verder te gaan
|
||
if (rsv_ruimte_key == -1 && res_deel_key == -1 && res_artikel_key == -1)
|
||
{
|
||
var res_reservering_key = getQParamInt("reservering_key", -1);
|
||
if (res_reservering_key > 0)
|
||
{
|
||
sql = "SELECT MIN(res_rsv_ruimte_key) res_rsv_ruimte_key"
|
||
+ " FROM res_rsv_ruimte"
|
||
+ " WHERE res_rsv_ruimte_verwijder IS NULL"
|
||
+ " AND res_reservering_key = " + res_reservering_key
|
||
var oRs = Oracle.Execute(sql);
|
||
if (!oRs.eof)
|
||
{
|
||
rsv_ruimte_key = oRs("res_rsv_ruimte_key").value;
|
||
var byMainResKey = true;
|
||
}
|
||
oRs.Close();
|
||
}
|
||
}
|
||
|
||
if (rsv_ruimte_key == -1)
|
||
{
|
||
// nieuwe reservering
|
||
var res_ruimte_key = getQParamInt("res_ruimte_key", -1);
|
||
|
||
rrr = { reservering_key: getQParamInt("reservering_key", ""),
|
||
rsv_ruimte_volgnr: "",
|
||
rsv_ruimte_omschrijving: "",
|
||
reservering_ispool : getQParamInt("pool", 0) == 1,
|
||
activiteit_omschrijving: "",
|
||
srtactiviteit_prefix: ""
|
||
};
|
||
|
||
if (res_ruimte_key == -1)
|
||
{
|
||
var koppelzalen = [];
|
||
// Enigszins afwijkend: res_alg_ruimte_key (ipv alg_ruimte_key) om aan te geven dat je voor alg_ruimte een ruimteservering wilt maken
|
||
var res_alg_ruimte_key = getQParamInt("res_alg_ruimte_key", -1);
|
||
if (res_alg_ruimte_key > 0)
|
||
{
|
||
// Maakt deze res_alg_ruimte_key onderdeel uit van een koppelzaal dan eerst vragen of de gekozen zaal of de koppelzaal gewenst is.
|
||
var sql = "SELECT rr.res_ruimte_key"
|
||
+ " , rr.res_ruimte_nr"
|
||
+ " FROM res_alg_ruimte ra"
|
||
+ " , res_ruimte rr"
|
||
+ " WHERE ra.res_ruimte_key = rr.res_ruimte_key"
|
||
+ " AND ra.res_alg_ruimte_verwijder IS NULL"
|
||
+ " AND ra.alg_ruimte_key = " + res_alg_ruimte_key;
|
||
var oRs = Oracle.Execute(sql);
|
||
while (!oRs.eof)
|
||
{
|
||
koppelzalen.push( { icon: "fa-map-marker"
|
||
, title: oRs("res_ruimte_nr").Value
|
||
, action: "res_ruimte_key=" + oRs("res_ruimte_key").Value + ";$('div#koppel_modal').dialog('close').remove();"
|
||
});
|
||
oRs.MoveNext();
|
||
}
|
||
oRs.Close();
|
||
|
||
if (koppelzalen.length == 1)
|
||
{
|
||
res_ruimte_key = res.alg_ruimte2res_ruimte(res_alg_ruimte_key);
|
||
transitParam += "&res_ruimte_key=" + res_ruimte_key;
|
||
}
|
||
}
|
||
}
|
||
if (res_deel_key > 0 || res_artikel_key > 0)
|
||
{
|
||
if (res_deel_key > 0)
|
||
sql = "SELECT rd.res_discipline_key"
|
||
+ " FROM res_deel rd"
|
||
+ " WHERE res_deel_key = " + res_deel_key;
|
||
else
|
||
sql = "SELECT ra.res_discipline_key"
|
||
+ " FROM res_artikel ra"
|
||
+ " WHERE res_artikel_key = " + res_artikel_key;
|
||
var oRs = Oracle.Execute(sql);
|
||
var disc_key = oRs("res_discipline_key").Value;
|
||
oRs.Close();
|
||
}
|
||
// Autorisatie-rol-bepaling
|
||
var autfunctions = { fe: "WEB_RESUSE", bo: "WEB_RESBOF", fo: "WEB_RESFOF" };// pas op voorkeursvolgorde!
|
||
if (urole == "xx") // Vanuit prodsearch, probeer intelligente autoUrole
|
||
{ // Let op: als FSN#22774 wordt doorgevoerd is urole niet meer nodig in dit bestand
|
||
// en kan onderstaande code waarschijnlijk naar res_edit_rsv_ruimte.asp
|
||
if (res_ruimte_key > 0)
|
||
{
|
||
sql = "SELECT 1"
|
||
+ " FROM fac_functie ff,"
|
||
+ res.fac_v_my_res_ruimte_write + "rr"
|
||
+ " WHERE ff.fac_functie_code = 'WEB_RESFOF'"
|
||
+ " AND res_ruimte_key = " + res_ruimte_key
|
||
+ " AND ff.fac_functie_key = rr.fac_functie_key"
|
||
+ " AND prs_perslid_key = " + user_key;
|
||
var oRs = Oracle.Execute(sql);
|
||
urole = oRs.Eof?"fe":"fo";
|
||
oRs.Close();
|
||
}
|
||
else if (res_deel_key > 0 || res_artikel_key > 0)
|
||
{
|
||
var canFOF = user.checkAutorisation("WEB_RESFOF", true, disc_key);
|
||
urole = canFOF?"fo":"fe";
|
||
}
|
||
else
|
||
{
|
||
urole = user.autoUrole("fo", autfunctions, false); // false->verplicht, je moet 1 van de 2 hebben
|
||
}
|
||
}
|
||
|
||
// Wat voor activiteit, soort activiteit en eigenschappen daarbij
|
||
var srtact = getQParamInt("srtact", -1);
|
||
var meteindtijd = true;
|
||
|
||
// Is er een activiteit meegegeven, dan kan de srtactiviteit enz hieruit gehaald worden en worden die parameters genegeerd
|
||
var act_key = getQParamInt("activiteit_key", -1);
|
||
if (act_key > -1)
|
||
{
|
||
var sql_a = "SELECT res_srtactiviteit_key"
|
||
+ " , res_activiteit_image"
|
||
+ " , res_activiteit_meteindtijd"
|
||
+ ", " + lcl.xsqla("a.res_activiteit_omschrijving", "a.res_activiteit_key")
|
||
+ " FROM res_activiteit a"
|
||
+ " WHERE res_activiteit_key = " + act_key;
|
||
var oRs_a = Oracle.Execute(sql_a);
|
||
if (!oRs_a.eof)
|
||
{
|
||
srtact = oRs_a("res_srtactiviteit_key").value;
|
||
meteindtijd = oRs_a("res_activiteit_meteindtijd").value == 1;
|
||
rrr.activiteit_omschrijving= oRs_a("res_activiteit_omschrijving").value;
|
||
rrr.activiteit_image= oRs_a("res_activiteit_image").value;
|
||
}
|
||
oRs_a.Close();
|
||
}
|
||
|
||
// letters van de ASP naar code in tabel
|
||
function restype2srtactiviteit_soort (prestype)
|
||
{
|
||
var soortvalue;
|
||
if (prestype == "R") soortvalue = 0;
|
||
if (prestype == "CV") soortvalue = 1;
|
||
if (prestype == "O") soortvalue = 2;
|
||
return soortvalue;
|
||
}
|
||
|
||
var restype;
|
||
if (srtact > 0)
|
||
{
|
||
// Bepalen restype uit srtactiviteit.
|
||
var sql = "SELECT sa.res_srtactiviteit_soort"
|
||
+ " , sa.res_srtactiviteit_prefix"
|
||
+ " FROM res_srtactiviteit sa"
|
||
+ " WHERE sa.res_srtactiviteit_key = " + srtact;
|
||
var oRs = Oracle.Execute(sql);
|
||
var restype = ["R", "CV", "O"][oRs("res_srtactiviteit_soort").value]; // srtactiviteit_soort2restype()
|
||
rrr.srtactiviteit_prefix = oRs("res_srtactiviteit_prefix").value || "";
|
||
oRs.Close();
|
||
}
|
||
else
|
||
// Dan is restype meegegeven.
|
||
var restype = getQParam("restype", "R"); // Default gaan we een ruimte reserveren
|
||
|
||
rrr.met_eindtijd = meteindtijd;
|
||
|
||
}
|
||
else // Bestaande reservering
|
||
{
|
||
if (urole == "xx") // In case you enter via search
|
||
{
|
||
var authparamsRESFOF = user.checkAutorisation("WEB_RESFOF", true);
|
||
if (authparamsRESFOF)
|
||
urole = "fo";
|
||
else
|
||
urole = "fe";
|
||
}
|
||
// Zoek zo snel mogelijk info van res_rsv_ruimte op
|
||
sql = "SELECT rr.res_reservering_key"
|
||
+ " , rr.res_reservering_ispool"
|
||
+ " , alg_ruimte_key"
|
||
+ " , res_ruimte_opstel_key"
|
||
+ " , res_rsv_ruimte_volgnr"
|
||
+ " , res_rsv_ruimte_verwijder"
|
||
+ " , res_rsv_ruimte_dirtlevel"
|
||
+ " , ra.res_activiteit_aantalverplicht"
|
||
+ " , res_rsv_ruimte_omschrijving"
|
||
+ " , ra.res_activiteit_image"
|
||
+ ", " + lcl.xsqla("ra.res_activiteit_omschrijving", "ra.res_activiteit_key")
|
||
+ " , sa.res_srtactiviteit_prefix"
|
||
+ " FROM res_reservering rr"
|
||
+ " , res_rsv_ruimte rrr"
|
||
+ " , res_activiteit ra"
|
||
+ " , res_srtactiviteit sa"
|
||
+ " WHERE rr.res_reservering_key = rrr.res_reservering_key"
|
||
+ " AND ra.res_srtactiviteit_key = sa.res_srtactiviteit_key"
|
||
+ " AND ra.res_activiteit_key = rrr.res_activiteit_key"
|
||
+ " AND res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||
oRs = Oracle.Execute(sql);
|
||
|
||
rrr = { rsv_ruimte_key : rsv_ruimte_key,
|
||
reservering_key : oRs("res_reservering_key").value,
|
||
reservering_ispool : oRs("res_reservering_ispool").value == 1,
|
||
rsv_ruimte_volgnr : oRs("res_rsv_ruimte_volgnr").value,
|
||
rsv_ruimte_verwijder: oRs("res_rsv_ruimte_verwijder").value,
|
||
rsv_ruimte_dirtlevel: oRs("res_rsv_ruimte_dirtlevel").value,
|
||
rsv_ruimte_omschrijving: oRs("res_rsv_ruimte_omschrijving").value,
|
||
activiteit_omschrijving: oRs("res_activiteit_omschrijving").value,
|
||
activiteit_image : oRs("res_activiteit_image").value||"",
|
||
aantal_verplicht : oRs("res_activiteit_aantalverplicht").value,
|
||
srtactiviteit_prefix: oRs("res_srtactiviteit_prefix").value || "",
|
||
met_eindtijd : true
|
||
};
|
||
|
||
if (oRs("alg_ruimte_key").value != null)
|
||
restype = "CV";
|
||
else if (oRs("res_ruimte_opstel_key").value != null)
|
||
restype = "R";
|
||
else
|
||
restype = "O";
|
||
|
||
oRs.Close();
|
||
|
||
FCLTHeader.Title(L("lcl_reservation"));
|
||
var this_res = res.func_enabled(rsv_ruimte_key, null, { isOptional: true} ); // Wat heb ik zoal aan rechten op deze specifieke reservering
|
||
rrr.met_eindtijd = this_res.res_met_eindtijd;
|
||
|
||
var hasFOBOread = this_res.canReadFO || this_res.canReadBO;
|
||
if (byMainResKey && !this_res.canReadAny) // Dit is voor het heel bijzondere geval dat je voor deelres 1 geen
|
||
{ // rechten hebt maar mogelijk voor anderen wel. Dan laten we res_list het uitzoeken.
|
||
Response.Redirect("res_search_list.asp?urole=" + urole + "&resnum=" + res_reservering_key);
|
||
}
|
||
|
||
user.auth_required_or_abort(this_res.canReadAny); // Meeste diepere schermen controleren ook zelf wel (UWVA#20446: bez nog niet).
|
||
|
||
// Veelgevraagd: autoswitch naar fo als geen fe-schrijfrechten
|
||
if (urole == "fe" && !this_res.canWrite("WEB_RESUSE") && this_res.canWrite("WEB_RESFOF"))
|
||
{
|
||
urole = "fo";
|
||
}
|
||
}
|
||
|
||
// Mag ik ook BEZ doen (met ongeveer dezelfde rol als RES)?
|
||
// Functioneel nagaan wat we met BO eigenlijk moeten
|
||
var bezauthparams = user.checkAutorisation({ fe: "WEB_BEZUSE", bo: "WEB_BEZBOF", fo: "WEB_BEZFOF", mi: "WEB_BEZBAC"} [urole], true);
|
||
var mldauthparams = user.checkAutorisation({ fe: "WEB_MLDUSE", bo: "WEB_MLDBOF", fo: "WEB_MLDFOF", mi: "WEB_MLDBAC"} [urole], true);
|
||
var resauthParams = user.checkAutorisation("WEB_RESMSU", true);
|
||
var mayShow_bez_desk = (resauthParams ? true : false ) && rrr.reservering_ispool;
|
||
|
||
var showMldFrame = (rsv_ruimte_key > 0 && mldauthparams && S("res_with_mld") == 1);
|
||
if (showMldFrame && urole == 'fe') // fe krijgt geen Add knop. Als er dan ook geen meldingen zijn wil ik het hele frame niet zien
|
||
{
|
||
var sql = "SELECT COUNT(1) FROM mld_melding WHERE res_rsv_ruimte_key=" + rsv_ruimte_key;
|
||
var oRs = Oracle.Execute(sql);
|
||
showMldFrame = oRs(0).Value > 0;
|
||
oRs.Close();
|
||
}
|
||
%>
|
||
|
||
<html>
|
||
<head>
|
||
<% FCLTHeader.Generate() %>
|
||
<script>
|
||
var rsv_ruimte_key=<%=rsv_ruimte_key%>; // kan na wisselen deelres veranderen
|
||
|
||
$(function ()
|
||
{
|
||
<% if (rsv_ruimte_key > 0)
|
||
{ %>
|
||
FcltMgr.setTitle("<%=L("lcl_reservation") + " " + rrr.reservering_key + "/" + rrr.rsv_ruimte_volgnr%>", {hot: false});
|
||
<% }
|
||
else
|
||
{ %>
|
||
FcltMgr.setTitle(L("lcl_res_new_reservation"), {hot: true});
|
||
FcltMgr.startEdit($("#resroomframe")[0].contentWindow);
|
||
<% }
|
||
|
||
if (res_edit && restype == "R" && rsv_ruimte_key > 0)
|
||
{ %>
|
||
$("#frametabs").tabs({ "active": 0 }); // Open direct het reserveringscherm om evt dirty aan te passen.
|
||
FcltMgr.startEdit($("#resroomframe")[0].contentWindow);
|
||
$("#resroomframe")[0].src = "res_edit_rsv_ruimte.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%>";
|
||
<% }
|
||
|
||
|
||
if (verynew && restype != "R") // Indien verynew dan geldt (rsv_ruimte_key > 0)
|
||
{ // direct naar edit mode
|
||
%>
|
||
$("#frametabs").tabs({ "active": 1 }); // Open direct het voorzieningen subframe (2de frame/subtab, dus index == 1)
|
||
FcltMgr.startEdit($("#objcatframe")[0].contentWindow); // het window is over 1 seconde weg maar onze overlays staan dan al goed
|
||
$("#objcatframe")[0].src = "res_edit_objcat.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%><%=transitParam%>&width_px=" + $(window).width();
|
||
<% }
|
||
|
||
|
||
if (bez_edit || (verynew && rrr.aantal_verplicht == 2 && !rrr.rsv_ruimte_dirtlevel))
|
||
{ // Bezoekersscherm direct in edit mode
|
||
%>
|
||
$("#frametabs").tabs({ "active": 2 }); // Open direct het externe bezoekers subframe (3de frame/subtab, dus index == 2)
|
||
FcltMgr.startEdit($("#bezlistframe")[0].contentWindow);
|
||
$("#bezlistframe")[0].src = "../bez/bez_edit_bezoekers.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%><%=transitParam%>&autoadd=1&&width_px=" + $(window).width();
|
||
<%
|
||
}
|
||
%>
|
||
// onChange of roomFrame hide repeat button when roomFrame has intervals
|
||
$("iframe#resroomframe").attr("onchange", "$('#repeatbutton, #addspacebutton, #addpartresbutton').toggle($(this).attr('intervals') != '1');");
|
||
});
|
||
|
||
function refreshall(data)
|
||
{
|
||
if (data.refresh)
|
||
window.location.href = "res_reservering.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%><%=transitParam%>";
|
||
}
|
||
|
||
function roomClose(params)
|
||
{
|
||
<% if (rsv_ruimte_key == -1)
|
||
{
|
||
var verynew=1;
|
||
if (res_deel_key > 0)
|
||
verynew=0; // hij is opgeslagen
|
||
%>
|
||
if (params.cancel)
|
||
{
|
||
FcltMgr.closeDetail(window, { cancel: true } );
|
||
return true;
|
||
}
|
||
// nieuwe reservering, ga verder in 'verynew' modus
|
||
if (!params.keepForm)
|
||
window.location.href = "res_reservering.asp?urole=<%=urole%>&verynew=<%=verynew%><%=transitParam%>&rsv_ruimte_key=" + params.rsv_ruimte_key;
|
||
<% }
|
||
else
|
||
{ // Bestaande res bewerkt, switch naar show-mode
|
||
%>
|
||
if (!params.keepForm)
|
||
{
|
||
if (params.cancel)
|
||
$("#resroomframe")[0].src = "res_show_rsv_ruimte.asp?urole=<%=urole%>&rsv_ruimte_key=" + rsv_ruimte_key;
|
||
else // Complete refresh: allerlei dirty<-->clean toggles mogelijk
|
||
window.location.href="res_reservering.asp?urole=<%=urole%><%=transitParam%>&rsv_ruimte_key="+rsv_ruimte_key;
|
||
}
|
||
|
||
<% } %>
|
||
};
|
||
function bezClose(params)
|
||
{
|
||
$("#bezlistframe")[0].src = "../bez/bez_show_bezoekers.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%><%=transitParam%>";
|
||
if (<%= (urole == "bo" && rrr.reservering_ispool)?1:0 %> && params.beznewkeyArr && params.beznewkeyArr.length) // Auto-checkin
|
||
{
|
||
var data = { bez_key: params.beznewkeyArr
|
||
};
|
||
protectRequest.dataToken(data);
|
||
$.post("../bez/bez_check_in.asp",
|
||
data,
|
||
CheckInCallback,
|
||
"json");
|
||
}
|
||
}
|
||
function CheckInCallback(json, textStatus)
|
||
{
|
||
for (var i = 0 ; i < json.bez_key_arr.length; i++)
|
||
{
|
||
if (json.autoprint[i])
|
||
printBadge(json.bez_key_arr[i]);
|
||
}
|
||
}
|
||
function printBadge(pbez_key)
|
||
{ // Printen van de bezoekers badge
|
||
FcltMgr.windowopen("../bez/bez_xml.asp?badge=1&bez_key=" + pbez_key, "", "resizable=0,scrollbars=0,menubar=0,width=500,height=400");
|
||
}
|
||
|
||
// In verynew mode klagen we zelfs als je cancel drukt.
|
||
var everCV = false;
|
||
function objcatClose(params)
|
||
{ // Als deze functie wordt aangeroepen dan geldt (rsv_ruimte_key > 0)
|
||
everCV |= params.hasAnyCV;
|
||
<% if (restype == "CV")
|
||
{
|
||
if (verynew)
|
||
{ %>
|
||
if (params.cancel && !everCV)
|
||
FcltMgr.alert(L("lcl_res_no_CV_yet")); // Nog niets gereserveerd.
|
||
<% } %>
|
||
if (!params.cancel && !params.hasAnyCV)
|
||
FcltMgr.alert(L("lcl_res_no_CV_yet")); // Nog niets gereserveerd.
|
||
<% } %>
|
||
if (!params.keepForm)
|
||
{
|
||
if (params.cancel)
|
||
$("#objcatframe")[0].src = "res_show_objcat.asp?urole=<%=urole%>&rsv_ruimte_key=" + rsv_ruimte_key + (params.verynew?"&verynew=1":"");
|
||
else // Complete refresh: allerlei dirty<-->clean toggles mogelijk. Wel de verynew er van af
|
||
window.location.href="res_reservering.asp?urole=<%=urole%>&nowold=1<%=transitParam%>&rsv_ruimte_key=" + rsv_ruimte_key;
|
||
}
|
||
};
|
||
|
||
function MultiSave()
|
||
{
|
||
if (FcltMgr.mayEdit(window))
|
||
FcltMgr.openModalDetail("./res_edit_multi.asp?urole=<%=urole%>&rsv_ruimte_key=" + rsv_ruimte_key,
|
||
"<%=L("lcl_res_multiple_save")%>", { callback: refreshall });
|
||
}
|
||
|
||
function makeMulti()
|
||
{
|
||
if (FcltMgr.mayEdit(window))
|
||
FcltMgr.openModalDetail("./res_multi_create.asp?urole=<%=orgurole%>&rsv_ruimte_key=" + rsv_ruimte_key,
|
||
"<%=L("lcl_res_add_deelres")%>", { callback: refreshall });
|
||
}
|
||
|
||
function ruimteErbij(rtype)
|
||
{
|
||
if (FcltMgr.mayEdit(window))
|
||
window.location.href="res_reservering.asp?urole=<%=urole%>&rsv_ruimte_key=-1&rsv_copy_key=" + rsv_ruimte_key + "&restype=" + rtype;
|
||
}
|
||
|
||
function GaNaar()
|
||
{
|
||
if (FcltMgr.mayEdit(window))
|
||
{
|
||
rsv_ruimte_key = $("#selectedDates").val();
|
||
window.location.href="res_reservering.asp?urole=<%=urole%><%=transitParam%>&rsv_ruimte_key="+rsv_ruimte_key;
|
||
}
|
||
}
|
||
|
||
function res_print()
|
||
{
|
||
FcltMgr.windowopen('../res/res_xml.asp?res_key=<%=rrr.reservering_key%>');
|
||
}
|
||
|
||
function res_mail()
|
||
{ // Als deze functie wordt aangeroepen geldt rsv_ruimte_key > 0 (Bestaande reserveringen). hasFOBOread is dan bekend
|
||
<% var defemail_key = -1;
|
||
// van de aanvrager=melder van initieel getoonde deelreservering
|
||
sql = " SELECT rr.res_rsv_ruimte_contact_key, res_rsv_ruimte_volgnr"
|
||
+ " FROM res_rsv_ruimte rr"
|
||
+ " WHERE rr.res_rsv_ruimte_key=" + rsv_ruimte_key;
|
||
oRs = Oracle.Execute( sql);
|
||
if (!oRs.eof)
|
||
defemail_key = oRs("res_rsv_ruimte_contact_key").value;
|
||
oRs.Close();
|
||
subject = L("lcl_reservation") + ' ' + rrr.reservering_key;
|
||
url = "../shared/queuemail.asp?pcode=RES2MA&defemail_key=" + defemail_key
|
||
+ "&key=" + rrr.reservering_key
|
||
+ "&subject=" + Server.URLencode(subject)
|
||
+ "&mailfrom=" + (hasFOBOread? 1 : 0);
|
||
%>
|
||
var subject = "<%=safe.jsstring(subject)%>";
|
||
var url= "<%=safe.jsstring(protectQS.create(url))%>";
|
||
FcltMgr.openModalDetail(url, subject);
|
||
|
||
}
|
||
|
||
var anyDirty = [];
|
||
function openDirtyRes()
|
||
{
|
||
if (anyDirty.length)
|
||
{ // Open alle dirty reserveringen binnen deze reeks
|
||
for (var i=0; i<anyDirty.length; i++)
|
||
{
|
||
var url = "./appl/res/res_reservering.asp?urole=<%=urole%>&rsv_ruimte_key=" + anyDirty[i] + "&res_edit=1";
|
||
FcltMgr.openDetail(url);
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
<% if (mayShow_bez_desk)
|
||
{
|
||
%>
|
||
function res_oproep()
|
||
{
|
||
<%
|
||
url = "./appl/res/res_bez_desk.asp"
|
||
+ "?key=" + rrr.reservering_key;
|
||
%>
|
||
var subject = L("lcl_res_bez_oproepscherm");
|
||
var url = "<%=safe.jsstring(url)%>";
|
||
FcltMgr.openDetail(url, subject)
|
||
}
|
||
<% }
|
||
%>
|
||
// Wordt automagisch aangeroepen als tabje wordt geactiveerd
|
||
function fcltontabshow(isHot)
|
||
{
|
||
if (isHot)
|
||
return;
|
||
$("iframe#objcatframe").each(function ()
|
||
{
|
||
this.src = this.src;
|
||
});
|
||
}
|
||
|
||
</script>
|
||
</head>
|
||
|
||
<body>
|
||
<%
|
||
|
||
if (rsv_ruimte_key > 0)
|
||
{
|
||
var page = "res_show_rsv_ruimte.asp?urole=" + urole + "&rsv_ruimte_key=" + rsv_ruimte_key + (autolike?"&autolike=1":"");
|
||
|
||
// ============================================
|
||
// Voorzieningen info
|
||
// ============================================
|
||
sqlD = "SELECT ra.res_rsv_ruimte_key, "
|
||
+ " res_rsv_artikel_verwijder datumdel, "
|
||
+ " CASE WHEN (res_rsv_artikel_dirtlevel < 256 OR res_rsv_artikel_verwijder IS NOT NULL)"
|
||
+ " THEN 0" // afwijkende tijden niet moeilijk over doen
|
||
+ " ELSE res_rsv_artikel_dirtlevel"
|
||
+ " END dirtlevel"
|
||
+ " FROM res_rsv_artikel ra "
|
||
+ " UNION ALL "
|
||
+ "SELECT res_rsv_ruimte_key, "
|
||
+ " res_rsv_deel_verwijder datumdel, "
|
||
+ " CASE WHEN (res_rsv_deel_dirtlevel < 256 OR res_rsv_deel_verwijder IS NOT NULL)"
|
||
+ " THEN 0" // afwijkende tijden niet moeilijk over doen
|
||
+ " ELSE res_rsv_deel_dirtlevel"
|
||
+ " END dirtlevel"
|
||
+ " FROM res_rsv_deel rd "
|
||
|
||
// ============================================
|
||
// Show list of reservation-rooms
|
||
// ============================================
|
||
if (restype == "R")
|
||
{
|
||
sql = "SELECT rm.res_rsv_ruimte_key"
|
||
+ " ," + lcl.xsqla('r.res_ruimte_nr', 'r.res_ruimte_key')
|
||
+ " , res_rsv_ruimte_van"
|
||
+ " , res_rsv_ruimte_tot"
|
||
+ " , rm.res_rsv_ruimte_volgnr"
|
||
+ " , rm.res_rsv_ruimte_verwijder"
|
||
+ " , rm.res_rsv_ruimte_dirtlevel"
|
||
+ " , COUNT (*) cnt, COUNT (datumdel) cntdeleted, SUM(dirtlevel) dirtlevel"
|
||
+ " FROM res_rsv_ruimte rm, res_ruimte_opstelling ro, res_ruimte r"
|
||
+ " , (" + sqlD + ") rec2 "
|
||
+ " WHERE rm.res_rsv_ruimte_key = rec2.res_rsv_ruimte_key (+) "
|
||
+ " AND rm.res_ruimte_opstel_key = ro.res_ruimte_opstel_key"
|
||
+ " AND ro.res_ruimte_key = r.res_ruimte_key"
|
||
+ " AND res_reservering_key = " + rrr.reservering_key
|
||
+ " AND (res_rsv_ruimte_verwijder IS NULL OR rm.res_rsv_ruimte_key = " + rsv_ruimte_key + ")"
|
||
+ " GROUP BY res_rsv_ruimte_van, res_rsv_ruimte_tot"
|
||
+ " , rm.res_rsv_ruimte_key"
|
||
+ " , " + lcl.xsql('r.res_ruimte_nr', 'r.res_ruimte_key')
|
||
+ " , res_rsv_ruimte_volgnr"
|
||
+ " , res_rsv_ruimte_verwijder"
|
||
+ " , res_rsv_ruimte_dirtlevel"
|
||
+ " ORDER BY res_rsv_ruimte_van, res_rsv_ruimte_key";
|
||
}
|
||
else
|
||
{
|
||
sql = "SELECT res_rsv_ruimte_van, res_rsv_ruimte_tot"
|
||
+ " , COUNT (*) cnt, COUNT (datumdel) cntdeleted, SUM(dirtlevel) dirtlevel"
|
||
+ " , rr.res_rsv_ruimte_key, res_rsv_ruimte_volgnr"
|
||
+ " , rr.res_rsv_ruimte_verwijder"
|
||
+ " , res_rsv_ruimte_dirtlevel"
|
||
+ " FROM res_rsv_ruimte rr"
|
||
+ " , (" + sqlD + ") rec2 "
|
||
+ " WHERE rr.res_rsv_ruimte_key = rec2.res_rsv_ruimte_key (+) "
|
||
+ " AND res_reservering_key = " + rrr.reservering_key
|
||
+ " AND (res_rsv_ruimte_verwijder IS NULL OR rr.res_rsv_ruimte_key = " + rsv_ruimte_key + ")"
|
||
+ " GROUP BY res_rsv_ruimte_van, res_rsv_ruimte_tot"
|
||
+ " , rr.res_rsv_ruimte_key"
|
||
+ " , res_rsv_ruimte_volgnr"
|
||
+ " , res_rsv_ruimte_verwijder"
|
||
+ " , res_rsv_ruimte_dirtlevel"
|
||
+ " ORDER BY res_rsv_ruimte_van";
|
||
}
|
||
oRs = Oracle.Execute(sql);
|
||
var multiDeel = false;
|
||
var anyDirty = [];
|
||
%> <div id="resselector"><%
|
||
if (!oRs.eof)
|
||
{
|
||
if (rrr.reservering_ispool)
|
||
Response.Write("<span id='multires'>"+L("lcl_respool")+"</span>");
|
||
|
||
// Pas als er meer dan 1 deelreservering is, is een listbox nodig
|
||
var options = [];
|
||
var selclass = "";
|
||
//======================================
|
||
while (!oRs.eof)
|
||
{
|
||
rKey = oRs("res_rsv_ruimte_key").Value;
|
||
d1Key = new Date(oRs("res_rsv_ruimte_van").Value);
|
||
d2Key = new Date(oRs("res_rsv_ruimte_tot").Value);
|
||
|
||
var tekst = toDateTimeString(d1Key) + "-" + toTimeString(d2Key)
|
||
if (restype == "R")
|
||
{
|
||
opttitle = "title='" + safe.htmlattr(oRs("res_ruimte_nr").value) + "' ";
|
||
}
|
||
else
|
||
{
|
||
opttitle = "title='" + (oRs("cnt").Value - oRs("cntDeleted").Value) + " " + L("lcl_reserved_cons") + "/" + L("lcl_reserved_object") + "' ";
|
||
}
|
||
|
||
volgnrTxt = oRs("res_rsv_ruimte_volgnr").value + ".";
|
||
|
||
var optclass = "";
|
||
if ((oRs("res_rsv_ruimte_dirtlevel").Value & res.dirtlevel.ruimte.notavailable) || oRs("dirtlevel").Value > 0)
|
||
{
|
||
anyDirty.push(rKey);
|
||
tekst = L("lcl_res_BAD_reservation_pre") + tekst + L("lcl_res_BAD_reservation_post");
|
||
optclass = " fatal ";
|
||
}
|
||
|
||
sel = "";
|
||
if (oRs("res_rsv_ruimte_key").value == rsv_ruimte_key)
|
||
{
|
||
var sel = " SELECTED "
|
||
selclass = optclass;
|
||
}
|
||
options.push("<option "+(optclass ? "class='"+optclass+"'" : "")+" "+opttitle+" value="+rKey+ " " + sel + ">" + volgnrTxt + " " + tekst + "</option>");
|
||
|
||
oRs.Movenext();
|
||
if (!oRs.Eof) multiDeel = true;
|
||
}
|
||
if (options.length > 1) {
|
||
%>
|
||
<select id="selectedDates" class="fld<%=selclass%>" onchange='GaNaar()'>
|
||
<%= options.join("") %>
|
||
</select>
|
||
<% }
|
||
}
|
||
oRs.Close();
|
||
|
||
if (anyDirty.length)
|
||
{
|
||
var txt = null;
|
||
if (anyDirty.length > 1)
|
||
var txt = L("lcl_res_fail_multi1") + anyDirty.length + " " + L("lcl_res_fail_multi2");
|
||
else if (anyDirty[0] != rsv_ruimte_key) // onszelf geven we al wel op andere manieren aan
|
||
var txt = L("lcl_res_fail_multi1s");
|
||
|
||
if (txt && res_edit == 0 && !inArray(rsv_ruimte_key, anyDirty))
|
||
{ %>
|
||
<script type="text/javascript">
|
||
$(function()
|
||
{
|
||
FcltMgr.confirm("<%=safe.jsstring(txt)%>", { oktekst: L("lcl_res_alternatief") }, openDirtyRes );
|
||
anyDirty = <%=JSON.stringify(anyDirty)%>;
|
||
});
|
||
</script>
|
||
<% }
|
||
}
|
||
|
||
var buttons = [];
|
||
if (this_res.couldCreate && !this_res.res_ruimte_extern)
|
||
{
|
||
buttons.push( {id: "repeatbutton", title: L("lcl_res_add_deelres"), icon: "fa-clone", action: "makeMulti()" } );
|
||
if (restype == "R")
|
||
buttons.push( {id: "addspacebutton", title: L("lcl_res_add_deelresruimte"), icon: "fa-calendar-plus", action: "ruimteErbij('" + restype + "')" } );
|
||
if (restype == "CV") // en O??
|
||
buttons.push( {id: "addpartresbutton", title: L("lcl_res_add_deelresreservering"), icon: "fa-layer-plus", action: "ruimteErbij('" + restype + "')" } );
|
||
}
|
||
if (multiDeel && this_res.couldCreate)
|
||
{
|
||
if (!this_res.res_ruimte_extern)
|
||
buttons.push({ title: L("lcl_res_multiple_save"), icon: "fa-copy", action: "MultiSave()" });
|
||
buttons.push({ icon: "fa-print", title: L("lcl_print"), action: "res_print()" });
|
||
buttons.push({ icon: "fa-envelope", title: L("lcl_noti_res_email"), action: "res_mail()" });
|
||
}
|
||
if (mayShow_bez_desk)
|
||
buttons.push({ icon: "fa-desktop", title: L("lcl_res_bez_oproepscherm"), action: "res_oproep()" });
|
||
|
||
if (rrr.rsv_ruimte_verwijder == null && buttons.length)
|
||
{
|
||
%><div class="buttoncontainer"><%
|
||
CreateButtons(buttons, { showIcons: true} );
|
||
%></div><%
|
||
}
|
||
//======================================
|
||
%></div><% // \.resselector
|
||
}
|
||
else
|
||
{ // rsv_ruimte_key == -1
|
||
var page = "res_edit_rsv_ruimte.asp?urole=" + urole + "&res_ruimte_key=" + res_ruimte_key + transitParam;
|
||
|
||
// srtactiviteit moeten we weten om toe te kunnen voegen aan page, anders vragen.
|
||
if (srtact > 0)
|
||
{
|
||
page += "&srtact=" + srtact;
|
||
if (act_key > 0)
|
||
{
|
||
page += "&activiteit_key=" + act_key;
|
||
}
|
||
else
|
||
{ //Dan maar vragen
|
||
var buttons = [];
|
||
// Give the user a list and let him select a activiteit.
|
||
//======= FIELD 'Activiteit' =======
|
||
var myACTsql = "SELECT a.res_activiteit_key"
|
||
+ ", " + lcl.xsqla("a.res_activiteit_omschrijving", "a.res_activiteit_key")
|
||
+ " , a.res_activiteit_duur"
|
||
+ " , a.res_activiteit_omsverplicht"
|
||
+ " , a.res_activiteit_aantalverplicht"
|
||
+ " , a.res_activiteit_meteindtijd"
|
||
+ " , a.res_activiteit_cvab_mode"
|
||
+ " , a.res_activiteit_intervals"
|
||
+ " , a.res_activiteit_image"
|
||
+ " FROM res_activiteit a"
|
||
+ " , res_srtactiviteit sa"
|
||
+ (res_deel_key > 0 || res_artikel_key > 0
|
||
? " , res_activiteitdiscipline rad"
|
||
: "")
|
||
+ " WHERE res_activiteit_verwijder IS NULL"
|
||
+ " AND a.res_srtactiviteit_key = sa.res_srtactiviteit_key"
|
||
+ " AND sa.res_srtactiviteit_key = " + srtact
|
||
+ " AND sa.res_srtactiviteit_soort = " + restype2srtactiviteit_soort(restype)
|
||
+ " AND EXISTS (SELECT rad.res_activiteit_key"
|
||
+ " FROM res_activiteitdiscipline rad"
|
||
+ " , ins_tab_discipline disc"
|
||
+ " , fac_v_my_disciplines md"
|
||
+ " WHERE rad.res_discipline_key = md.ins_discipline_key"
|
||
+ " AND md.prs_perslid_key = " + user_key
|
||
+ " AND md.fac_functie_code = " + safe.quoted_sql(autfunctions[urole])
|
||
+ " AND fac_gebruiker_alg_level_write < 9"
|
||
+ " AND fac_gebruiker_prs_level_write < 9"
|
||
+ " AND rad.res_discipline_key = disc.ins_discipline_key"
|
||
+ " AND rad.res_activiteit_key = a.res_activiteit_key"
|
||
+ " AND ins_discipline_verwijder IS NULL"
|
||
+ (restype == "R"
|
||
? " AND ins_discipline_min_level = 3" // 1; Reserveerbaar object; 2; Verbruiksartikel; 3; Ruimte
|
||
: " AND ins_discipline_min_level IN (1,2,4,5)") // 4 = persoonresource
|
||
+ " )"
|
||
+ (getQParamInt("activiteit_key", -1) > -1
|
||
? " AND a.res_activiteit_key = " + getQParamInt("activiteit_key", -1)
|
||
: "")
|
||
+ (urole == "fe"
|
||
? " AND a.res_activiteit_notfrontend = 0"
|
||
: "")
|
||
+ (res_deel_key > 0 || res_artikel_key > 0
|
||
? " AND rad.res_activiteit_key = a.res_activiteit_key"
|
||
+ " AND rad.res_discipline_key = " + disc_key
|
||
: "")
|
||
+ (res_ruimte_key > 0 // Alleen die activiteiten die mogelijk zijn in deze ruimte.
|
||
? " AND a.res_activiteit_key IN (SELECT ra.res_activiteit_key"
|
||
+ " FROM res_ruimte rr"
|
||
+ " , res_activiteitdiscipline r"
|
||
+ " , res_activiteit ra"
|
||
+ " , res_srtactiviteit rs"
|
||
+ " WHERE rr.res_discipline_key = r.res_discipline_key"
|
||
+ " AND r.res_activiteit_key = ra.res_activiteit_key"
|
||
+ " AND ra.res_srtactiviteit_key = rs.res_srtactiviteit_key"
|
||
+ " AND rr.res_ruimte_key = " + res_ruimte_key + ")"
|
||
: "")
|
||
+ " ORDER BY res_activiteit_volgnr, sa.res_srtactiviteit_prefix, UPPER(" + lcl.xsql('a.res_activiteit_omschrijving', 'a.res_activiteit_key') +")";
|
||
oRs = Oracle.Execute(myACTsql);
|
||
while (!oRs.eof)
|
||
{
|
||
var tmp_act_key = oRs("res_activiteit_key").value;
|
||
buttons.push({ icon: oRs("res_activiteit_image").value||"fa-users",
|
||
title: oRs("res_activiteit_omschrijving").value,
|
||
action: "srtact=" + srtact + ";act_key=" + tmp_act_key + ";$('div#act_modal').dialog('close').remove();"
|
||
});
|
||
oRs.MoveNext();
|
||
}
|
||
oRs.Close();
|
||
|
||
if (buttons.length == 0)
|
||
{
|
||
shared.simpel_page(L("lcl_no_auth")); // Response.End;
|
||
}
|
||
else if (buttons.length == 1)
|
||
{ // Er is maar <20><>n activiteit die direct geselecteerd dient te worden.
|
||
Response.Redirect("res_reservering.asp?urole=" + urole + transitParam + "&srtact=" + srtact + "&activiteit_key=" + tmp_act_key);
|
||
}
|
||
else
|
||
{
|
||
var tpage = page;
|
||
page="../shared/empty.html?urole=" + urole; // Achtergrondpagina tijdens popup keuze
|
||
%> <script type='text/javascript'>
|
||
act_key = -1;
|
||
function dialogClose()
|
||
{
|
||
if (act_key == -1)
|
||
{
|
||
FcltMgr.closeDetail(window, { cancel: true, panelModalCool: true } );
|
||
}
|
||
else
|
||
window.location.href = "res_reservering.asp?urole=<%=urole%><%=transitParam%>&srtact=" + srtact + "&activiteit_key=" + act_key;
|
||
}
|
||
// Normaal gebruik je hier $(function() {})
|
||
// Dat is echter voor IE9 een fractie te vroeg en soms was FcltMgr.fixActiveelementError niet genoeg (FcltMgr.fixActiveelementError is weg #61481)
|
||
// Dan maar $(window).load die een fractie later is.
|
||
$(window).on("load", function()
|
||
{
|
||
var params = { title: "<%=L("lcl_res_choose_act")%>",
|
||
modal: true,
|
||
width: 365,
|
||
resizable: false,
|
||
close: dialogClose,
|
||
create: FcltMgr.fnCreateCloseButton("div#act_modal")
|
||
};
|
||
$('div#act_modal').dialog(params).dialog('open');
|
||
});
|
||
</script>
|
||
<div id="act_modal" style="display:none">
|
||
<% if (buttons.length)
|
||
CreateButtons(buttons, { vertical: 1, isDialog: true, showIcons: true } )
|
||
else
|
||
Response.write(L("lcl_mld_choose_na")); %>
|
||
</div>
|
||
<% }
|
||
}
|
||
}
|
||
else
|
||
{ //Dan maar vragen
|
||
var buttons = [];
|
||
// Give the user a list and let him select a srtactiviteit.
|
||
mySRTsql = // Voor alle res_srtactiviteiten met zijn ins_disciplines eronder moeten we schrijf rechten hebben.
|
||
// Om een reservering toe te kunnen voegen vereist FE/FO rechten, dit is ook het geval bij BO reserveringen.
|
||
"SELECT DISTINCT sa.res_srtactiviteit_key"
|
||
+ ", "+lcl.xsqla('sa.res_srtactiviteit_omschrijving', 'sa.res_srtactiviteit_key')
|
||
+ " FROM res_srtactiviteit sa"
|
||
+ ", res_activiteit ra"
|
||
+ ", res_activiteitdiscipline ad"
|
||
+ ", res_discipline rd"
|
||
+ " WHERE sa.res_srtactiviteit_key = ra.res_srtactiviteit_key"
|
||
+ " AND ra.res_activiteit_key = ad.res_activiteit_key"
|
||
+ " AND sa.res_srtactiviteit_verwijder IS NULL"
|
||
+ " AND rd.ins_discipline_key = ad.res_discipline_key"
|
||
+ " AND rd.ins_discipline_key IN (SELECT ins_discipline_key"
|
||
+ " FROM fac_v_webgebruiker g"
|
||
+ ", fac_functie f"
|
||
+ " WHERE g.fac_functie_key = f.fac_functie_key"
|
||
+ " AND f.fac_functie_code = " + safe.quoted_sql({ fe: "WEB_RESUSE", bo: "WEB_RESBOF", fo: "WEB_RESFOF", mi: "WEB_RESBAC"} [urole])
|
||
+ " AND (g.fac_gebruiker_alg_level_write < 9"
|
||
+ " AND g.fac_gebruiker_prs_level_write < 9)"
|
||
+ " AND g.prs_perslid_key = " + user_key + ")"
|
||
+ " AND sa.res_srtactiviteit_soort = " + restype2srtactiviteit_soort(restype)
|
||
+ (urole == "fe"
|
||
? " AND ra.res_activiteit_notfrontend = 0"
|
||
: "")
|
||
+ (res_deel_key > 0 // Alleen die activiteitsoorten die de gekozen voorziening onder een van de bijbehorende activiteiten hebben gedefinieerd.
|
||
? " AND EXISTS (SELECT rd1.res_deel_key"
|
||
+ " FROM res_deel rd1"
|
||
+ " WHERE rd1.res_discipline_key = rd.ins_discipline_key"
|
||
+ " AND rd1.res_deel_key = " + res_deel_key + ")"
|
||
: "")
|
||
+ (res_artikel_key > 0 // Alleen die activiteitsoorten die het gekozen artikel onder een van de bijbehorende activiteiten hebben gedefinieerd.
|
||
? " AND EXISTS (SELECT ra1.res_artikel_key"
|
||
+ " FROM res_artikel ra1"
|
||
+ " WHERE ra1.res_discipline_key = rd.ins_discipline_key"
|
||
+ " AND ra1.res_artikel_key = " + res_artikel_key + ")"
|
||
: "")
|
||
+ (res_ruimte_key > 0 // Alleen die activiteitsoorten die mogelijk zijn in deze ruimte.
|
||
? " AND sa.res_srtactiviteit_key IN (SELECT rs.res_srtactiviteit_key"
|
||
+ " FROM res_ruimte rr"
|
||
+ " , res_activiteitdiscipline r"
|
||
+ " , res_activiteit ra"
|
||
+ " , res_srtactiviteit rs"
|
||
+ " WHERE rr.res_discipline_key = r.res_discipline_key"
|
||
+ " AND r.res_activiteit_key = ra.res_activiteit_key"
|
||
+ " AND ra.res_srtactiviteit_key = rs.res_srtactiviteit_key"
|
||
+ " AND rr.res_ruimte_key = " + res_ruimte_key + ")"
|
||
: "")
|
||
+ " ORDER BY 2"
|
||
oRs = Oracle.Execute(mySRTsql);
|
||
while (!oRs.eof)
|
||
{
|
||
var tmp_srtact = oRs("res_srtactiviteit_key").value;
|
||
buttons.push({ title: oRs("res_srtactiviteit_omschrijving").value, icon: "fa-angle-right",
|
||
action: "srtact=" + tmp_srtact + ";$('div#dmodal').dialog('close').remove();"
|
||
});
|
||
oRs.MoveNext();
|
||
}
|
||
oRs.Close();
|
||
|
||
if (buttons.length == 0)
|
||
{
|
||
shared.simpel_page(L("lcl_no_auth")); // Response.End;
|
||
}
|
||
else if (buttons.length == 1)
|
||
{ // Er is maar <20><>n srtactiviteit die direct geselecteerd dient te worden.
|
||
Response.Redirect("res_reservering.asp?urole=" + urole + transitParam + "&srtact=" + tmp_srtact);
|
||
}
|
||
else
|
||
{
|
||
var tpage = page;
|
||
page="../shared/empty.html?urole=" + urole; // Achtergrondpagina tijdens popup keuze
|
||
%> <script type='text/javascript'>
|
||
srtact = -1;
|
||
function dialogClose()
|
||
{
|
||
if (srtact == -1)
|
||
FcltMgr.closeDetail(window, { cancel: true } );
|
||
else
|
||
window.location.href = "res_reservering.asp?urole=<%=urole%><%=transitParam%>&srtact=" + srtact;
|
||
}
|
||
// Normaal gebruik je hier $(function() {})
|
||
// Dat is echter voor IE9 een fractie te vroeg en soms was FcltMgr.fixActiveelementError niet genoeg (FcltMgr.fixActiveelementError is weg #61481)
|
||
// Dan maar $(window).load die een fractie later is.
|
||
$(window).on("load", function()
|
||
{
|
||
var params = { title: "<%=L("lcl_mld_choose_srt")%>",
|
||
modal: true,
|
||
width: 334,
|
||
resizable: false,
|
||
close: dialogClose,
|
||
create: FcltMgr.fnCreateCloseButton("div#dmodal")
|
||
};
|
||
$('div#dmodal').dialog(params).dialog('open');
|
||
});
|
||
</script>
|
||
<div id="dmodal" style="display:none">
|
||
<% if (buttons.length)
|
||
CreateButtons(buttons, { vertical: 1, isDialog: true } )
|
||
else
|
||
Response.write(L("lcl_mld_choose_na")); %>
|
||
</div>
|
||
<% }
|
||
}
|
||
|
||
if (res_ruimte_key == -1 && koppelzalen.length > 0)
|
||
{ // Als geselecteerde ruimte een koppelzaal is vraag dan of de ruimte zelf of de koppelzaal gewenst is.
|
||
var buttons = koppelzalen;
|
||
var tpage = page;
|
||
page="../shared/empty.html?urole=" + urole; // Achtergrondpagina tijdens popup keuze
|
||
%>
|
||
<script type='text/javascript'>
|
||
res_ruimte_key = -1;
|
||
function dialogClose()
|
||
{
|
||
if (res_ruimte_key == -1)
|
||
{
|
||
FcltMgr.closeDetail(window, { cancel: true, panelModalCool: true } );
|
||
}
|
||
else
|
||
window.location.href = "res_reservering.asp?urole=<%=urole%><%=transitParam%>&res_ruimte_key=" + res_ruimte_key;
|
||
}
|
||
// Normaal gebruik je hier $(function() {})
|
||
// Dat is echter voor IE9 een fractie te vroeg en soms was FcltMgr.fixActiveelementError niet genoeg (FcltMgr.fixActiveelementError is weg #61481)
|
||
// Dan maar $(window).load die een fractie later is.
|
||
$(window).on("load", function()
|
||
{
|
||
var params = { title: "<%=L("lcl_res_choose_room")%>",
|
||
modal: true,
|
||
width: 350,
|
||
resizable: false,
|
||
close: dialogClose,
|
||
create: FcltMgr.fnCreateCloseButton("div#koppel_modal")
|
||
};
|
||
$('div#koppel_modal').dialog(params).dialog('open');
|
||
});
|
||
</script>
|
||
<div id="koppel_modal" style="display:none">
|
||
<%
|
||
if (buttons.length)
|
||
CreateButtons(buttons, { vertical: 1, isDialog: true, showIcons: true } )
|
||
else
|
||
Response.write(L("lcl_mld_choose_na"));
|
||
%>
|
||
</div>
|
||
<%
|
||
}
|
||
}
|
||
|
||
pageTitle = rrr.srtactiviteit_prefix + rrr.reservering_key
|
||
+ (rrr.rsv_ruimte_volgnr ? "/" + rrr.rsv_ruimte_volgnr : "")
|
||
+ (rrr.rsv_ruimte_omschrijving ? " " + rrr.rsv_ruimte_omschrijving : "")
|
||
+ " " + rrr.activiteit_omschrijving;
|
||
PAGE_START({ pageHeader: { icon: rrr.activiteit_image || "fa-users", title: pageTitle } });
|
||
|
||
IFRAMER("resroomframe", page, { FcltClose: "roomClose" });
|
||
//======================================
|
||
|
||
if (rsv_ruimte_key > 0 || (srtact > 0 && act_key > 0 && res_ruimte_key > 0))
|
||
{
|
||
if (rsv_ruimte_key < 0)
|
||
var page = "res_save_first.asp?module=RES";
|
||
else if (verynew && restype == "CV" && res_artikel_key < 0)
|
||
var page = "../shared/empty.html"; // komt wel in $(function() {})
|
||
else
|
||
var page = "res_show_objcat.asp?urole=" + urole + "&rsv_ruimte_key=" + rsv_ruimte_key + transitParam;
|
||
|
||
IFRAMER("objcatframe", page, { icon: "fa-list", FcltClose: "objcatClose" });
|
||
|
||
//======================================
|
||
|
||
if (rrr.rsv_ruimte_verwijder == null && bezauthparams && rrr.met_eindtijd) //TODO Ook nog check op IsBldVisitable();
|
||
{
|
||
if (rsv_ruimte_key < 0)
|
||
var page = "res_save_first.asp?module=BEZ";
|
||
else
|
||
{
|
||
var page = "../bez/bez_show_bezoekers.asp?urole=" + urole + "&rsv_ruimte_key=" + rsv_ruimte_key + transitParam;
|
||
|
||
if (rrr.rsv_ruimte_dirtlevel & res.dirtlevel.ruimte.nocatering)
|
||
{
|
||
var sql = "SELECT 1 FROM bez_afspraak WHERE res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||
var oRs = Oracle.Execute(sql);
|
||
if (oRs.Eof)
|
||
var page = "res_save_first.asp?module=BEZ";
|
||
oRs.Close();
|
||
}
|
||
}
|
||
IFRAMER("bezlistframe",
|
||
page,
|
||
{ title: (S("bez_sel_internpersoon") == 1? L("lcl_res_frame_visitors") : L("lcl_res_frame_visitors_external")),
|
||
FcltClose: "bezClose",
|
||
icon: "fa-list"
|
||
});
|
||
}
|
||
//======================================
|
||
|
||
if (showMldFrame)
|
||
{
|
||
IFRAMER("bezmldlistframe",
|
||
"../mld/mld_search_list.asp?rsv_ruimte_key=" + rsv_ruimte_key,
|
||
{ icon: "fa-list", refreshOnClose: true });
|
||
}
|
||
|
||
verkoopfactuur_IFRAMER('reservering', rsv_ruimte_key);
|
||
// tracking naar subframe :-)
|
||
if (rsv_ruimte_key > 0 && (this_res.canReadBO || this_res.canReadFO && !(S("fac_reserved_number2") & 2)
|
||
|| this_res.canReadFEOnly && !(S("fac_reserved_number2") & 1))) // 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")} );
|
||
}
|
||
}
|
||
|
||
PAGE_END(); %>
|
||
</body>
|
||
</html><% ASPPAGE_END(); %>
|