NYBU#55433 Arrangementen bij reserveringen realiseren

svn path=/Website/trunk/; revision=40231
This commit is contained in:
Alex Tiehuis
2018-12-13 16:07:34 +00:00
parent c67ac6b2b1
commit da30bcc734

View File

@@ -36,44 +36,6 @@ res.res_set_dialect(rsv_ruimte_key);
var res_deel_key = getQParamInt("res_deel_key", -1); // Default
var disc_key = getQParamInt("disc_key", -1); // Auto openklappen
// get arrangement items
var arrangement_aantal = getQParamInt("aantal", 0);
var arrangement_key = getQParamInt("arrangement", -1);
%><script>
var arrangement_aantal = <%=arrangement_aantal%>;
var arrangement_key = <%=arrangement_key%>;
var uren = '<%=getQParam("tijd", "12:00").split(":")[0]%>';
var minuten = '<%=getQParam("tijd", "12:00").split(":")[1]%>';
var items = {};
<%
if (arrangement_key > 0)
{ // initial get of all arrangements and items
var oRs = Oracle.Execute(
"SELECT res_arrangement_key, res_artikel_key "+
"FROM res_arrangement_artikel "+
"ORDER BY res_arrangement_key, res_artikel_key"
);
var items={};
while (!oRs.eof)
{
if (!items[oRs("res_arrangement_key").Value])
{
items[oRs("res_arrangement_key").Value] = [oRs("res_artikel_key").Value];
%> items[<%=oRs("res_arrangement_key").Value%>] = [<%=oRs("res_artikel_key").Value%>]; <%
}
else
{
items[oRs("res_arrangement_key").Value].push(oRs("res_artikel_key").Value);
%> items[<%=oRs("res_arrangement_key").Value%>].push(<%=oRs("res_artikel_key").Value%>); <%
}
oRs.MoveNext();
}
oRs.close();
}
%>
</script>
<%
if (res_deel_key > 0)
{
sql = "SELECT res_discipline_key"
@@ -239,6 +201,47 @@ var new_item_key = 0; // Globaal
showTotPriceArt(res_rsv);
}
// add arrangement items
function extractLastTwo(item) {
return ("00").concat(item).substr(item.length, item.length+2);
}
function addArrangementItems(json) {
var itemAmt, itemRow, catLine, catLink, catSign;
var arrangement_key = json.arrangement_key;
var arrangement_aantal = json.arrangement_aantal;
var uren = json.uren;
var minuten = json.minuten;
items[arrangement_key].forEach(function(item) {
if ((itemRow = $("#row"+item)).length) { // when item is available in the list
catLine = itemRow.closest("div.objcatline");
catLink = $("a", catLine);
catSign = $("i", catLink);
catSign.removeClass("fa-plus-square-o").addClass("fa-plus-minus-o");
catLine.removeClass("closed").addClass("existing");
itemRow.removeClass("notexisting").addClass("existing");
itemAmt = $("input.fld_catamount", itemRow);
if (itemAmt.val() == 0) {
$("input.fld_catamount", itemRow).val(arrangement_aantal);
itemAmt.blur();
}
else
{
itemRow = res_addcat(itemAmt);
$("input.fld_catamount", itemRow).val(arrangement_aantal);
}
$("[id^='inpbh1_c_']", itemRow).val(extractLastTwo(uren));
$("[id^='inpbm1_c_']", itemRow).val(extractLastTwo(minuten));
}
});
}
function selectArrangement()
{
var subject = L("lcl_select_package");
var url = "../res/res_select_arrangement.asp?tijd=<%=res_van.getHours()%>:<%=res_van.getHours()%>";
FcltMgr.openModalDetail(url, subject, {callback: addArrangementItems});
}
</script>
</head>
@@ -402,115 +405,6 @@ var new_item_key = 0; // Globaal
</table>
</div>
<script>
function selectArrangement()
{
params = { width: "auto",
height: "auto",
resizable: true,
position: { my: "center", at: "top+200px", of: window },
title: '<%=L("lcl_select_package")%>'
};
$('#arrangement').val(-1);
$("div.readonly.opmerkingen").html("");
uren = '<%=res_van.getHours()%>';
minuten = '<%=res_van.getMinutes()%>';
$('#uren').val(extractLastTwo(uren));
$('#minuten').val(extractLastTwo(minuten));
$('div#modalArrangement').dialog(params).dialog('open');
iface.button.enable(document.getElementById('btn_select_submit'))
FcltMgr.resized();
}
function extractLastTwo(item) {
return ("00").concat(item).substr(item.length, item.length+2);
}
function res_arr_submit()
{ // Invoer van velden wordt realtime gevalideerd.
uren = extractLastTwo($("#uren").val());
minuten = extractLastTwo($("#minuten").val());
if (arrangement_key > 0)
{
arrangement_key = $("#arrangement").val();
arrangement_aantal = $("#aantal").val();
addArrangementItems();
$("div#modalArrangement").dialog('close');
}
else
{
var url=
window.location.href
+"&arrangement="+$("#arrangement").val() // attach "arrangement=" parm
+"&aantal="+$("#aantal").val() // attach "aantal=" parm
+"&tijd="+uren+":"+minuten; // attach "tijd=" parm in format 99:99
window.location.href = url;
return true; // disable button
}
}
function res_arr_cancel()
{
$("div#modalArrangement").dialog('close');
}
$(function()
{
$("#arrangement").on("change", function(e) {
$("div.readonly.opmerkingen").html($("option:selected").attr("title"));
});
});
</script>
<div id="modalArrangement" style="display:none; line-height: 30px;">
<% BLOCK_START("arrgArtikelen", L("res_arrangement")); %>
<tr>
<td class="label"><label class="selector" for="arrangement"><%=L("res_arrangement")%>:</label></td>
<td>
<%
// select arrangements
var oRs = Oracle.Execute(
"SELECT res_arrangement_key, res_arrangement_omschrijving, res_arrangement_opmerking "+
"FROM res_arrangement"
);
%> <select class="fldarrangement" name="arrangement" id="arrangement">
<option value="-1" class=" required">&nbsp;</option>
<%
while (!oRs.eof)
{
%> <option data-rel="popup" data-transition="pop" value=<%=oRs("res_arrangement_key").Value%> id=<%=oRs("res_arrangement_key").Value%> title="<%=safe.html(oRs("res_arrangement_opmerking").Value)%>">
<%=oRs("res_arrangement_omschrijving").Value%>
</option>
<% oRs.MoveNext();
}
oRs.close();
%> </select>
</td>
</tr>
<% ROTEXTAREATR("opmerkingen", L("res_arrangement_opmerking"), "");
RWFIELDTR("aantal", "fldaantal", L("lcl_count"), 1, {datatype: "integer"});
%> <tr>
<td><%=L("lcl_time")%></td>
<td><input type='number' id='uren'
class='fld_cattime'
name='uren'
value='<%=res_van.getHours()%>'
maxlength='2' size='2'>
&nbsp;
<input type='number' id='minuten'
class='fld_cattime'
name='minuten'
value='<%=res_van.getMinutes()%>'
maxlength='2' size='2'>
</td>
</tr>
<% BLOCK_END();
var buttons = [];
buttons.push({title: L("lcl_select"), action:"res_arr_submit()", singlepress: true, id: "btn_select_submit"});
buttons.push({title: L("lcl_cancel"), action:"res_arr_cancel()"});
CreateButtons(buttons);
%> <div data-role="popup" id="selectremark" class="ui-content" data-theme="a" style="max-width:350px; display: none;">
<20><><p>Here is a <strong>tiny popup</strong> being used like a tooltip. The text will wrap to multiple lines as needed.</p>
</div>
</div
<% // ==========================================================================
// Description: Bouwen van het catering edit blok voor een reservering
@@ -526,6 +420,18 @@ var new_item_key = 0; // Globaal
// Bepaal de catalogie waar wij rechten op hebben en die mogelijk zijn in 'onze' ruimte
fixed_room = (portal_alg_ruimte_key > 0);
sql = "SELECT DISTINCT ra.res_discipline_key "
+ "FROM res_arrangement_artikel aa, res_artikel ra "
+ "WHERE aa.res_artikel_key = ra.res_artikel_key "
oRs = Oracle.Execute(sql);
var arrangementDiscs = [];
while (!oRs.eof) {
arrangementDiscs.push(oRs("res_discipline_key").Value);
oRs.MoveNext();
}
oRs.close();
var sql_fo_catering_scope = "";
if (!(S("res_fo_catering_scopeless") && (backo || fronto)))
{
@@ -555,6 +461,7 @@ var new_item_key = 0; // Globaal
sql = "SELECT d.ins_discipline_key"
+ " , "+ lcl.xsqla('d.ins_discipline_omschrijving','d.ins_discipline_key')
+ " , d.ins_discipline_kpnverplicht"
+ " , CASE WHEN d.ins_discipline_key IN ("+arrangementDiscs.join(",")+") THEN 1 ELSE 0 END inArrangement"
+ " FROM RES_v_aanwezigDISCIPLINE d"
+ " WHERE ins_discipline_min_level = 2"
+ " AND d.ins_discipline_key IN"
@@ -577,6 +484,7 @@ var new_item_key = 0; // Globaal
+ " ORDER BY ins_discipline_volgnr, 2";
oRs = Oracle.Execute(sql);
var discArr = [];
while (!oRs.eof)
{
var curr_disc_key = oRs("ins_discipline_key").value;
@@ -627,8 +535,11 @@ var new_item_key = 0; // Globaal
<% }%>
<div class="objcatdiv" id="div_dis<%=curr_disc_key%>" onClick="FcltMgr.stopPropagation(event)">
<% // Hier wordt met Ajax res_load_cat.asp code tussen geplakt bij openklappen
if (existing || arrangement_key > 0)
make_cat(curr_disc_key, rsv_ruimte_key, true, res_artikel_key);
if (existing || oRs("inArrangement").Value == 1)
{
make_cat(curr_disc_key, rsv_ruimte_key, true, res_artikel_key);
discArr.push(curr_disc_key);
}
else
Response.Write(loading_txt)
%>
@@ -640,41 +551,42 @@ var new_item_key = 0; // Globaal
}
oRs.Close();
// get arrangement items
var items={};
%>
<script>
var items = {};
<%
// initial get of all allowed arrangements and items
var sql = "SELECT aa.res_arrangement_key, aa.res_artikel_key "
+ "FROM res_arrangement_artikel aa, res_artikel ra "
+ "WHERE aa.res_artikel_key = ra.res_artikel_key "
+ " AND ra.res_discipline_key IN (" + discArr.join(",") + ")"
+ "ORDER BY res_arrangement_key, res_artikel_key";
var oRs_arr = Oracle.Execute(sql);
while (!oRs_arr.eof)
{
if (!items[oRs_arr("res_arrangement_key").Value])
{
items[oRs_arr("res_arrangement_key").Value] = [oRs_arr("res_artikel_key").Value];
%> items[<%=oRs_arr("res_arrangement_key").Value%>] = [<%=oRs_arr("res_artikel_key").Value%>]; <%
}
else
{
items[oRs_arr("res_arrangement_key").Value].push(oRs_arr("res_artikel_key").Value);
%> items[<%=oRs_arr("res_arrangement_key").Value%>].push(<%=oRs_arr("res_artikel_key").Value%>); <%
}
oRs_arr.MoveNext();
}
oRs_arr.close();
%>
</script>
<%
} // einde: Toon catering
BLOCK_END();
%>
<script>
// add arrangement items
function addArrangementItems() {
var itemAmt, itemRow, catLine, catLink, catSign;
items[arrangement_key].forEach(function(item) {
if ((itemRow = $("#row"+item)).length) { // when item is available in the list
catLine = itemRow.closest("div.objcatline");
catLink = $("a", catLine);
catSign = $("i", catLink);
catSign.removeClass("fa-plus-square-o").addClass("fa-plus-minus-o");
catLine.removeClass("closed").addClass("existing");
itemRow.removeClass("notexisting").addClass("existing");
itemAmt = $("input.fld_catamount", itemRow);
if (itemAmt.val() == 0) {
$("input.fld_catamount", itemRow).val(arrangement_aantal);
itemAmt.blur();
}
else
{
itemRow = res_addcat(itemAmt);
$("input.fld_catamount", itemRow).val(arrangement_aantal);
}
$("[id^='inpbh1_c_']", itemRow).val(uren);
$("[id^='inpbm1_c_']", itemRow).val(minuten);
}
});
}
if (arrangement_key > 0) { addArrangementItems(); }
</script>
<%
IFACE.FORM_END();
IFACE.FORM_END();
%>
</form>
</div>