svn path=/Website/trunk/; revision=35

This commit is contained in:
Peter Feij
2009-11-02 15:44:52 +00:00
parent 270ef948a9
commit 74f1db9d4f
9 changed files with 772 additions and 816 deletions

View File

@@ -1,30 +1,35 @@
<%@ language = "JavaScript" %>
<% /*
$Revision: 1 $
$Modtime: 30-09-09 14:01 $
$Revision: 2 $
$Modtime: 1-11-09 22:39 $
File: fac_list.asp
Description: Toont verplichtingen etc van user, refresht zelf
Status: 80%
Parameters: prs_key optioneel (anders user_key)
Context:
Note: - is details een action of niet?
- TODO hoe urole te gebruiken?
Note: De urole (voor vervolgacties) wordt impliciet bepaald door
de prs_key: is het de lijst van mezelf, dan ga ik met fe verder,
is het de lijst van een ander, dan ga ik met fo verder.
TODO: voor verplichtingen van een ander moet ik de respectievelijke read-scopes
gebruiken, dus reserveringen die in volgens WEB_RESFOF mag zien, meldingen
die ik volgens WEB_MLDFOF mag zien etc.
*/ %>
<% Response.Expires = -1;
%>
<!--#include file="../../cust/install.inc" -->
<!--#include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../Shared/json2.js" -->
<%
FCLTHeader.Requires({js: ["FcltMgr.js"]});
var urole = getQParam("urole", "fe");
var pkey = getQParam("prs_key", user_key);
var outputmode = parseInt(getQParam("outputmode", 0), 10); // 0 = screen, 1 = print, 2 = excel etc
var embedded = getQParamInt("embedded", -1) == 1;
var showall = getQParam("showall", -1) == 1;
var urole = "?";
if (pkey == user_key)
urole = "fe";
else
urole = "fo";
function fncolType(oRs)
{

View File

@@ -1,6 +1,6 @@
<%@language = "javascript" %>
<%/* $Revision: 2 $
$Modtime: 30-10-09 17:40 $
<%/* $Revision: 3 $
$Modtime: 2-11-09 11:47 $
File: fac_user.asp
Status: 90%
@@ -143,7 +143,7 @@ IFRAMER_HEADER(lcl_prs_frame_algemeen, buttons);
if (fac_profiel_limiet != -1) {
ROFIELDTR('fld', lcl_prs_profile , fac_profiel_omschrijving);
ROFIELDTR('fld', lcl_BES_orderlimit, fac_profiel_limiet,
{infoPointer: {Url:"appl/prs/kpn_mandate.asp?prs_key="+prs_key, Title:lcl_menu_fin_mandatering} });
{infoPointer: {Url:"appl/prs/kpn_mandate_search.asp?prs_key="+prs_key, Title:lcl_menu_fin_mandatering} });
}
BLOCK_END();
}

View File

@@ -1,73 +1,73 @@
<%@language = "javascript" %>
<% /*
$Revision: 1 $
$Modtime: 8-05-09 18:16 $
$Revision: 2 $
$Modtime: 1-11-09 23:40 $
*/ %>
<% Response.Expires = 0;
var HelpDisable = true; %>
<!-- #include file="../../cust/install.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<%dis = Request.QueryString ("dis").Count > 0; %>
<%
var dis = Request.QueryString ("dis").Count > 0;
FCLTHeader.Requires({plugins: ["jQuery"]});
%>
<html>
<head>
<%
FCLTHeader.Generate()
%>
%>
<script type="text/javascript">
function setUNameFocus() {
if ( document.getElementById("secur_frame") && document.getElementById("secur_frame").style.visibility == "visible" ) {
document.ifl_f.vis_name.focus()
}
}
$(document).ready(function () { $("#visname").focus() } );
function passwrd2mobile() {
window.document.all.item("mobile").value = 1;
window.document.all.item("vis_pswd").readOnly = 0;
window.document.all.item("mob_button").disabled = 1;
window.frames.hidFramePassword2Mobile.navigate('../Shared/sendPasswrd.asp?login='+window.document.all.item("vis_name").value);
if ($("#visname").val() == "") return false;
$("#mobile").val(1); // submit mee
$.post('../Shared/sendPasswrd.asp?login='+$("#visname").val());
$("#vispswd").removeAttr("readonly");
$("#mobbutton").attr("disabled", "disabled");
}
function youknowme() {
document.forms.ifl_f.action = 'testauth.asp';
document.forms.ifl_f.submit();
}
</script>
</head>
<body id="loginbody" onload='setTimeout("setUNameFocus()", 500)'>
<body id="loginbody">
<form name="ifl_f" action="ifcp.asp" method="post">
<input type="hidden" name="mobile" value="0">
<TABLE id="logintable">
<tr><td colspan="2" align="center">&nbsp;</tr><%//spacer%>
<form id="ifl_f" action="ifcp.asp" method="post">
<input type="hidden" id="mobile" name="mobile" value="0">
<TABLE id="logintable">
<TR>
<td class="label"><label><nobr><%=lcl_vis_log_name%></nobr></label></td>
<td><input type="text" size="20" maxlength="30" name="vis_name"></td>
<td><input class="required" type="text" size="20" maxlength="30" id="visname" name="vis_name">
<% if (mobile_password == 1) { %>
<td width="20">
<input type="button" tabIndex="-1" name="mob_button" title="Verstuur wachtwoord naar mobiel" class="mbutton" style="width:20;height:20;background-image:url(../Pictures/mobile.gif)" onClick="passwrd2mobile();">
</td>
&nbsp;<img class="details" id="mobbutton" title="<%=lcl_password_to_mobile%>" alt="SMS"
src="../Pictures/key.png" onClick="passwrd2mobile();">
<% } %>
</td>
</tr>
<tr>
<td class="label"><label><%=lcl_vis_log_psw%></label></td>
<td><input type="Password" <%=(mobile_password == 1?" readOnly ":"")%> size="20" maxlength="30" name="vis_pswd">
<INPUT type="SUBMIT" value="" style="width:0">
<td><input type="Password" <%=(mobile_password == 1?" readonly ":"")%> size="20" maxlength="30" id="vispswd" name="vis_pswd">
<input type="submit" value="1" style="width:0">
<%if ((dis)||(!os_logon)) {%>
<INPUT type="hidden" value="1" name=dis id=dis >
<%}%>
</td>
</tr>
<tr><td colspan="2" align="center">&nbsp;</tr><%//spacer%>
<tr>
<td colspan="2" align="center">
<div id="buttons"><%
BUTTONS_START();
CreateButton(lcl_logon, "document.forms.ifl_f.submit()","L");
if ((!dis)&&(os_logon)) {
CreateButton("<nobr>" + lcl_know_me + "</nobr>", "document.forms.ifl_f.action = 'testauth.asp';document.forms.ifl_f.submit();", "B");
}
%></div></td><%
BUTTONS_END();
%>
</TR>
</TABLE>
<tr><td colspan="2">
<div id="buttons">
<%
buttons = [ { title: lcl_logon, action: "submit()" } ];
if (true || (!dis)&&(os_logon)) {
buttons.push({ title: lcl_know_me, action: "youknowme()" });
// CreateButton("<nobr>" + lcl_know_me + "</nobr>", "document.forms.ifl_f.action = 'testauth.asp';document.forms.ifl_f.submit();", "B");
}
CreateButtons(buttons);
%></div>
</td></tr>
</TABLE>
</form>
<iframe src="../Shared/empty.html" frameborder="0" id="hidFramePassword2Mobile" style="display:none"></iframe>
</body>
</html>

View File

@@ -1,13 +1,16 @@
<%@language = "javascript" %>
<% /*
$Revision: 1 $
$Modtime: 26-02-09 11:50 $
$Revision: 2 $
$Modtime: 2-11-09 10:00 $
*/ %>
<% Response.Expires = -1; %>
<!-- #include file="../../cust/install.inc" -->
<!-- #include file="../../appl/Shared/escape.inc" -->
<!-- #include file="../../appl/Shared/login.inc" -->
<!-- #include file="../../appl/Shared/order.inc" -->
<%
FCLTHeader.Requires({plugins: ["jQuery"],
js: []})
var nm = ('' + Request.Form("vis_name")).toUpperCase();
@@ -30,22 +33,22 @@
{
tryLogin(nm, ps, mobile); // nm = username, ps = wachtwoord
}
if (user_key!=-1) {
%>
<!--#include file="../Shared/order.inc" --> <%// checking if there should be orders to close%>
<%
}
var dtc = new Date();
dtc = dtc.valueOf();
var msg = null
if (user_key!=-1) {
msg = countOpenOrders();
}
%>
<html>
<head>
<script type="text/javascript" src="../../appl/Localscripts/jquery.js"></script>
<script type="text/javascript">
$(parent.document).find('#closedialog').trigger('click');
</script>
</head>
<body></body>
<head>
<% FCLTHeader.Generate() %>
<script>
$(document).ready(function () {
FcltMgr.closeDetail(window, { warning: "<%=msg%>" } );
});
</script>
</head>
<body>
</body>
</html>

View File

@@ -1,6 +1,6 @@
<% /*
$Revision: 1 $
$Modtime: 26-09-09 16:15 $
$Revision: 2 $
$Modtime: 2-11-09 17:20 $
File: res_list.inc
Description: Show an overview of reservations in list-form,
@@ -41,7 +41,7 @@
Note: @@TODO
ZOU NOG MOETEN WORDEN GESPLITST IN res_list.inc en res_fo_search_list.asp en res_bomi_search_list.asp
waarbij de formfields worden vertaald naar filterparameters
EN IK DENK DAT DEZE MET PLAN=1 HET PLANBORD MOET GAAN TONEN
TODO:
de afhankelijkheden van urole moeten er uit! Deze functie levert een lijst op die voldoet aan de criteria
en gegeven de user en de autorisatie. Punt!
@@ -58,7 +58,7 @@
<%
FCLTHeader.Requires({ plugins:["jQuery"],
js: ["expand_frame.js", "wpos.js", "FcltMgr.js", "../RES/res_list.js"]
js: ["wpos.js", "../RES/res_list.js"]
});
function res_list (pautfunction, params)
@@ -160,9 +160,6 @@ function res_list (pautfunction, params)
var print = (<%=print? 1 : 0%> == 1);
var excel = (<%=excel? 1 : 0%> == 1);
var lcl_reservation = "<%=lcl_reservation%>";
var lcl_RES_completed_unknowed = "<%=lcl_RES_completed_unknowed%>";
var lcl_res_all_future = "<%=lcl_res_all_future%>";
var lcl_res_future_res = "<%=lcl_res_future_res%>";
var user_naam = "<%=user.naam()%>";
var todayString = "<%=toDateString(new Date())%>";
@@ -174,9 +171,6 @@ function res_list (pautfunction, params)
<body id="listbody">
<%
if (frontend || fronto)
{ // Make ResultsetTable for FE or FO
/***** Build sql *****/
thePerslid = " WITH"
+ " thePerslid AS"
@@ -184,6 +178,10 @@ function res_list (pautfunction, params)
+ ", prs_afdeling_key"
+ ", " + prs_pers_string + " naam FROM prs_perslid p)"
if (frontend || fronto)
{ // Make ResultsetTable for FE or FO
// RES_RSV_ROOM
sqlR = "";
@@ -191,17 +189,6 @@ function res_list (pautfunction, params)
+ ", rm.res_rsv_ruimte_key"
+ ", rm.res_rsv_ruimte_omschrijving descr"
+ ", rm.res_status_fo_key, r.res_ruimte_nr waar"
+ ", ((SELECT COUNT(rd.res_rsv_ruimte_key) aantal"
+ (res_deleted
? " FROM res_rsv_deel rd"
: " FROM res_v_aanwezigrsv_deel rd")
+ " WHERE rd.res_rsv_ruimte_key = rm.res_rsv_ruimte_key)"
+ " +"
+ " (SELECT COUNT(ra.res_rsv_ruimte_key) aantal"
+ (res_deleted
? " FROM res_rsv_artikel ra"
: " FROM res_v_aanwezigrsv_artikel ra")
+ " WHERE ra.res_rsv_ruimte_key = rm.res_rsv_ruimte_key)) aantalVC"
+ ", res_rsv_ruimte_van tvan"
+ ", res_rsv_ruimte_tot ttot"
+ ", pcontact.naam contact"
@@ -251,27 +238,19 @@ function res_list (pautfunction, params)
if (!res_key)
{ // If there is no res_key then determine sql_date
// If from and to are given both are used
// If only one of from and to are give, this is used as a (1) day, not an half open interval
// 20-10-2009 9:46:28/PF
datefrom = datefrom || dateto;
dateto = dateto || datefrom;
if (datefrom && dateto)
{
var ora_date1 = datefrom.beginToSQL();
var ora_date2 = dateto.endToSQL();
sql_date = " BETWEEN " + ora_date1 + " AND " + ora_date2;
//sqlR += " AND rm.res_rsv_ruimte_van BETWEEN " + ora_date1 + " AND " + ora_date2;
}
else if (datefrom)
{
var ora_date1 = datefrom.beginToSQL();
sql_date = " >= " + ora_date1;
//sqlR += " AND rm.res_rsv_ruimte_van >= " + ora_date1;
}
else if (dateto)
{
var ora_date2 = dateto.endToSQL();
sql_date = " < " + ora_date2;
//sqlR += " AND rm.res_rsv_ruimte_van < " + ora_date2;
sql_date = " AND res_rsv_ruimte_van < " + ora_date2 + " AND res_rsv_ruimte_tot > " + ora_date1;
}
if (sql_date)
sqlR += " AND rm.res_rsv_ruimte_van" + sql_date;
sqlR += sql_date;
//var ora_date1 = datefrom.beginToSQL();
//var ora_date2 = dateto.endToSQL();
@@ -279,6 +258,9 @@ function res_list (pautfunction, params)
//sqlR += " AND rm.res_rsv_ruimte_van BETWEEN " + ora_date1 + " AND " + ora_date2;
}
if (room_key_str)
sqlR += " AND r.res_discipline_key IN (" + room_key_str + ")";
if (fronto)
{
var sql_onrgoed = "";
@@ -337,7 +319,6 @@ function res_list (pautfunction, params)
// in 4.70 kunnen we direct een regel per deelreservering bepalen
sqlDeelCount = "SELECT rvard.res_rsv_ruimte_key"
+ ", rvard.res_rsv_deel_van datum"
+ ", COUNT(rvard.res_rsv_ruimte_key) aantal"
+ ", resd.res_discipline_key"
+ (res_deleted
@@ -355,7 +336,6 @@ function res_list (pautfunction, params)
+ ", res_rsv_ruimte_omschrijving descr"
+ ", rvarr.res_status_fo_key"
+ ", alg_ruimte_aanduiding waar"
+ ", rd.aantal aantalVC"
+ ", res_rsv_ruimte_van tvan"
+ ", res_rsv_ruimte_tot ttot"
+ ", pcontact.naam contact"
@@ -398,7 +378,7 @@ function res_list (pautfunction, params)
sqlDe += " AND rvarr.res_rsv_ruimte_verwijder IS NOT NULL";
if (sql_date)
sqlDe += " AND rd.datum" + sql_date;
sqlDe += sql_date;
if (fronto) {
if (sql_onrgoed != "")
@@ -439,7 +419,6 @@ function res_list (pautfunction, params)
+ ", res_rsv_ruimte_omschrijving descr"
+ ", rvarr.res_status_fo_key"
+ ", alg_ruimte_aanduiding waar"
+ ", ra.aantal aantalVC"
+ ", ra.res_rsv_artikel_levering tvan"
+ ", res_rsv_ruimte_tot ttot" //afruimtijd
+ ", pcontact.naam contact"
@@ -486,7 +465,6 @@ function res_list (pautfunction, params)
+ ", rec2.descr"
+ ", rec2.res_status_fo_key"
+ ", rec2.waar"
+ ", SUM(rec2.aantalvc) aantalVC"
+ ", MIN(rec2.tvan) tvan"
+ ", MAX(rec2.ttot) ttot"
+ ", rec2.contact"
@@ -527,7 +505,7 @@ function res_list (pautfunction, params)
+ ", rec2.res_user";
if (sql_date)
sqlA += " AND res_rsv_ruimte_van" + sql_date;
sqlA += sql_date;
if (fronto) {
if (sql_onrgoed != "")
@@ -543,21 +521,17 @@ function res_list (pautfunction, params)
"rg.alg_ruimte_key",
pautfunction,
"");
sql = "SELECT " + sql_select
+ " FROM (" + thePerslid + " " + sqlR + " UNION ALL " + sqlDe + " UNION ALL " + sqlA + ") rec2"
+ " WHERE 1=1";
}
else // frontend
{
sqlA += " AND (res_rsv_ruimte_contact_key IN (" + prsKeys + ")"
+ " OR res_rsv_ruimte_host_key IN (" + prsKeys + "))";
sql = "SELECT " + sql_select
+ " FROM (" + thePerslid + " " + sqlR + " UNION ALL " + sqlDe + " UNION ALL " + sqlA + ") rec2"
+ " WHERE 1=1 ";
} // fronto
sql = "SELECT " + sql_select
+ " FROM (" + thePerslid + " " + sqlR + " UNION ALL " + sqlDe + " UNION ALL " + sqlA + ") rec2"
+ " WHERE 1=1 ";
if (resstatus)
sql += " AND res_status_fo_key = " + resstatus;
@@ -628,6 +602,17 @@ function res_list (pautfunction, params)
return rowclass;
}
function fnrowDataF(oRs)
{
var resKey = oRs("res_reservering_key").value; // Reservering key
var resVolgnr = oRs("res_rsv_ruimte_volgnr").value; // Reservering volgnummer
var resRsvRuimteKey = oRs("res_rsv_ruimte_key").value; // rsv_ruimte_key
var data = {resKey: resKey, resVolgnr: resVolgnr, resRsvRuimteKey: resRsvRuimteKey};
return JSON.stringify(data);
}
function fnHasVZ(oRs)
{
if (oRs("nrObjects").value > 0)
@@ -655,6 +640,7 @@ function res_list (pautfunction, params)
var rst = new ResultsetTable({keyColumn: "res_rsv_ruimte_key",
ID: "restable",
rowClass: fnrowClassF,
rowData: fnrowDataF,
sql: sql,
filterParams: params,
outputmode: outputmode,
@@ -718,25 +704,25 @@ function res_list (pautfunction, params)
{
var ora_date1 = datefrom.beginToSQL();
var ora_date2 = dateto.endToSQL();
fdate_sql = " BETWEEN " + ora_date1 + " AND " + ora_date2;
fdate_sql = " AND res_rsv_ruimte_van < " + ora_date2 + " AND res_rsv_ruimte_tot > " + ora_date1;
//fdate_sql = " BETWEEN " + ora_date1 + " AND " + ora_date2;
}
else if (datefrom)
{
var ora_date1 = datefrom.beginToSQL();
fdate_sql = " >= " + ora_date1;
fdate_sql = " res_rsv_ruimte_tot > " + ora_date1;
}
else if (dateto)
{
var ora_date2 = dateto.endToSQL();
fdate_sql = " < " + ora_date2;
fdate_sql = " res_rsv_ruimte_van < " + ora_date2;
}
//ora_date1 = datefrom.beginToSQL();
//ora_date2 = dateto.endToSQL();
// JGL: Niet meer nodig volgens mij: de afzonderlijke takken hebben zelf al wel gefilterd.
// if (fdate_sql)
//fdate_sql = " BETWEEN " + ora_date1 + " AND " + ora_date2;
if (fdate_sql)
date_sql = " AND res_geg.res_reservering_van" + fdate_sql;
// date_sql = " AND res_geg.res_reservering_van" + fdate_sql;
if (dep_key)
{
@@ -814,8 +800,7 @@ function res_list (pautfunction, params)
var sql = "";
// New res structure
// Volgens mij willen we 1 regel per reservering hier; wat doen we dan met de mogelijk varierende kolommen?
// Onderstaand is nu 4-11-2006 1:54 wel syntactisch juist.
var sql_select = "rrr.res_reservering_key reservering"
var sql_select = "rrr.res_reservering_key"
+ ", ruimte_geg.alg_locatie_key"
+ ", l.alg_locatie_code locatie"
+ ", ruimte_geg.alg_gebouw_key"
@@ -829,8 +814,8 @@ function res_list (pautfunction, params)
+ ", res_geg.res_reservering_van datum"
+ ", res_geg.res_reservering_van tijd"
+ ", res_geg.res_reservering_tot tot"
+ ", (SELECT " + prs_pers_string
+ " FROM prs_perslid p "
+ ", (SELECT naam"
+ " FROM thePerslid p "
+ " WHERE p.prs_perslid_key = rrr.res_rsv_ruimte_contact_key) aanvrager"
+ ", res_geg.res_ins_discipline_key"
+ ", res_rsv_ruimte_omschrijving omschrijving"
@@ -855,9 +840,6 @@ function res_list (pautfunction, params)
+ " res_status_bo_key"
+ ", res_geg.res_type categorie"
+ ", rrr.res_rsv_ruimte_bezoekers bezoekers"
//+ ", " + DatePart('res_geg.res_reservering_van', 'DD') + " day"
//+ ", " + DatePart('res_geg.res_reservering_van', 'MM') + " maand"
//+ ", " + DatePart('res_geg.res_reservering_van', 'YYYY') + " jaar"
+ ", " + prs_pers_string + " gastheer"
+ ", p.prs_perslid_telefoonnr prs_perslid_telefoonnr"
+ ", COALESCE((SELECT k.prs_kostenplaats_nr "
@@ -914,8 +896,8 @@ function res_list (pautfunction, params)
+ " WHERE d.ins_discipline_key = res_ins_discipline_key"
+ " AND d.prs_kostensoort_key = ks.prs_kostensoort_key) prs_kostensoortgrp_key"
: "")
+ ", (SELECT " + prs_pers_string
+ " FROM prs_perslid p "
+ ", (SELECT naam "
+ " FROM thePerslid p "
+ " WHERE p.prs_perslid_key = res_geg.afmelder_key) afmelder_naam"
+ ", res_geg.afmeld_datum afmeld_datum"
+ ", rrr.res_rsv_ruimte_volgnr"
@@ -957,8 +939,8 @@ function res_list (pautfunction, params)
+ sql_art_key
+ sql_article
+ sql_art_group;
if (date_sql != "")
sql_from_art_part += " AND res_rsv_ruimte_van" + fdate_sql;
if (fdate_sql != "")
sql_from_art_part += fdate_sql;
var sql_from_obj_part = "SELECT 'V' as res_type"
+ ", 'CV' AS rcv_type"
@@ -995,8 +977,8 @@ function res_list (pautfunction, params)
? " AND rrr.alg_ruimte_key IS NOT NULL"
: "")
+ sql_obj_key;
if (date_sql != "")
sql_from_obj_part += " AND res_rsv_ruimte_van" + fdate_sql;
if (fdate_sql != "")
sql_from_obj_part += fdate_sql;
var sql_from_room_part = "SELECT 'R' AS res_type"
+ ", 'R' AS rcv_type"
@@ -1028,38 +1010,37 @@ function res_list (pautfunction, params)
+ " AND rro.res_opstelling_key = ro.res_opstelling_key"
+ sql_room_key;
if (date_sql != "")
sql_from_room_part += " AND res_rsv_ruimte_van" + fdate_sql;
if (fdate_sql != "")
sql_from_room_part += fdate_sql;
//===================================================
if (groupres == 1)
{ // Alleen backoffice reserveringen, group by deelreservering (rsv_ruimte_key and rcv_type DESC)
if (sortout == 1) // locatie, tijd
var sql_order = " ORDER BY locatie, num_datum_tijd, rsv_ruimte_key, rcv_type DESC, reservering, categorie DESC";
var sql_order = " ORDER BY locatie, datum, rsv_ruimte_key, rcv_type DESC, res_reservering_key, categorie DESC";
else if (sortout == 2) // plaats
var sql_order = " ORDER BY locatie, rsv_ruimte_key, rcv_type DESC, num_datum_tijd";
var sql_order = " ORDER BY locatie, rsv_ruimte_key, rcv_type DESC, datum";
else if (sortout == 3) // reservering
var sql_order = " ORDER BY reservering, rsv_ruimte_key, rcv_type DESC, num_datum_tijd";
var sql_order = " ORDER BY res_reservering_key, rsv_ruimte_key, rcv_type DESC, datum";
else if (sortout == 4) // gastheer
var sql_order = " ORDER BY gastheer, rsv_ruimte_key, rcv_type DESC, num_datum_tijd";
var sql_order = " ORDER BY gastheer, rsv_ruimte_key, rcv_type DESC, datum";
else if (sortout == 5) // tijd
var sql_order = " ORDER BY num_datum_tijd, rsv_ruimte_key, rcv_type DESC, locatie, categorie DESC, bezoekers DESC";
var sql_order = " ORDER BY datum, rsv_ruimte_key, rcv_type DESC, locatie, categorie DESC, bezoekers DESC";
else
var sql_order = " ORDER BY reservering DESC, rsv_ruimte_key, rcv_type DESC, locatie, categorie DESC, num_datum_tijd, res_ruimte_nr, bezoekers DESC";
var sql_order = " ORDER BY res_reservering_key DESC, rsv_ruimte_key, rcv_type DESC, locatie, categorie DESC, datum, res_ruimte_nr, bezoekers DESC";
}
else
{
if (sortout == 1) // locatie, tijd
var sql_order = " ORDER BY locatie, num_datum_tijd, res_ruimte_nr, reservering, categorie DESC";
var sql_order = " ORDER BY locatie, datum, res_ruimte_nr, res_reservering_key, categorie DESC";
else if (sortout == 2) // plaats
var sql_order = " ORDER BY locatie, res_ruimte_nr, num_datum_tijd, reservering, categorie DESC";
var sql_order = " ORDER BY locatie, res_ruimte_nr, datum, res_reservering_key, categorie DESC";
else if (sortout == 3) // reservering
var sql_order = " ORDER BY reservering, num_datum_tijd, res_ruimte_nr, categorie DESC";
var sql_order = " ORDER BY res_reservering_key, datum, res_ruimte_nr, categorie DESC";
else if (sortout == 4) // gastheer
var sql_order = " ORDER BY gastheer, num_datum_tijd, res_ruimte_nr, reservering, categorie DESC";
var sql_order = " ORDER BY gastheer, datum, res_ruimte_nr, res_reservering_key, categorie DESC";
else if (sortout == 5) // tijd
var sql_order = " ORDER BY num_datum_tijd, locatie, res_ruimte_nr, reservering, categorie DESC";
var sql_order = " ORDER BY datum, locatie, res_ruimte_nr, res_reservering_key, categorie DESC";
}
//sql += sql_order;
@@ -1085,7 +1066,8 @@ function res_list (pautfunction, params)
if (res_key || artcat)
sql_from_total += sql_from_art_part;
sql = "SELECT " + sql_select
sql = thePerslid
+ "SELECT " + sql_select
+ " FROM (" + sql_from_total + ") res_geg"
+ ", res_rsv_ruimte rrr"
+ ", prs_perslid p"
@@ -1135,7 +1117,7 @@ function res_list (pautfunction, params)
if (groupres == 1)
{
// Voor groepering nog verder filteren
sql = " SELECT DISTINCT reservering"
sql = " SELECT DISTINCT res_reservering_key"
//+ ", alg_locatie_key"
+ ", locatie"
+ ", alg_gebouw_key"
@@ -1148,7 +1130,6 @@ function res_list (pautfunction, params)
+ " WHEN 'C' THEN '" + lcl_reserved_object + "'"
+ " ELSE res_voorziening"
+ " END res_voorziening"
//+ ", num_datum_tijd"
+ ", datum"
+ ", tijd"
+ ", tot"
@@ -1213,7 +1194,7 @@ function res_list (pautfunction, params)
res_columns[res_columns.length] = new columnData(lcl_total, "totaalprijs", "currency", true)
sql = "SELECT l.alg_locatie_key " + res_keyColumn
+ ", l.alg_locatie_omschrijving locatie"
+ ", COUNT(distinct res.reservering) aantalres"
+ ", COUNT(distinct res.res_reservering_key) aantalres"
+ ", SUM(res.verwerkt_prijs) totaalprijs"
+ " FROM (" + sql + ") res"
+ ", alg_locatie l "
@@ -1231,7 +1212,7 @@ function res_list (pautfunction, params)
res_columns[res_columns.length] = new columnData(lcl_total, "totaalprijs", "currency", true)
sql = " SELECT g.alg_gebouw_key " + res_keyColumn
+ ", l.alg_locatie_code || '-' || g.alg_gebouw_naam gebouw"
+ ", COUNT(distinct res.reservering) aantalres"
+ ", COUNT(distinct res.res_reservering_key) aantalres"
+ ", SUM(res.verwerkt_prijs) totaalprijs"
+ " FROM (" + sql + ") res"
+ ", alg_locatie l"
@@ -1250,7 +1231,7 @@ function res_list (pautfunction, params)
res_columns[res_columns.length] = new columnData(lcl_res_res_nr, "aantalres", "integer", true)
sql = " SELECT a.res_activiteit_key " + res_keyColumn
+ ", a.res_activiteit_omschrijving activiteit"
+ ", COUNT(distinct res.reservering) aantalres"
+ ", COUNT(distinct res.res_reservering_key) aantalres"
+ " FROM (" + sql + ") res"
+ ", res_activiteit a"
+ " WHERE res.res_activiteit_key = a.res_activiteit_key"
@@ -1267,7 +1248,7 @@ function res_list (pautfunction, params)
res_columns[res_columns.length] = new columnData(lcl_total, "totaalprijs", "currency", true)
sql = " SELECT COALESCE(res.prs_kostensoort_key, 0) " + res_keyColumn
+ ", res.prs_kostensoort_oms kostensoort"
+ ", COUNT(distinct res.reservering) aantalres"
+ ", COUNT(distinct res.res_reservering_key) aantalres"
+ ", SUM(res.verwerkt_prijs) totaalprijs"
+ " FROM (" + sql + ") res"
+ " GROUP BY res.prs_kostensoort_key"
@@ -1283,7 +1264,7 @@ function res_list (pautfunction, params)
res_columns[res_columns.length] = new columnData(lcl_total, "totaalprijs", "currency", true)
sql = " SELECT COALESCE(res.prs_kostensoortgrp_key, 0) " + res_keyColumn
+ ", res.prs_kostensoortgrp_oms kostensoortgrp"
+ ", COUNT(distinct res.reservering) aantalres"
+ ", COUNT(distinct res.res_reservering_key) aantalres"
+ ", SUM(res.verwerkt_prijs) totaalprijs"
+ " FROM (" + sql + ") res"
+ " GROUP BY res.prs_kostensoortgrp_key"
@@ -1345,7 +1326,7 @@ function res_list (pautfunction, params)
res_columns[res_columns.length] = new columnData(lcl_total, "totaalprijs", "currency", true)
sql = " SELECT COALESCE(res.kostenplaats_key, 0) " + res_keyColumn
+ ", res.kostenplaats kostenplaats"
+ ", COUNT(DISTINCT res.reservering) aantalres"
+ ", COUNT(DISTINCT res.res_reservering_key) aantalres"
+ ", SUM(res.verwerkt_prijs) totaalprijs"
+ " FROM (" + sql + ") res"
+ " GROUP BY kostenplaats_key"
@@ -1361,7 +1342,7 @@ function res_list (pautfunction, params)
res_columns[res_columns.length] = new columnData(lcl_total, "totaalprijs", "currency", true)
sql = "SELECT d.alg_district_key " + res_keyColumn
+ ", d.alg_district_omschrijving district"
+ ", COUNT(distinct res.reservering) aantalres"
+ ", COUNT(distinct res.res_reservering_key) aantalres"
+ ", SUM(res.verwerkt_prijs) totaalprijs"
+ " FROM (" + sql + ") res"
+ ", alg_district d"
@@ -1373,8 +1354,8 @@ function res_list (pautfunction, params)
else if (groupres == 4)
{ // De default als groepering als niets gekozen
// minfo reserveringen
res_keyColumn = "reservering";
res_columns[res_columns.length] = new columnData(lcl_resnr, "reservering")
res_keyColumn = "res_reservering_key";
res_columns[res_columns.length] = new columnData(lcl_resnr, "res_reservering_key")
res_columns[res_columns.length] = new columnData(lcl_location, "locatie")
res_columns[res_columns.length] = new columnData(lcl_room_n, "ruimte_aanduiding")
res_columns[res_columns.length] = new columnData(lcl_date, "datum")
@@ -1387,7 +1368,8 @@ function res_list (pautfunction, params)
res_columns[res_columns.length] = new columnData(lcl_remark, "opmerking")
res_columns[res_columns.length] = new columnData(lcl_res_no_show, "noshow")
res_columns[res_columns.length] = new columnData(lcl_room_n, "totaalprijs", "currency", true)
sql = "SELECT res.reservering " + res_keyColumn
sql = "SELECT res.res_reservering_key || '/' || res.res_rsv_ruimte_volgnr " + res_keyColumn
+ ", res.res_rsv_ruimte_volgnr volgnr"
+ ", res.locatie locatie"
+ ", res.alg_ruimte_aanduiding ruimte_aanduiding"
+ ", res.datum datum"
@@ -1406,7 +1388,8 @@ function res_list (pautfunction, params)
+ ", MAX(res.res_item_key) res_item_key"
+ ", MAX(res.res_ruimte_key) res_ruimte_key"
+ " FROM (" + sql + ") res"
+ " GROUP BY reservering"
+ " GROUP BY res_reservering_key || '/' || res.res_rsv_ruimte_volgnr"
+ ", res_rsv_ruimte_volgnr"
+ ", locatie"
+ ", alg_ruimte_aanduiding"
+ ", datum"
@@ -1453,6 +1436,18 @@ function res_list (pautfunction, params)
* Callback functies ResultsetTable for only MI with grouping
****************************************************************/
function fnrowDataM(oRs)
{
var data = { resKey : oRs(res_keyColumn).value }; // Reservering key
if (res_keyColumn == "res_reservering_key")
{
data.resVolgnr = oRs("volgnr").value; // Reservering volgnummer
data.resRsvRuimteKey = oRs("rsv_ruimte_key").value; // rsv_ruimte_key
}
return JSON.stringify(data);
}
function fncolDistrict(oRs)
{
var content = oRs("locatie");
@@ -1466,6 +1461,7 @@ function res_list (pautfunction, params)
var rst = new ResultsetTable({keyColumn: res_keyColumn,
ID: "restable",
//rowClass: fnrowClass,
rowData: fnrowDataM,
sql: sql,
filterParams: params,
outputmode: outputmode,
@@ -1503,14 +1499,17 @@ function res_list (pautfunction, params)
function fnrowData(oRs)
{
var resKey = oRs("res_reservering_key").value; // Reservering key
var resVolgnr = oRs("res_rsv_ruimte_volgnr").value; // Reservering volgnummer
var resRsvRuimteKey = oRs("rsv_ruimte_key").value; // rsv_ruimte_key
var resPartkey = oRs("res_item_key").value; // rsv_ruimte_key, rsv_deel_key of rsv_artikel_key
var resPartType = oRs("categorie").Value; // reserveringstype ('C', 'V', 'R')
var resPartType = oRs("categorie").value; // reserveringstype ('C', 'V', 'R')
var resVanDatumMidnight = new Date(oRs("tijd").value).midnight(); // rsv_ruimte_van datum om middernacht
var now = new Date();
var resFuture = (resVanDatumMidnight > now? 1 : 0)
var data = {resPartkey: resPartkey, resPartType: resPartType, resFuture: resFuture};
var data = {resKey: resKey, resVolgnr: resVolgnr, resRsvRuimteKey: resRsvRuimteKey, resPartkey: resPartkey, resPartType: resPartType, resFuture: resFuture};
return JSON.stringify(data);
}
@@ -1547,7 +1546,7 @@ function res_list (pautfunction, params)
////else
//{
// if (oRs("afmelder_naam").value == null)
// alt_afmeld_info = 'alt="' + lcl_RES_completed_unknowed + '"';
// alt_afmeld_info = 'alt="' + LCL.res.completed_unknown + '"';
// else
// alt_afmeld_info = 'alt="' + toDateString(oRs("afmeld_datum").value) + '&nbsp;&nbsp;-&nbsp;&nbsp;' + oRs("afmelder_naam").value + '"';
// //content = '<img style="display:block" id="afm' + oRs("keycolumn").value + '" src="../Pictures/res_ok.gif" ' + alt_afmeld_info + '>'
@@ -1564,7 +1563,7 @@ function res_list (pautfunction, params)
function fnrowResNr(oRs)
{
return oRs("reservering").value + "/" + oRs("res_rsv_ruimte_volgnr").value;
return oRs("res_reservering_key").value + "/" + oRs("res_rsv_ruimte_volgnr").value;
}
function fnrowVisitors(oRs)
@@ -1586,9 +1585,13 @@ function res_list (pautfunction, params)
{
if (groupres == 1)
{
if (oRs("categorie").value == 'R')
c_inst = oRs("res_voorziening").value;
else
if (oRs("categorie").value == 'R') {
// TODO: ik wil hier een span class toevoegen om afwijking van de
// defaultopstelling te markeren. Ik vind het echter nu nogal ondoorzichtig
// waar die kolomwaarde vandaan zou moeten komen.
//c_inst = (oRs('res_ruimte_opstel_default').value != "1" ? "*" : "")
c_inst = oRs("res_voorziening").value;
} else
c_inst = lcl_reserved_object;
}
else
@@ -1604,16 +1607,16 @@ function res_list (pautfunction, params)
function fnrowDescr(oRs)
{
descr = oRs("omschrijving").Value;
if (descr == "" || descr == '' || descr == 'null' || descr == "null" || descr == 0)
var descr = oRs("omschrijving").Value;
if (descr == "" || descr == "null")
descr = "&nbsp;";
return descr;
}
function fnrowRemark(oRs)
{
remark = oRs("opmerking").Value;
if (remark == "" || remark == '' || remark == 'null' || remark == "null" || remark == 0)
var remark = oRs("opmerking").Value;
if (remark == "" || remark == "null")
remark="&nbsp;";
return remark;
}
@@ -1639,8 +1642,11 @@ function res_list (pautfunction, params)
});
// Kolommen
rst.addColumn(new Column({caption: lcl_location, content: "locatie"}));
rst.addColumn(new Column({caption: lcl_room_n, content: "res_ruimte_nr", combine: true, hasActions: true}));
// AAFM#14872/PF: Deze locatiekolom is wat dubbelop. We spreken af dat we die
// eerst maar eens niet meer tonen. Als er gefundeerde klachten komen is
// deze snel genoeg combined terug te halen
// rst.addColumn(new Column({caption: lcl_location, content: "locatie"}));
rst.addColumn(new Column({caption: lcl_room_n, content: "res_ruimte_nr", combine: false, hasActions: true}));
rst.addColumn(new Column({caption: lcl_date, content: "datum"}));
rst.addColumn(new Column({caption: lcl_res_starttime, content: "tijd", datatype: "time"}));
rst.addColumn(new Column({caption: lcl_res_endtime, content: "tot", datatype: "time"}));
@@ -1687,7 +1693,7 @@ function res_list (pautfunction, params)
%>
<iframe src="../Shared/empty.asp" frameborder="0" id="hidFrame" style="display:none"></iframe>
<%
} // else frontend || fronto
} // else bo || mi
%>
</body>
</html>

View File

@@ -1,73 +1,76 @@
<%@ language = "JavaScript" %>
<% /*
$Revision: 1 $
$Modtime: 7-07-09 11:17 $
$Revision: 2 $
$Modtime: 28-10-09 16:33 $
File: obj_schedule.asp
Description: Create small planboard for reservable objects
At the body.onload it copies its entire innerHTML to the parent
Wordt via Ajax geladen/geplakt in de body res_edit_objcat.asp
als een categorie wordt opengeklapt.
Parameters: urole
rsv_ruimte_key optioneel. Als meegegeven dan zitten we in edit mode en komen er
extra edit veldjes in beeld.
Als niet meegegeven dan is rsv_van verplicht en tonen we
alleen een planbordje
rsv_van datum, optioneel, zie rsv_ruimte_key
Context: Called in hidden frame of reserv_Objects_js.asp when user 'opens' object categorie
??Let wel: 'onder het grote planbord' en 'na drukken knop voorzieningen bij een
bestaande of nieuwe reservering' geeft iets ander gedrag??
Notes: See also cons_objects.asp for consumable objects. Solved differently
though.
Context: Geladen via ajax als user 'opent' object categorie
Notes: Zie ook cons_objects.asp voor catering
het RES_RSV_RUIMTE record bestaat altijd al!
res_rsv_ruimte_key is dan ook zo'n beetje de enige parameter?
Er wordt combinatie-validate gedaan
*/
DOCTYPE_Disable = 1;
%>
<% Response.Expires = -1; %>
<!--#include file="../../cust/install.inc"-->
<!--#include file="../Shared/funcodes.inc"-->
<!--#include file="../Shared/date_sql.inc" -->
<!--#include file="../shared/datetime.inc"-->
<!--#include file="../Shared/escape.inc" -->
<!--#include file="../Shared/discxalg3d.inc"-->
<!--#include file="res.inc"-->
<!--#include file="obj_schedule.inc"-->
<!-- #include file="../shared/kpl_ksrt_validate.inc" -->
<%
var urole = getQParam("urole");
var rsv_ruimte_key = getQParam("rsv_ruimte_key", -1);
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key", -1);
var sdisc = getQParamInt("sdisc");
if (rsv_ruimte_key>0)
{
// Zo snel mogelijk relevante basisinformatie opzoeken
sql = "select res_reservering_key, "
+ " alg_ruimte_key, res_ruimte_opstel_key, "
+ " res_rsv_ruimte_van, res_rsv_ruimte_tot,"
+ " prs_kostenplaats_key"
+ " from res_rsv_ruimte"
+ " where res_rsv_ruimte_key = " + rsv_ruimte_key;
+ " alg_ruimte_key, res_ruimte_opstel_key, "
+ " res_rsv_ruimte_van, res_rsv_ruimte_tot,"
+ " prs_kostenplaats_key"
+ " from res_rsv_ruimte"
+ " where res_rsv_ruimte_key = " + rsv_ruimte_key;
oRs = Oracle.Execute(sql);
var res_key = oRs("res_reservering_key").value;
var res_van = new Date(oRs("res_rsv_ruimte_van").value);
var res_tot = new Date(oRs("res_rsv_ruimte_tot").value);
if (!kpl_ksrt_validate(oRs("prs_kostenplaats_key"), null, sdisc))
{
%><script type="text/javascript">
alert("<%=lcl_res_kpks_validatie%>");
</script>
<%
Response.End()
}
}
else
{
var res_van = new Date(parseInt(getQParam("rsv_van")));
res_tot = rsv_van;
var res_van = getQParamDate("res_van");
var res_tot = getQParamDate("res_tot", res_van);
}
var hour_px = getQParamInt("hour_px", 48); // setting res_plan_hour_px;
var fronto = (urole=='fo');;
var backo = (urole=='bo');
var jumped = Request.QueryString("jumped").Count>0;
var sdisc = parseInt( Request.QueryString("sdisc") );
var yy = res_van.getFullYear();
var mm = res_van.getMonth()+1;
var dd = res_van.getDate();
var h1 = '00'; // Request.QueryString("h1"); // these params represent _current_ reservation start/end time,
var m1 = '00'; // Request.QueryString("m1"); // but these way they don't show all reserved objects of a day for
var h2 = '23'; // Request.QueryString("h2"); // object editing
var m2 = '59'; // Request.QueryString("m2");
var ch_obj_mode = parseInt(Request.QueryString("ch_obj_mode"));
@@ -75,11 +78,14 @@
autfunction = 'WEB_RESUSE';
else
autfunction = 'WEB_RESFOF';
%>
<!--#include file="../Shared/autlevel.inc"-->
<%
objSchedule(fronto, backo, jumped, sdisc,
rsv_ruimte_key,
res_van, res_tot, ch_obj_mode);
%>
var authparams = user.checkAutorisation(autfunction, true);
objSchedule(sdisc, res_van, res_tot,
{ jumped: jumped,
hour_px: hour_px,
rsv_ruimte_key: rsv_ruimte_key,
ch_obj_mode: ch_obj_mode
});
%>

View File

@@ -1,14 +1,14 @@
<% /*
$Revision: 1 $
$Modtime: 3-09-09 13:42 $
$Revision: 2 $
$Modtime: 2-11-09 12:31 $
File: obj_schedule.inc
Status: 75%
Status: 75% (PF: hooguit)
Description: Create small planboard for reservable objects
At the body.onload it copies its entire innerHTML to the parent
Parameters: ???
Context: Called in hidden frame of reserv_Objects_js.asp clientside when user 'opens' object categorie
Context: Geladen via ajaxals gebruiker een object categorie opent
as well serverside when object categorie should be open initially
??Let wel: 'onder het grote planbord' en 'na drukken knop voorzieningen bij een
bestaande of nieuwe reservering' geeft iets ander gedrag??
@@ -16,157 +16,116 @@
though.
*/
%>
<%
var res_color_free = "#b0b0b0"; // Vrij: licht grijs
var res_color_resv = "#990000"; // Definitief: rood
var res_color_optie = "#31398C"; // Optie: blauw
var res_color_techb = "#808080"; // Schoonmaak: donker grijs
var res_color_blok = "#000000"; // Blokkade: zwart
var res_color_verv = "#990099"; // Vervallen: paars
var res_color_na = "#D6D80E"; // Niet beschikbaar: geel
%>
FCLTHeader.Requires({ js: ["./room_schedule.js"] });
<script type="text/javascript">
var res_color_free = "<%=res_color_free%>";
var res_color_resv = "<%=res_color_resv%>";
var res_color_optie = "<%=res_color_optie%>";
var res_color_techb = "<%=res_color_techb%>";
var res_color_blok = "<%=res_color_blok%>";
first=true;
res_t1 = <% = " " + res_t1 %>;
res_t2 = <% = " " + res_t2 %>;
res_h = <% = " " + res_h %>;
res_intervals = <% = res_intervals %>;
</script>
<script type="text/javascript" src="room_schedule.js"></script>
<%
function EmitTimeHeader() // Kopregel plantable
function objSchedule(sdisc, res_van, res_tot, params)
{
if (isEdit) {
%>
<td></td>
<%
}
%>
<td></td>
<td></td>
<td align='right'></td>
<%
var showOnlyOddHours = ((res_t2 - res_t1) >= res_roomplan_skiplimit)
var mod_t1 = (res_t1 % (showOnlyOddHours?2:1)); // bepaal restwaarde
if (mod_t1 == 0) mod_t1 = (showOnlyOddHours?2:1); // als even dan restwaarde is 1 of 2
s0 = res_t1 - (mod_t1);
//s0 = res_t1 - 1;
s = res_t1;
i0 = -1;
m ="";
for (i=0; i<=res_intervals; i++)
{
if (s - s0 >= (showOnlyOddHours?2:1)) // Elke 1 of 2 uur de tijd weergeven
//if (s - s0 >= 1)
params = params || {};
params.hour_px = params.hour_px || 48;
params.rsv_ruimte_key = params.rsv_ruimte_key || -1;
params.ch_obj_mode = params.ch_obj_mode || 0;
var res_h_px = params.hour_px * res_h;
mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
{
var div;
var overleft="";
var overright="";
if (h_start<res_t1)
{
h = Math.floor(s);
if (h < 10) h = "0" + h;
%>
<td colspan="<%=(i-i0)%>" align="right" class=header>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td align="left" class="room_sched_cap"><%=m%></td>
<td align="right" class="room_sched_cap"><%=h%></td>
</tr>
</table>
</td>
<%
m = Math.floor((s - h)*60);
if (m < 10) m = "0" + m;
i0 = i;
s0 = s;
h_start = res_t1-res_h;
if (dagen > 0)
overleft = " continueleft";
else
overleft = " overflowleft";
}
s += res_h;
}
%>
<td colspan="2" class="room_sched_cap"><%=m%></td>
<%
if (h_end>res_t2)
{
h_end = res_t2+res_h;
if (dagen < nr_days-1)
overright = " continueright";
else
overright = " overflowright";
}
var px_start = (h_start-res_t1)*params.hour_px + 1; // 1 px speling
var px_end = (h_end-res_t1)*params.hour_px;
var px_width = px_end - px_start;
if (overleft!=""&&overright!="")
{ // Maak twee divjes, eentje links en eentje rechts.
// HTML kan maar <20><>n background image tegelijk aan
div = "<div class='"+theClass+overleft+"'"
+(theMouse||"")
+(theClick||"")
+(theOther||"")
+" style='left:"+px_start+"px;width:"+(px_width/2)+"px'>"
+"&nbsp;</div>";
div += "<div class='"+theClass+overright+"'"
+(theMouse||"")
+(theClick||"")
+(theOther||"")
+" style='left:"+(px_start+px_width/2)+"px;width:"+(px_width/2)+"px'>"
+"&nbsp;</div>";
}
else
{
div = "<div class='"+theClass+overleft+overright+"'"
+(theMouse||"")
+(theClick||"")
+(theOther||"")
+" style='left:"+px_start+"px;width:"+px_width+"px'>"
+"&nbsp;</div>";
}
return { div: div, overleft: overleft, overright: overright };
}
function h_seg( h1, m1, h2, m2, res_key, rsv_ruimte_key, optie, blokkade, vervallen, rsv_deel_key, alg_ruimte_key, cur_res, bez_key, res_status ) {
this.h_start = h1 + m1/60;
this.h_end = h2 + m2/60;
this.res_key = res_key;
this.rsv_ruimte_key = rsv_ruimte_key;
this.optie = optie;
this.blokkade = blokkade;
this.vervallen = vervallen;
this.rsv_deel_key = rsv_deel_key;
this.alg_ruimte_key = alg_ruimte_key;
this.cur_res = cur_res;
this.bez_key = bez_key;
this.h1 = h1;
this.h2 = h2;
this.m1 = m1;
this.m2 = m2;
this.res_status = res_status;
}
// rsv_ruimte_key altijd verplicht!
function objSchedule(fronto, backo, jumped, sdisc,
rsv_ruimte_key1,
res_van, res_tot, ch_obj_mode) {
if(isNaN(rsv_ruimte_key1) || rsv_ruimte_key1 <= 0)
INTERNAL_ERROR_OBJ_SCHEDULE;
var readwrite = func_enabled[ "WEB_RESFOF"] || func_enabled[ "WEB_RESUSE"];
if( readwrite || func_enabled[ "WEB_RESFO2"] )
{ // MGE UWVA#12468: In FE planbord wordt obj_schedule.asp niet aangeroepen (Er wordt gechecked op !frontend).
// Bij invullen voorzieningen heeft FE wel recht op invoer als FE ALGwrite rechten heeft voor WEB_RESUSE
readwrite=(ALGwritelevel<9); // Ondersteun (FE) gebruikers met *alleen* FO-leesrechten: kijken planbord
readwrite=(authparams.ALGwritelevel<9); // Ondersteun (FE) gebruikers met *alleen* FO-leesrechten: kijken planbord
sql = "SELECT COALESCE(ru.res_ruimte_begintijd, " + res_t1 + ") res_t1"
+ ", COALESCE(ru.res_ruimte_eindtijd, " + res_t2 + ") res_t2"
+ ", rr.alg_ruimte_key"
+ " FROM res_v_aanwezigruimte ru"
+ ", res_rsv_ruimte rr"
+ ", res_ruimte_opstelling ro"
if (params.rsv_ruimte_key>0) // single-reservering mode
{
sql = "SELECT ru.res_ruimte_begintijd"
+ ", ru.res_ruimte_eindtijd"
+ ", rr.alg_ruimte_key"
+ " FROM res_v_aanwezigruimte ru"
+ ", res_rsv_ruimte rr"
+ ", res_ruimte_opstelling ro"
+ " WHERE ru.res_ruimte_key = ro.res_ruimte_key"
+ " AND ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key"
+ " AND rr.res_rsv_ruimte_key = " + rsv_ruimte_key1;
+ " AND ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key"
+ " AND rr.res_rsv_ruimte_key = " + params.rsv_ruimte_key;
oRs = Oracle.Execute(sql);
if (!oRs.eof)
{
var alg_ruimte_key = oRs("alg_ruimte_key").value;
var starttime_room = oRs("res_t1").value;
var endtime_room = oRs("res_t2").value;
if (starttime_room < res_t1) starttime_room = res_t1;
if (endtime_room > res_t2) endtime_room = res_t2;
if (starttime_room > endtime_room) starttime_room = endtime_room;
starttime_room = toJsNumber(starttime_room);
endtime_room = toJsNumber(endtime_room);
// Als de ruimte maar beperkt open is gaan we rekenen met een krappere res_t1/res_t2
var res_ruimte_begintijd = oRs("res_ruimte_begintijd").Value||res_t1;
var res_ruimte_eindtijd = oRs("res_ruimte_eindtijd").Value||res_t2;
if (res_ruimte_begintijd > res_ruimte_eindtijd) res_ruimte_begintijd = res_ruimte_eindtijd;
if (res_ruimte_begintijd > res_t1) res_t1 = res_ruimte_begintijd;
if (res_ruimte_eindtijd > res_t2) res_t2 = res_ruimte_eindtijd;
}
else // CV reserverering
else // CV reserverering, altijd res_t1-res_t2
{
sql = "SELECT alg_ruimte_key"
+ " FROM res_rsv_ruimte"
+ " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key1;
+ " WHERE res_rsv_ruimte_key = " + params.rsv_ruimte_key;
oRs = Oracle.Execute(sql);
var alg_ruimte_key = oRs("alg_ruimte_key").value;
starttime_room = res_t1;
endtime_room = res_t2;
}
}
var loc_key = params.loc_key || -1;
var loc_key = -1;
pref = 1;
isEdit = (params.ch_obj_mode > 0);
if (isNaN(ch_obj_mode)) ch_obj_mode = 0;
isEdit = (ch_obj_mode > 0);
if (rsv_ruimte_key1<0){
ch_obj_mode = 0;
if (params.rsv_ruimte_key<0){
params.ch_obj_mode = 0;
}
if (isNaN(sdisc)) {
@@ -178,127 +137,94 @@ if(isNaN(rsv_ruimte_key1) || rsv_ruimte_key1 <= 0)
{
ora_date1 = res_van.beginToSQL();
ora_date2 = res_tot.endToSQL();
var res_color_free = "#b0b0b0"; // Vrij: licht grijs
var res_color_resv = "#990000"; // Definitief: rood
var res_color_optie = "#31398C"; // Optie: blauw
var res_color_techb = "#808080"; // Schoonmaak: donker grijs
var res_color_blok = "#000000"; // Blokkade: zwart
var res_color_verv = "#990099"; // Vervallen: paars
var res_color_na = "#D6D80E"; // Niet beschikbaar: geel
%>
<html>
<body onload="parent.document.getElementById('div_dis<%=sdisc%>').innerHTML = document.body.innerHTML
parent.document.getElementById('div_dis<%=sdisc%>').style.display = 'block';
if(parent.parent && parent.parent.ExpandFrame) {
parent.parent.ExpandFrame(parent.name); // objFrame
if(parent.parent.parent.ExpandFrame)
parent.parent.parent.ExpandFrame(parent.parent.name); // workFrame
}
if (parent.obj_schedule_done) parent.obj_schedule_done();
parent.res_color_free = res_color_free;">
<%
//oude functie CreateObjSchedule ingevoegd
var nr_days = 1+(res_tot.midnight() - res_van.midnight())/24/60/60/1000;
var sql, Autfunction;
var existing_res = {};
if (isEdit) { // Tijdstip edit velden toevoegen
// Bepaal de standaard duur van de reservering
var res_duur = res_dur; // initial reserving duration
var sql = "SELECT COALESCE(rac.res_activiteit_duur, " + res_dur + ") duur"
+ " FROM res_rsv_ruimte rr"
+ ", res_activiteit rac"
+ " WHERE rr.res_rsv_ruimte_key = " + rsv_ruimte_key1
+ " AND rac.res_activiteit_key = rr.res_activiteit_key";
var oRsDuur = Oracle.Execute(sql);
if (!oRsDuur.eof) {
res_duur = oRsDuur("duur").value;
}
oRsDuur.close();
}
// Determine all existing reserved objects and store them in an array 'existing_res'
sql = "SELECT " // Via gewone reserveringen, die hebben res_rsv_ruimte_key
+ " rrd.RES_RSV_DEEL_VAN, rrd.RES_RSV_DEEL_TOT"
+ ", rd.res_deel_key"
+ ", rr.res_status_fo_key"
+ ", rr.res_reservering_key"
+ ", rrd.res_rsv_deel_key"
+ ", rrd.res_rsv_ruimte_key"
+ ", rr.alg_ruimte_key"
+ ", -1 bez_bezoekers_key"
+ ", rrd.res_status_bo_key"
+ " FROM res_v_aanwezigrsv_ruimte rr"
+ ", res_v_aanwezigdeel rd" //PF: aanwezig?
+ ", res_v_aanwezigrsv_deel rrd"
+ " WHERE rrd.res_rsv_deel_tot BETWEEN " + ora_date1 + " AND " + ora_date2
+ " AND rrd.res_deel_key = rd.res_deel_key"
+ " AND rrd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key"
+ " AND rd.res_discipline_key = " + sdisc
+ " rrd.RES_RSV_DEEL_VAN"
+ ", rrd.RES_RSV_DEEL_TOT"
+ ", rd.res_deel_key"
+ ", rr.res_status_fo_key"
+ ", rrd.res_rsv_deel_key"
+ ", rrd.res_rsv_deel_dirtlevel"
+ ", rrd.res_rsv_ruimte_key"
+ ", rr.alg_ruimte_key"
+ ", -1 bez_bezoekers_key"
+ ", rrd.res_status_bo_key"
+ " FROM res_v_aanwezigrsv_ruimte rr"
+ ", res_v_aanwezigdeel rd" //PF: aanwezig?
+ ", res_v_aanwezigrsv_deel rrd"
+ " WHERE rrd.res_rsv_deel_tot >= " + ora_date1
+ " AND rrd.res_rsv_deel_van <= " + ora_date2
+ " AND rrd.res_deel_key = rd.res_deel_key"
+ " AND rrd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key"
+ " AND rd.res_discipline_key = " + sdisc
if (sdisc==vis_parking_key)
sql = sql + " UNION ALL " //Die via afspraak/bezoekers (parkeerplaatsen)
+ "SELECT rrd.RES_RSV_DEEL_VAN, rrd.RES_RSV_DEEL_TOT"
+ ", rd.RES_DEEL_KEY"
+ ", -1 res_status_fo_key"
+ ", -1" // RES_RESERVERING_key
+ ", rrd.res_rsv_deel_key"
+ ", rrd.RES_RSV_RUIMTE_KEY"
+ ", -1 ALG_RUIMTE_KEY"
+ ", rrd.bez_bezoekers_key"
+ ", rrd.res_status_bo_key"
+ " FROM RES_V_AANWEZIGDEEL RD"
+ ", RES_V_AANWEZIGRSV_DEEL rrd"
+ ", bez_bezoekers b"
+ ", bez_afspraak a"
+ " WHERE rrd.RES_RSV_DEEL_TOT BETWEEN " + ora_date1 + " AND " + ora_date2
+ " AND rrd.res_deel_key = rd.res_deel_key"
+ " AND rrd.bez_bezoekers_key = b.bez_bezoekers_key"
+ " AND b.bez_afspraak_key = a.bez_afspraak_key"
+ " AND rrd.res_rsv_ruimte_key is null"
+ " AND rd.RES_DISCIPLINE_KEY="+sdisc
+ "SELECT rrd.RES_RSV_DEEL_VAN"
+ ", rrd.RES_RSV_DEEL_TOT"
+ ", rd.RES_DEEL_KEY"
+ ", 2 res_status_fo_key" // altijd definitief
+ ", rrd.res_rsv_deel_key"
+ ", rrd.res_rsv_deel_dirtlevel"
+ ", rrd.RES_RSV_RUIMTE_KEY"
+ ", -1 ALG_RUIMTE_KEY"
+ ", rrd.bez_bezoekers_key"
+ ", rrd.res_status_bo_key"
+ " FROM RES_V_AANWEZIGDEEL RD"
+ ", RES_V_AANWEZIGRSV_DEEL rrd"
+ ", bez_bezoekers b"
+ ", bez_afspraak a"
+ " WHERE rrd.res_rsv_deel_tot >= " + ora_date1
+ " AND rrd.res_rsv_deel_van <= " + ora_date2
+ " AND rrd.res_deel_key = rd.res_deel_key"
+ " AND rrd.bez_bezoekers_key = b.bez_bezoekers_key"
+ " AND b.bez_afspraak_key = a.bez_afspraak_key"
+ " AND rrd.res_rsv_ruimte_key is null"
+ " AND rd.RES_DISCIPLINE_KEY="+sdisc
oRs = Oracle.Execute(sql);
while( !oRs.eof ) {
var res_d_key = oRs("RES_DEEL_KEY").Value;
if (! existing_res[res_d_key]) existing_res[res_d_key]=new Array();
existing_res[res_d_key].push(new h_seg(new Date(oRs("RES_RSV_DEEL_VAN").Value).getHours(),
new Date(oRs("RES_RSV_DEEL_VAN").Value).getMinutes(),
new Date(oRs("RES_RSV_DEEL_TOT").Value).getHours(),
new Date(oRs("RES_RSV_DEEL_TOT").Value).getMinutes(),
oRs("RES_RESERVERING_key").Value, oRs("RES_RSV_RUIMTE_KEY").Value,
oRs("res_status_fo_key").Value == "1",
oRs("res_status_fo_key").Value == "3",
oRs("res_status_fo_key").Value == "4",
oRs("res_rsv_deel_key").Value,
oRs("ALG_RUIMTE_KEY").Value,
(rsv_ruimte_key1 == oRs("res_rsv_ruimte_key").Value), // "oude" code - nog rekening houden
oRs("bez_bezoekers_key").Value,
oRs("res_status_bo_key").Value));
oRs.MoveNext(); // met "Blokkade"
existing_res[res_d_key].push({res_van : new Date(oRs("RES_RSV_DEEL_VAN").Value),
res_tot : new Date(oRs("RES_RSV_DEEL_TOT").Value),
rsv_ruimte_key : oRs("RES_RSV_RUIMTE_KEY").Value,
status_fo_key : oRs("res_status_fo_key").Value,
dirtlevel : oRs("res_rsv_deel_dirtlevel").Value,
rsv_deel_key : oRs("res_rsv_deel_key").Value,
alg_ruimte_key : oRs("ALG_RUIMTE_KEY").Value,
bez_key : oRs("bez_bezoekers_key").Value,
res_status : oRs("res_status_bo_key").Value
});
oRs.MoveNext();
}
oRs.close();
var onclick = "";
if (readwrite&&!params.jumped)
onclick = "onclick=obj_table_click(parseInt(window.event.offsetX)/"+params.hour_px+"+"+res_t1+",'"+urole+"')";
%>
<table id="table_dis<%=sdisc%>" class="tab_obj_sched" border="0" cellspacing="0" cellpadding="0"
<%=(readwrite&&!jumped?('onClick="doTClick('+(isEdit?'1':'')+')"'):'')%>>
<table id="table_dis<%=sdisc%>" class="tab_obj_sched planbord planbord<%=params.hour_px%>" cellspacing="0"
<%=onclick%>
>
<%//// Extra regel met losse cellen om afmetingen te forceren%>
<%
// Laat 20% over voor ruimteomschrijving e.d.
var t_w = (80 / res_intervals)+"%";
%>
<tr>
<td colspan=5></td>
<%
for (i=0; i<=res_intervals+2; i++) {
%> <td width="<%=t_w%>"></td><% // dezelfde breedte voor elke vakje
}
%>
<td><label><%=lcl_item%></label></td>
<% res.emit_planbord_tijdbalk(res_van, nr_days, hour_px); %>
</tr>
<tr><% EmitTimeHeader() %></tr>
<!-- <tr><td width="16"></td><td colspan="<% = res_intervals * 2 + 1 %>" height="1" bgcolor="#ffffff"></td><td width="13"></td></tr> -->
<%
<%
var showOnlyOddHours = ((res_t2 - res_t1) >= res_roomplan_skiplimit)
var mod_t1 = (res_t1 % (showOnlyOddHours?2:1)); // bepaal restwaarde
if (mod_t1 == 0) mod_t1 = (showOnlyOddHours?2:1); // als even dan restwaarde is 1 of 2
@@ -307,34 +233,33 @@ if(isNaN(rsv_ruimte_key1) || rsv_ruimte_key1 <= 0)
+ ", r.res_deel_opmerking"
+ ", d.ins_deel_omschrijving"
+ ", r.res_deel_prijs"
+ ", r.res_deel_eenheid"
+ ", r.res_deel_prijs_vast ";
+ ", r.res_deel_eenheid";
var group_by = " GROUP BY " + select_fields + " ORDER BY 3 "; // d.ins_deel_omschrijving: Don't use column alias with UNION ...
if (!isNaN(rsv_ruimte_key1) || (!isNaN(alg_ruimte_key))) {
if (params.rsv_ruimte_key>0) {
// Iterate through all reservable objects (vertically) and show schedule for them (horizontally)
var n=0,res_deel_key,free,res_key,rsv_ruimte_key;
%>
<!--#include file="../Res/res.inc"-->
<%
var sql1 = getReservedObjectTypes(alg_ruimte_key, rsv_ruimte_key1, select_fields, loc_key, sdisc, group_by);
var n=0,res_deel_key,free,rsv_ruimte_key;
var sql1 = getReservedObjectTypes(alg_ruimte_key, params.rsv_ruimte_key, select_fields, loc_key, sdisc, group_by);
} else {
// We hebben dus g<><67>n alg_ruimte_key <20>n g<><67>n res_rsv_ruimte_key
// Deze tak wordt o.a. gebruikt in het grote planbord als je onderin openklapt
// Scope is hierbij heel anders?
// Iterate through all reservable objects (vertically) and show schedule for them (horizontally)
// Er geldt: rsv_ruimte_key1 == NULL en alg_ruimte_key == NULL
var n=0, res_deel_key, free, res_key, rsv_ruimte_key;
// Er geldt: params.rsv_ruimte_key == NULL en alg_ruimte_key == NULL
var n=0, res_deel_key, free, rsv_ruimte_key;
var sql1 = "SELECT " + select_fields
+ " FROM ins_deel d, res_v_aanwezigdeel r "
+ " FROM ins_deel d,"
+ " res_v_aanwezigdeel r "
+ " WHERE r.res_discipline_key="+sdisc
+ " AND r.res_ins_deel_key=d.ins_deel_key"
+ ((loc_key > -1)
? " AND d.ins_alg_locatie_key=" + loc_key
: "")
+ " AND d.ins_alg_ruimte_type IN ('R','T')"
+ ((ALGreadlevel>-1)
+ ((authparams.ALGreadlevel>-1)
? " AND d.ins_alg_locatie_key IN "
+ " (SELECT alg_locatie_key "
+ " FROM fac_v_my_locations l, fac_v_webgebruiker gg "
@@ -342,42 +267,40 @@ if(isNaN(rsv_ruimte_key1) || rsv_ruimte_key1 <= 0)
+ " AND l.prs_perslid_key = gg.prs_perslid_key "
+ " AND niveau = gg.fac_gebruiker_alg_level_write "
+ " AND gg.ins_discipline_key=" + sdisc
+ " AND gg.fac_functie_key = " + autfunctionkey+")"
+ " AND gg.fac_functie_key = " + authparams.autfunctionkey+")"
: "")
+ " UNION "
+ " SELECT"
+ " r.res_deel_key"
+ ", r.res_deel_opmerking"
+ ", d.ins_deel_omschrijving"
+ ", r.res_deel_prijs"
+ ", r.res_deel_eenheid"
+ ", r.res_deel_prijs_vast"
+ " FROM ins_deel d, res_v_aanwezigdeel r "
+ " WHERE r.res_discipline_key="+sdisc
+ " AND r.res_ins_deel_key = d.ins_deel_key "
+ " AND d.ins_alg_ruimte_type = 'T' "
+ ((ALGreadlevel>-1)
+ " SELECT r.res_deel_key"
+ ", r.res_deel_opmerking"
+ ", d.ins_deel_omschrijving"
+ ", r.res_deel_prijs"
+ ", r.res_deel_eenheid"
+ " FROM ins_deel d, res_v_aanwezigdeel r "
+ " WHERE r.res_discipline_key="+sdisc
+ " AND r.res_ins_deel_key = d.ins_deel_key "
+ " AND d.ins_alg_ruimte_type = 'T' "
+ ((authparams.ALGreadlevel>-1)
? "AND d.ins_alg_locatie_key IN "
+ " (SELECT alg_locatie_key "
+ " FROM fac_v_my_locations l, fac_v_webgebruiker gg "
+ " WHERE l.prs_perslid_key = " + user_key
+ " AND l.prs_perslid_key = gg.prs_perslid_key "
+ " AND niveau = gg.fac_gebruiker_alg_level_write "
+ " and gg.ins_discipline_key = " + sdisc
+ " and gg.fac_functie_key = " + autfunctionkey+")"
+ " FROM fac_v_my_locations l, fac_v_webgebruiker gg "
+ " WHERE l.prs_perslid_key = " + user_key
+ " AND l.prs_perslid_key = gg.prs_perslid_key "
+ " AND niveau = gg.fac_gebruiker_alg_level_write "
+ " AND gg.ins_discipline_key = " + sdisc
+ " ADN gg.fac_functie_key = " + authparams.autfunctionkey+")"
: "")
+ group_by;
}
oRs = Oracle.Execute(sql1);
var cnt = 0;
var any_nofit = false;
while( !oRs.eof ) { // Doorloop reserveerbare delen binnen filter
res_deel_key = oRs("RES_DEEL_KEY").value;
str1 = escape2(oRs("INS_DEEL_OMSCHRIJVING").value);
str1 = replace( str1 , "\n" , "<br>" );
str9 = parseFloat(oRs("RES_DEEL_PRIJS").Value);
str10 = oRs("RES_DEEL_EENHEID").Value;
vast = oRs("RES_DEEL_PRIJS_VAST").Value;
ins_deel_omschrijving = escape2(oRs("INS_DEEL_OMSCHRIJVING").value);
ins_deel_omschrijving = replace( ins_deel_omschrijving , "\n" , "<br>" );
res_deel_prijs = oRs("RES_DEEL_PRIJS").Value;
res_deel_eenheid = oRs("RES_DEEL_EENHEID").Value;
var res_deel_opm = escape_js(oRs("RES_DEEL_OPMERKING").value);
var res_deel_opm2 = oRs("RES_DEEL_OPMERKING").value; //escape2(oRs("RES_DEEL_OPMERKING").value);
@@ -386,248 +309,166 @@ if(isNaN(rsv_ruimte_key1) || rsv_ruimte_key1 <= 0)
res_deel_opm2 = replace( res_deel_opm2 , "'" , "\\'" );
res_deel_opm2 = escape2(res_deel_opm2);
if (str10 == null) str10='';
else str10='/'+str10;
if (res_deel_eenheid == null) res_deel_eenheid='';
else res_deel_eenheid='/'+res_deel_eenheid;
res_dag_name = "Dag"; // values RES_DEEL.RES_DEEL_EENHEID
res_uur_name = "Uur"; // used for calculate price/minuut in obj_schedule.asp
if( !isNaN(str9) && str9 != 0)
if( res_deel_prijs && res_deel_prijs != 0)
{
str16 = currency_pref + num2curr(str9)+currency_suff+str10;
str16 = escape2(str16);
if(vast == 0)
{
if(oRs(10).Value == res_dag_name)
{
str9 = parseFloat(parseFloat(str9)/1440); // parseFloat(str9)/1440 prijs per minite
}
else if(oRs(10).Value == res_uur_name)
{
str9 = parseFloat(parseFloat(str9)/60); // parseFloat(str9)/60 prijs per minite
}
}
else
{
str16 = currency_pref + num2curr(str9)+currency_suff;
str16 = escape2(str16);
}
prijs_text = currency_pref + num2curr(res_deel_prijs)+currency_suff+res_deel_eenheid;
prijs_text = escape2(prijs_text);
}
else
{
str16 = '';
str9 = 0.0;
prijs_text = '';
res_deel_prijs = 0.0;
}
var ar = existing_res[res_deel_key]; // Bestaande reserveringen op dit deel
var v1 = "", v2 = "", v3 = "", v4 = "", v5 = "", v6 = 'style="visibility:hidden"', ro = " readonly ", st = false;
__Log("isEdit: " + res_deel_key)
var v1 = "", v2 = "", v3 = "", v4 = "", v5 = "", checked = '', ro = " readonly ", st = false;
//__Log("isEdit: " + res_deel_key)
if (isEdit) {
// check whether the current resource is reserved for the current reservation
for (ci=0; ar != null && ci<ar.length; ci++)
var is_selected = false;
var is_nofit = false; // zouden we hier passen?
if (res_deel_key==params.res_deel_key) // default keuze
{
if (ar[ci].cur_res == true) { // it is
v1 = "-1_" + ar[ci].rsv_deel_key;
v2 = ar[ci].h1 < 10 ? '0' + ar[ci].h1: ar[ci].h1;
v3 = ar[ci].h2 < 10 ? '0' + ar[ci].h2: ar[ci].h2;
v4 = ar[ci].m1 < 10 ? '0' + ar[ci].m1: ar[ci].m1;
v5 = ar[ci].m2 < 10 ? '0' + ar[ci].m2: ar[ci].m2;
v6 = 'style="visibility:visible"';
is_selected = true;
ro=false;
st = false;
};
for (ci=0; ar != null && ci<ar.length; ci++)
{
if (ar[ci].rsv_ruimte_key == params.rsv_ruimte_key)
{ // we zijn het zelf
is_selected = true;
ro = (ar[ci].res_status==6?" readonly ":"");
st = (ar[ci].res_status==6);
}
else
{
if (res_van < ar[ci].res_tot && res_tot > ar[ci].res_van)
is_nofit = true; // Overlap!
}
}
any_nofit |= is_nofit;
}
%>
<tr class=planbord id='tr_rdeel<%=res_deel_key%>'>
<td width="<%=pref*20%>"></td>
<td>
<div class="ref" id='a_<%=res_deel_key%>_img' style='display:block'
<% if (!st&&!jumped) { %>
onClick="javascript:rdeelChoosen('rdeel<%=res_deel_key%>',null,'<%=res_deel_key%>', '')"
<tr class="<%=is_selected?' selected':''%><%=is_nofit?' res_nofit':''%>" id='<%=res_deel_key%>'>
<td class='label'>
<% if (is_selected) { %>
<input name='has_<%=res_deel_key%>' type='hidden'>
<% } %>
<label OnMouseOver="$('#remark<%=res_deel_key%>').show();"
OnMouseOut="$('#remark<%=res_deel_key%>').hide();">
<input id='chk_<%=res_deel_key%>' name='chk_<%=res_deel_key%>'
type='checkbox' <%=is_selected?'checked':''%>
<% if (!st&&!params.jumped) { %>
onClick="javascript:res_deel_click('rdeel<%=res_deel_key%>','<%=res_deel_key%>')"
<% } %>>
<img src="../Pictures/tree_ok.gif" border="0" id="plus" align="middle" hspace="2" <%=v6%>>
<div class="ref" id='a_<%=res_deel_key%>' style='display:inline'>
<nobr><%=ins_deel_omschrijving + (isEdit ? '':(prijs_text?' ('+prijs_text+')':'')) %></nobr>
</div>
</td>
<td title="<%=res_deel_opm%>" onMouseOver="javascript:ShowObjectRemark('<%="<b>" + str1 + ":</b><br>" + res_deel_opm2%>')">
<div class="ref" id='a_<%=res_deel_key%>' style='display:block'
<% if (!st&&!jumped) { %>
onClick="javascript:rdeelChoosen('rdeel<%=res_deel_key%>',null,'<%=res_deel_key%>', '')"
<% } %>>
<nobr><%=str1 + (isEdit ? '':(str16?' ('+str16+')':'')) %></nobr>
<div class="res_remark" id="remark<%=res_deel_key%>">
<%="<b>" + ins_deel_omschrijving + ":</b><br>" + res_deel_opm2%>
</div>
</label>
</td>
<%
if (isEdit) { // Tijdstip edit velden toevoegen
%>
<td>
<input type=hidden id='inhedt_<%=res_deel_key%>' name='inhedt_<%=res_deel_key%>' value='<%=v1%>'>
<table border=0 cellpadding=0 cellspacing=0>
<tr>
<td class='selectable'><input type=text id='inpbh1_<%=res_deel_key%>' name='inpbh1_<%=res_deel_key%>' value='<%=v2%>' class='smallinputs' maxlength='2' size='1' <%=ro%> <%=st?"style='background-color: #dddddd;'":""%> onBlur="objTimeChanged(<%=res_deel_key%>, <%=res_duur%>, 'inpbh1_')"></td>
<td class='selectable'><input type=text id='inpbm1_<%=res_deel_key%>' name='inpbm1_<%=res_deel_key%>' value='<%=v4%>' class='smallinputs' maxlength='2' size='1' <%=ro%> <%=st?"style='background-color: #dddddd;'":""%> onBlur="objTimeChanged(<%=res_deel_key%>, <%=res_duur%>, 'inpbm1_')"></td>
<td class='selectable'>-</td>
<td class='selectable'><input type=text id='inpbh2_<%=res_deel_key%>' name='inpbh2_<%=res_deel_key%>' value='<%=v3%>' class='smallinputs' maxlength='2' size='1' <%=ro%> <%=st?"style='background-color: #dddddd;'":""%> onBlur="objTimeChanged(<%=res_deel_key%>, <%=res_duur%>, 'inpbh2_')"></td>
<td class='selectable'><input type=text id='inpbm2_<%=res_deel_key%>' name='inpbm2_<%=res_deel_key%>' value='<%=v5%>' class='smallinputs' maxlength='2' size='1' <%=ro%> <%=st?"style='background-color: #dddddd;'":""%> onBlur="objTimeChanged(<%=res_deel_key%>, <%=res_duur%>, 'inpbm2_')"></td>
</tr>
</table>
</td>
<%
}
%>
<td width='1'>&nbsp;</td>
<%
cnt++;
var cl = res_t1;
divver = { overleft: "", overright: "" };
var begin_res_intervals = 0;
var eind_res_intervals = 0;
if (cl < starttime_room) begin_res_intervals = (starttime_room - cl) / res_h;
if (res_t2 > endtime_room) eind_res_intervals = (res_t2 - endtime_room) / res_h;
for (i = 0; i < res_intervals; i++)
{
bez_key = -1;
for (dagen=0; dagen<nr_days; dagen++)
{
%>
<td class="plantd reserv">
<%
// Maak een dummy res_nieuw aan die we eenvoudig aan kunnen zetten
if (!is_selected || res_deel_key==params.res_deel_key)
{
var h_start = (res_van - res_van.midnight()) /1000/60/60 - 24*dagen;
var h_end = (res_tot - res_tot.midnight()) /1000/60/60 + 24*(nr_days-1-dagen);
var new_divver = mkDiv("gepland res_nieuw", h_start, h_end);
Response.Write("\n"+new_divver.div);
}
theSpan = "";
free = true; optie=false; blokkade=false; yellow = false;
for (ci=0; ar && ci<ar.length; ci++)
{
if( !( cl+res_h<=ar[ci].h_start || cl>=ar[ci].h_end ) )
{
free = false;
res_key = ar[ci].res_key;
var statClass = { 1 : "res_optie",
2 : "res_definitief",
3 : "res_blok",
4 : "res_vervallen"}[ar[ci].status_fo_key ];
if (ar[ci].rsv_ruimte_key == params.rsv_ruimte_key)
statClass += " res_current";
if (ar[ci].dirtlevel & (res.dirtlevel.deel.notavailable | res.dirtlevel.deel.notallowed))
statClass += " res_fatal";
theClass = statClass + " gepland";
if (ar[ci].dirtlevel & res.dirtlevel.ruimte.notavailable)
theClass += " res_fatal";
var h_start = (ar[ci].res_van - res_van.midnight()) /1000/60/60 - 24*dagen;
var h_end = (ar[ci].res_tot - res_tot.midnight()) /1000/60/60 + 24*(nr_days-1-dagen);
if (h_start>24 || h_end < 0)
continue;
rsv_ruimte_key = ar[ci].rsv_ruimte_key;
rsv_deel_key = ar[ci].rsv_deel_key;
alg_ruimte_key = isNaN(ar[ci].alg_ruimte_key) ? -1 :ar[ci].alg_ruimte_key;
bez_key = ar[ci].bez_key;
optie = ar[ci].optie;
blokkade = ar[ci].blokkade;
vervallen = ar[ci].vervallen;
// Over hoeveel blokjes spant deze reservering
var spanBlk = 1;
while( cl + res_h < ar[ci].h_end && cl + res_h < res_t2)
{
spanBlk ++;
cl += res_h;
i++;
}
if (spanBlk == 1)
theSpan = "";
var theClick = "";
var theMouse="";
if (bez_key > 0)
theMouse = " onMouseOver='setBezBezoekersTitle(this, "+bez_key+")'";
else
theMouse = " onMouseOver='setResRsvDeelTitle(this, "+rsv_deel_key+")'";
if (readwrite&&bez_key==-1&&!params.jumped)
{
theSpan = " colspan=" + spanBlk;
theClick = ' onClick="rsv_click(this,\''+urole+'\');"'
theClass += " click";
}
break;
}
}
cl += res_h;
var before_starttime = false;
if (free && (begin_res_intervals > i || eind_res_intervals >= res_intervals - i)) {
yellow = true;
free = false;
before_starttime = true;
}
th = Math.floor(res_t1 + res_h * i);
tm = Math.floor((res_t1 + res_h * i - th) * 60);
sTime = ''+th+":"+(tm<10?'0':'')+tm
var theBgcolor=(free?res_color_free:optie?res_color_optie:blokkade?res_color_blok:vervallen?res_color_verv:res_color_resv);
var theTitle, theRest;
theClick = "";
if (free) // MGE UWVA#12468: (free&&readwrite) readwrite voor tijd is niet nodig
{
theTitle = " title=" + sTime;
}
else if (before_starttime) {
theBgcolor = res_color_na;
theClick = " onClick=noCClick()";
theTitle = "";
}
else
{
if (bez_key > 0)
theTitle = " onMouseOver='setBezBezoekersTitle(this, "+bez_key+")'";
else
theTitle = " onMouseOver='setResRsvDeelTitle(this, "+rsv_deel_key+")'";
if (readwrite&&bez_key==-1&&!jumped)
theClick = ' onClick=doCClick('+res_key+','+rsv_ruimte_key+',true,'+(isEdit?'1':'0')+','
+rsv_deel_key+','+alg_ruimte_key+')';
else
if (readwrite&&!jumped)
theClick =" onClick=noCClick()"
}
if (free)
{
var stl;
if (!readwrite)
stl='freeNC';
else
if (((i+1+(mod_t1/res_h))%(1/res_h))==0) // (((i+1+(mod_t1/res_h))%(1/res_h))==0?"otherH":"other")
stl='freeH'; // Uurblokje heeft twee pixels
else
stl='free';
%> <td id="<%=i%>" class=<%=stl%> title=<%=sTime%> style="width:<%=t_w%>"></td>
<%
}
else
{
%>
<td class='<%=yellow && (((i+1+(mod_t1/res_h))%(1/res_h))==0)?"otherH":"other"%>' <%=theSpan%> id="<%=i%>"
<%= readwrite&&!jumped&&!yellow?'style="cursor:hand" ':'onClick="noCClick()"' %>
<%=' bgcolor='+theBgcolor + theTitle + theClick + ' style="width:' + t_w + '"'%>>
</td>
<%
if (readwrite&&!params.jumped)
theClick =" onClick=noCClick()"
divver = mkDiv(theClass, h_start, h_end, theClick, theMouse, " rsv_key='" + rsv_ruimte_key + "'");
Response.Write("\n"+divver.div);
}
}
%>
<td></td>
</tr>
<tr>
<td></td><td></td><td colspan="<% = res_intervals * 2 + 1 %>" height="1" bgcolor="#ffffff"></td><td></td>
</tr>
if (dagen<nr_days-1) { %>
<td class="between"><div class=" <%=divver.overright!=""?statClass:""%>">&nbsp;</div></td>
<% } else { %>
<td class="post <%=divver.overright%>"><div>&nbsp;</div></td>
<% } %>
<%
} // dagen
%> </tr>
<%
oRs.MoveNext();
n++;
} //end while
oRs.close();
%>
<tr><% EmitTimeHeader() %></tr>
<tr>
<td colspan="6"></td><td colspan="<% = res_intervals * 2 + 1 %>">
<table width="100%" border="0">
<tr>
<td align="right"><img src="../Pictures/room_free.gif"></td>
<td><% = lcl_free %></td>
<td align="right"><img src="../Pictures/room_opt.gif"></td>
<td><% = lcl_optie %></td>
<td align="right"><img src="../Pictures/room_def.gif"></td>
<td><% = lcl_def %></td>
</tr>
<tr>
<td align="right"><img src="../Pictures/room_blk.gif"></td>
<td><% = lcl_blokkade %></td>
<td align="right"><img src="../Pictures/room_vvl.gif"></td>
<td><% = lcl_vervallen %></td>
</tr>
</table>
</td>
<td></td>
<% res.emit_planbord_tijdbalk(res_van, nr_days, hour_px); %>
</tr>
</table>
</table>
<%
if (any_nofit)
%><span onclick="$('.res_nofit').css('display','block');$(this).toggle();$(this).next().toggle()">
TODO: Alleen beschikbare objecten getoond. Toon alles.
</span>
<span onclick="$('.res_nofit').css('display','none');$(this).toggle();;$(this).prev().toggle()" style='display:none'>
TODO: Alle objecten getoond. Toon alleen beschikbare.
</span><%
}
%>
</body>
</html>
<%
}//readwrite
} // function objSchedule()
%>

View File

@@ -1,7 +1,16 @@
<%@ language = "JavaScript" %>
<% /*
$Revision: 1 $
$Modtime: 29-09-09 16:31 $
$Revision: 2 $
$Modtime: 1-11-09 18:31 $
File: res_search.asp
Status: 80%
Parameters:
planbord: indien meegegeven (1) dan is het ALLEEN mogelijk planbords op te vragen
park: indien meegegeven (1) dan is het ALLEEN mogelijk parkeerplaatsen op te vragen
Dit betekent ook minder selectiemogelijkheden en iets aangepaste terminologie
Merk op dat secsearch velden dan bij gebrek aan More knop ook vanzelf onbereikbaar zijn
*/ %>
<!-- #include file="../../cust/install.inc" -->
<!-- #include file="../Shared/iface.inc" -->
@@ -11,10 +20,11 @@
<!-- #include file="../Shared/plaatsselector.inc" -->
<!-- #include file="../Shared/afdelingselector.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="./res.inc" -->
<%
FCLTHeader.Requires({ plugins: ["jQuery", "datepicker", "kenmerk"],
js: ["expand_frame.js", "../RES/res_search.js"]
js: ["../RES/res_search.js"]
});
/***** Get webform parameters *****/
@@ -27,16 +37,14 @@ var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
var res_key = getQParam("res_key", ""); // reserveringskey
var searchtext = getQParam("searchtext", "");
var planbord = getQParam("planbord", "-1");
//if (planbord != "-1")
// Response.Redirect("res_table.asp?"+Request.QueryString);
var planbord = getQParamInt("planbord", -1);
var show_park = getQParamInt("park", 0);
var cal_intv = 0; // 14 days from now is default date for calendar 2 @@todo setting (was dat niet al zo?)
// Bepaal einddatum
if (fronto && res_fo_list_days != -1)
{
sql = "SELECT mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(SYSDATE, " + res_fo_list_days + ",'DAGEN') - SYSDATE"
sql = "SELECT fac.DatumTijdPlusUitvoerTijd(SYSDATE, " + res_fo_list_days + ",'DAGEN') - SYSDATE"
+ " FROM dual";
oRs = Oracle.Execute(sql);
cal_intv = oRs(0).Value;
@@ -46,10 +54,11 @@ var datefrom = getQParam("date_from", "");
var dateto = getQParam("date_to", "");
var today = new Date ();
var nextday = new Date ();
// TODO: voor frontend en planbord dan date_to=date_from denk ik -PF
if (frontend || fronto)
nextday.setDate(nextday.getDate() + (fronto? cal_intv : res_user_history));
else
nexday = today;
nextday = today;
var date_from = (datefrom == ""? today : new Date(parseInt(datefrom, 10)));
var date_to = (dateto == ""? nextday : new Date(parseInt(dateto, 10)));
@@ -113,6 +122,17 @@ var authparams = user.checkAutorisation(autfunction);
<% FCLTHeader.Generate(); %>
<script type="text/javascript">
$(document).ready(function() {
return;
$(window).scroll(function () {
if (document.documentElement.clientWidth+document.documentElement.scrollLeft
==document.documentElement.scrollWidth)
alert("rechts")
else if (document.documentElement.scrollLeft==0)
alert("links")
});
});
<% if (fronto || frontend)
{ %>
function checkboxStatus()
@@ -122,12 +142,13 @@ var authparams = user.checkAutorisation(autfunction);
}
<% } %>
function doSubmit(mode) // 0=lijst, 1=planbord
var __mode = -1;
function doSubmit(mode) // 0=lijst, 1=planbord, 2=objplanbord
{
if (mode==0)
document.u2.action="res_search_list.asp";
else
document.u2.action="res_table.asp";
__mode = mode;
document.u2.action= {0:"res_search_list.asp?urole=<%=urole%>",
1:"res_table.asp?urole=<%=urole%>&width_px=" + $(window).width(),
2:"res_plan_obj.asp?urole=<%=urole%>&width_px=" + $(window).width()}[mode]
<% if (!frontend)
{ %>
@@ -146,7 +167,7 @@ var authparams = user.checkAutorisation(autfunction);
{
if ($('#act').val() == -1)
{
alert("<%=lcl_select_activity%>");
alert(LCL.res.select_activity);
return;
}
@@ -163,9 +184,10 @@ var authparams = user.checkAutorisation(autfunction);
<body id="searchbody">
<div id="search">
<% BLOCK_START("searchtable", lcl_filterblok);%>
<form name="u2" action="res_search_list.asp" target="workFrame" method="post">
<input type="hidden" name="urole" value="<%=urole%>">
<input type="hidden" name="park" value="<%=show_park%>">
<% BLOCK_START("searchtable", lcl_filterblok);%>
<tr>
<td class="searchkolom1"><!-- start column 1 -->
<table><!-- x rijen, 2 kolommen: label + veld -->
@@ -178,11 +200,13 @@ var authparams = user.checkAutorisation(autfunction);
<!-- Datum van -->
<tr class="primsearch">
<% FCLTcalendar("date_from",
{ label : lcl_period_from,
{ label : (frontend ? lcl_date :lcl_period_from),
datum: date_from,
volgnr: 1
}); %>
</tr>
<% if (!frontend)
{ %>
<!-- Datum tot -->
<tr class="primsearch">
<% FCLTcalendar("date_to",
@@ -191,22 +215,19 @@ var authparams = user.checkAutorisation(autfunction);
volgnr: 2
}); %>
</tr>
<% } // !frontend %>
<!-- Locatie, gebouw, verdieping en ruimte -->
<% if (!frontend)
{ %>
<tr class="secsearch">
<td colspan="2">
<% FCLTplaatsselector(authparams.ALGreadlevel, { locatiekey: loc_key,
gebouwkey: bld_key,
verdiepingkey: floor_key,
ruimtekey: room_key,
startlevel: 2, // locatie
eindlevel: 5, // ruimte
secsearch: 3, // gebouw en hoger
whenEmpty: lcl_search_generic // want filter
}); %>
</td>
</tr>
<% } %>
<% if (backo || minfo)
@@ -214,21 +235,13 @@ var authparams = user.checkAutorisation(autfunction);
<!-- Checkboxen ruimten, voorzieningen en verbruiksartikelen -->
<tr class="secsearch">
<td class="label"><label><%=lcl_show%>:</label></td>
<td align=left valign="top">
<td>
<input type="checkbox" class="fldroomcat" name="roomcat" id="roomcat" onClick="checkCheckboxes()" value="1" <%=roomcat? "checked" : ""%>>
<label for=roomcat><%=lcl_show_rooms%></label>
</td>
</tr>
<tr class="secsearch">
<td></td>
<td align=left valign="top">
<br>
<input type="checkbox" class="fldobjcat" name="objcat" id="objcat" onClick="checkCheckboxes()" value="1" <%=objcat? "checked" : ""%>>
<label for=objcat><%=lcl_reserved_object%></label>
</td>
</tr>
<tr class="secsearch">
<td></td>
<td align=left valign="top">
<br>
<input type="checkbox" class="fldartcat" name="artcat" id="artcat" onClick="checkCheckboxes()" value="1" <%=artcat? "checked" : ""%>>
<label for=artcat><%=lcl_reserved_cons%></label>
</td>
@@ -299,9 +312,9 @@ var authparams = user.checkAutorisation(autfunction);
</tr>
<% } // backo || minfo %>
</table>
</td><!-- end column 1 -->
<!-- end column 1 -->
</td>
<!-- Second column -->
<td class="searchkolom2"><!-- start column 2 -->
<table><!-- x rijen, 2 kolommen: label + veld -->
<tr class="primsearch">
@@ -362,12 +375,12 @@ var authparams = user.checkAutorisation(autfunction);
<td><input type="text" class="fldkp" name="kp" value="<%=kp%>"></input>
</tr>
<tr><td height="10"></td></tr>
<% } // minfo %>
<% } // minfo
if (!show_park) {
%>
<!-- Ruimte soort -->
<% if (backo || minfo)
{ %>
<tr class="secsearch">
<tr class="primsearch">
<% sql = "SELECT rd.ins_discipline_key dis_key"
+ ", rd.ins_discipline_omschrijving omschrijving"
+ " FROM res_v_aanwezigdiscipline rd"
@@ -388,6 +401,9 @@ var authparams = user.checkAutorisation(autfunction);
}); %>
</tr>
<% }
if (backo || minfo)
{ %>
<!-- Voorzieningen -->
<tr class="secsearch">
<% sql = "SELECT rd.ins_discipline_key dis_key"
@@ -437,9 +453,29 @@ var authparams = user.checkAutorisation(autfunction);
<tr class="secsearch">
<td class="label"><label for="art"><%=lcl_res_art%>:</label></td>
<td>
<div id="artdiv">
<% FCLTselector("artmulti",
"", // sql: lege selectbox die onload wordt geladen
<div id="selectartdiv">
<% var sql_aut = " SELECT rd.ins_discipline_key ins_discipline_key"
+ " FROM res_v_aanwezigdiscipline rd"
+ ", fac_v_webgebruiker fw"
+ ", fac_v_webfunctie fwf"
+ " WHERE rd.ins_discipline_min_level = 2"
+ " AND fw.ins_discipline_key = rd.ins_discipline_key"
+ " AND fw.fac_functie_key = fwf.fac_functie_key"
+ " AND fwf.fac_functie_code = '" + autfunction + "'"
+ " AND fw.prs_perslid_key = " + user_key;
sql = "SELECT DISTINCT a.res_artikel_key"
+ ", a.res_artikel_omschrijving"
+ ", a.res_artikel_eenheid"
+ " FROM res_v_aanwezigartikel a"
+ " WHERE a.res_discipline_key IN (" + sql_aut + ")"
+ (article_str.indexOf("-1") == -1
? " AND a.res_discipline_key IN (" + article_str + ")"
: "")
+ " ORDER BY res_artikel_omschrijving";
FCLTselector("artmulti",
sql, // sql: lege selectbox die onload wordt geladen
{ initKey: article_str,
multi: true,
emptyOption: lcl_all
@@ -447,14 +483,6 @@ var authparams = user.checkAutorisation(autfunction);
</div>
</td>
</tr>
<script type="text/javascript">
$(document).ready(function()
{
// Laad de artikelen
// Selecteer eventueel de initi<74>le artikelen die meegegeven kunnen worden
updateArt("<%=autfunction%>", "<%=article_str%>");
});
</script>
<!-- Artikel groep -->
<tr class="secsearch">
@@ -526,27 +554,28 @@ var authparams = user.checkAutorisation(autfunction);
</tr>
<% } // !fronto %>
</table>
<input type="submit" style="width:0px;height=0">
</td>
</tr>
</table>
</form>
<% BLOCK_END();%>
</form>
<div id="buttons">
<% BUTTONS_START();
CreateButton(lcl_search, "doSubmit(0);", 120);
if (!backo)
CreateButton(lcl_planboard, "doSubmit(1);", 120);
if (!frontend)
CreateButton(lcl_more, "iface_toggleSecondarySearchblock();", 100, "btnMoreLess");
if (!frontend)
{
CreateButton(lcl_obj_advanced, "javascript:myModal();", 100, 'bAdvanced'); // met actuele waarden van activiteit en vorig filter
}
BUTTONS_END(); %>
<%
var buttons = [];
if (planbord == -1) // niet alleen planbord
buttons.push ( {title: lcl_overview_list, action:"doSubmit(0)" } ); // Overzicht
if (!show_park) // PF: van mij mag backo ook best planbord zien?
buttons.push ( {title: lcl_planboard, action:"doSubmit(1)" } );
if (!backo)
buttons.push ( {title: show_park ? lcl_planboard : lcl_reserved_object, action:"doSubmit(2)" } );
if (!frontend && !show_park) {
buttons.push ( {title: LCL.shared.more, action:"iface_toggleSecondarySearchblock()", id : "btnMoreLess" } );
buttons.push ( {title: lcl_obj_advanced, action:"javascript:myModal()" } );
}
CreateButtons(buttons);
%>
</div>
</div> <!-- search -->
@@ -554,7 +583,7 @@ var authparams = user.checkAutorisation(autfunction);
<iframe width="100%" height="100%"
src="../Shared/empty.asp"
name="workFrame" id="workFrame"
onload='ExpandFrame("workFrame")'
onload='FcltMgr.iframeLoaded(this, __mode!=0)'
frameborder="0" scrolling="no">
</div>

View File

@@ -1,78 +1,57 @@
<%@ language = "JavaScript" %>
<% /*
$Revision: 1 $
$Modtime: 29-09-09 15:57 $
$Revision: 2 $
$Modtime: 1-11-09 19:39 $
Status: 20%
*/ %>
<% Response.Expires = 0;
HelpDisable = true;
%>
<!--#include file="../../cust/install.inc"-->
<!--#include file="../Shared/funcodes.inc"-->
<!--#include file="../Shared/escape.inc"-->
<!--#include file="../Shared/date_sql.inc"-->
<!--#include file="../Shared/InfoSupport.inc" -->
<!--#include file="../shared/datetime.inc"-->
<!--#include file="../shared/iface.inc"-->
<!-- #include file="room_schedule.inc" -->
<!-- #include file="obj_schedule.inc" -->
<!-- #include file="res.inc" -->
<%
FCLTHeader.Requires({plugins: ["jQuery"],
js : ["jquery-ui.js"]});
var l_exel = parseInt(Request.QueryString("exel"));
var l_print_table = parseInt(Request.QueryString("print_table"));
var frontend = Request.QueryString("frontend").Count>0;
var jumped = Request.QueryString("jumped").Count>0;
var filter = Request.QueryString("filter").Count>0;
var res_ruimte_key = getQParam("res_ruimte_key", null); // Filter specifieke vergaderzaal
var vis = parseInt( getQParam("vis", 0));
var vis = getQParamInt("vis", 0);
var restype = "R";
var open_dis = Request.QueryString("open_dis").Count>0?Request.QueryString("open_dis"):"";
if ( l_exel == 1) {
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader ("content-disposition", "inline; filename=dynamic.xls");
var urole = getQParam("urole");
var fronto = urole == "fo";
var backo = (urole == "bo");
var minfo = (urole == "mi");
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
var autfunction = "";
switch(urole)
{
case "fe": autfunction = "WEB_RESUSE";
break;
case "fo": autfunction = "WEB_RESFOF";
break;
case "bo": autfunction = "WEB_RESBOF";
break;
case "mi": autfunction = "WEB_RESBAC";
break;
}
var only_user_res = Request.QueryString("only_user_res").Count>0;
if (jumped) {
var fronto = Request.QueryString("fronto").Count>0;
var backo = Request.QueryString("backo").Count>0;
frontend = (!fronto && !backo); // als fronto of backo niet is meegegeven dan ben je automatisch frontend
if (frontend)
only_user_res = (1==1); // als frontend mag je alleen je eigen reserveringen wijzigen.
}
%>
<html>
<script type="text/javascript">
var only_user_res = <%=only_user_res?1:0%>;
</script>
<head>
<% FCLTHeader.Generate(); %>
<%
if (l_print_table == 1 || l_exel == 1) {
if (l_print_table == 1) {
%>
<LINK href="../Shared/cstyle-print.css" rel="stylesheet" type="text/css">
<%
}
}
%>
<script type="text/javascript" src="../LocalScripts/FcltMgr.js"></script>
<script type="text/javascript" src="../LocalScripts/sel_tables.js"></script>
</head>
<%
__Log("Loading res_table.asp");
autfunction = "WEB_RESFOF";
if (frontend) autfunction = "WEB_RESUSE";
var authparams = user.checkAutorisation(autfunction);
// FSN #932 : readwrite was true/false, now:
//
// readwrite 0 : no read and no write authorization
@@ -110,23 +89,112 @@ if( func_enabled[ "WEB_RESFOF"] || func_enabled[ "WEB_RESFO2"] || (func_enabled[
if (readwrite > 0) { // we need read authorization at least...
var date_from = getQParamDate("date_from", new Date());
var showall = getQParam("showall", "0")=="1";
year = Request.QueryString("yy").Count>0?parseInt(Request.QueryString("yy"),10):-1;
month = Request.QueryString("mm").Count>0?parseInt(Request.QueryString("mm"),10):-1;
date = Request.QueryString("dd").Count>0?parseInt(Request.QueryString("dd"),10):-1;
//dateoffset wordt voor deeplinking gebruikt!(?)
dateoffset = getQParamInt("dateoffset",0)*24*60*60*1000;
var date_from = getQParamDate("date_from", new Date((new Date).getTime() + dateoffset));
var date_from = getFParamDate("date_from", new Date((new Date).getTime() + dateoffset));
var date_to = getFParamDate("date_to", new Date(date_from.getTime() + dateoffset));
loc = getQParamInt("s_loc",getFParamInt("locatiekey", -1));
bld = getQParamInt("s_bld",-1);
host = getQParamInt("s_host",-1);
host = getQParamInt("shost_Key",-1);
requestor = getQParamInt("s_requestor",-1);
opstel = getQParamInt("s_opstel",-1);
ruimtecat = getQParamInt("s_ruimtecat",-1);
var ruimtecat = getFMultiParam("roomcatmulti", ""); // Ruimte soort catalogus
var width_px = parseInt( getQParamInt("width_px", 1024));
var nr_days = 1+(date_to.midnight() - date_from.midnight())/24/60/60/1000;
var nr_hours = nr_days*(res_t2-res_t1);
var targethour_px = (width_px-250)/nr_hours;
var hour_px = 48;
//if (targethour_px < 48) hour_px = 24;
//if (targethour_px < 24) hour_px = 16;
//if (targethour_px < 16) hour_px = 8;
//if (targethour_px < 8) hour_px = 4;
if ( l_exel == 1) {
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader ("content-disposition", "inline; filename=dynamic.xls");
}
var only_user_res = Request.QueryString("only_user_res").Count>0;
if (jumped) {
if (frontend)
only_user_res = (1==1); // als frontend mag je alleen je eigen reserveringen wijzigen.
}
%>
<html style='overflow:scroll'>
<script type="text/javascript">
var only_user_res = <%=only_user_res?1:0%>;
</script>
<head>
<% FCLTHeader.Generate(); %>
<style>
table.planbord div.sizer { width:<%=hour_px*(res_t2-res_t1)+1%>px;};
</style>
<%
if (l_print_table == 1 || l_exel == 1) {
if (l_print_table == 1) {
%>
<LINK href="../Shared/cstyle-print.css" rel="stylesheet" type="text/css">
<%
}
}
%>
<script>
$(document).ready(function () {
//$('div.gepland').draggable({ containment: '#tab_room_sched', scroll: false, xaxis: 'x' });
$('div.gepland').resizable(
{ containment: '#tab_room_sched', grid: [12, 12], handles: 'e, w',
// Start en stop corrigeren omdat resizable niet goed lijkt om te gaan met onze
// absoluut gepositioneerde objecten?
start: function (event, ui) {
ui.originalElement.xxxx=
$(ui.originalElement).css('left');
},
stop: function (event, ui) {
var elm = ui.originalElement;
elm.css('left', elm.xxxx);
if (window.event) window.event.cancelBubble = true;
var start = (parseInt(elm.css('left'))+
parseInt(elm.css('borderLeftWidth')))/<%=hour_px%>;
var duur = (elm.width()-1)/<%=hour_px%>;
start += <%=res_t1%>;
$.post("res_update.asp",
{ rsv_ruimte_key: elm[0].rsv_key,
rsv_van: start,
rsv_tot: (start+duur)
},
FcltCallback,
"json");
}
});
if (0) $('div.gepland').each(function (i) {
this.innerHTML = this.title;
//this.style.height = 48;
this.style.color = 'white';
this.style.paddingLeft = '2px';
//this.parentElement.parentElement.style.height = 48;
});
FcltMgr.setHeaderExtraTitle($("#palette").html());
});
function res_print()
{
//$("table.planbord div.res_cleaning").after("bccc");
window.print(); // TODO
}
</script>
</head>
<%
if (l_print_table==1) {
@@ -139,35 +207,33 @@ if( func_enabled[ "WEB_RESFOF"] || func_enabled[ "WEB_RESFO2"] || (func_enabled[
if(l_exel==1) {
readwrite=0;
%>
<body bgcolor="white">
<body>
<% } else { %>
<body
onLoad="window.document.body.style.cursor='auto';
if(parent.window) parent.window.document.body.style.cursor='auto';
//FcltMgr.eventLoaded();
">
<table width="100%" border="0" cellpadding="0" cellspacing="1">
<br>
<body id="editbody">
<%
var buttons = [ { icon: "print.png", title: lcl_print_table, action: 'res_print()' },
{ icon: "excel.png", title: lcl_export_to_excel, action: 'doOutput(2)' }
];
IFRAMER_HEADER(lcl_res_frame_voorziening, buttons);
%>
<span id="palette" class="buttoncontainer" style="display:none">
<% CreateButtons([{ icon: "palette.png", title: lcl_res_legenda, action: 'openLegenda()' }], {isDialog: true}) %>
</span>
<div id="list">
<%
}
%>
<script type="text/javascript">
window.document.body.style.cursor='wait';
if(parent.window)parent.window.document.body.style.cursor='wait';
</script>
<% CreateRoomScheduleMulti({id:"tab_room_sched", date1: date_from,date2:date_from,readwrite:readwrite,
CreateRoomScheduleMulti({id:"tab_room_sched",
res_van: date_from,
res_tot:date_to,
readwrite:readwrite,
loc:loc, bld:bld, opstel:opstel, ruimtecat:ruimtecat,
res_ruimte_key: res_ruimte_key, vis: vis, autfunction:autfunction,
showall: showall}); %>
<% } else { %>
showall: showall, host: host,
hour_px: hour_px });
} else { %>
<body>
<p><%=lcl_no_auth%></p>
<% } %>
</table>
</div>
</body>
</html>