NYBU#55433 Arrangementen bij reserveringen realiseren

svn path=/Website/trunk/; revision=40210
This commit is contained in:
Alex Tiehuis
2018-12-13 09:22:19 +00:00
parent db4e48bc7b
commit 855156a2ba
3 changed files with 198 additions and 3 deletions

View File

@@ -113,6 +113,8 @@ var api2_mapper = {
"relationtypes" : { "filename": "appl/mgt/prs_relatietype.asp" },
"employeefunctions" : { "filename": "appl/mgt/prs_srtperslid.asp" },
"basispacelists" : { "filename": "appl/mgt/prs_staffel.asp" },
"packages" : { "filename": "appl/mgt/res_arrangement.asp" },
"packageitems" : { "filename": "appl/mgt/res_arrangement_artikel.asp" },
"bookingactivities" : { "filename": "appl/mgt/res_activiteit.asp" },
"bookingconsumables" : { "filename": "appl/mgt/res_artikel.asp" },
"bookingcycles" : { "filename": "appl/mgt/res_cyclus.asp" },

View File

@@ -39,7 +39,14 @@ scaffolding(this_model,
"generalcosts",
"sequence",
"expirationdate"
]
],
"actions":
[
{ action: "scf_multiarrangement", caption: L("lcl_multi_arrangement"), multi: true, onlyMulti: true, multiOnce: true }
],
"requires": {
js: ["./res_artikel.js"]
}
},
"show": {
"buttons": [
@@ -52,4 +59,8 @@ scaffolding(this_model,
]
}
});
function scaffolding_arrangement(model, scf_params) {
}
%>

View File

@@ -35,6 +35,45 @@ 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"
@@ -189,6 +228,7 @@ var new_item_key = 0; // Globaal
$("[id^='inpbh1_c_']",$clone).focus(); // Zet cursor in urenveld.
FcltMgr.resized();
return $clone;
}
function showTotPriceArt_ex(elm)
@@ -198,6 +238,7 @@ var new_item_key = 0; // Globaal
var res_rsv = inpb_c.substr(7);
showTotPriceArt(res_rsv);
}
</script>
</head>
@@ -276,7 +317,7 @@ var new_item_key = 0; // Globaal
{
if (first)
{
BLOCK_START("resObj",L("lcl_res_objects") + " <a href='javascript:openLegenda()'><span class='fa fa-list-ul details' title='"+L("lcl_res_legenda")+"'></span></a>", { ishtmlsafe: true });
BLOCK_START("resObj",L("lcl_res_objects") + " <a href='javascript:openLegenda()'><i class='fa fa-list-ul details' title='"+L("lcl_res_legenda")+"'></i></a>" + " <a href='javascript:selectArrangement()'><i class='fa fa-download' title='"+L("res_arrangement")+"'></i></a>", { ishtmlsafe: true });
%>
<tr>
<td>
@@ -361,6 +402,115 @@ 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
@@ -477,7 +627,7 @@ 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)
if (existing || arrangement_key > 0)
make_cat(curr_disc_key, rsv_ruimte_key, true, res_artikel_key);
else
Response.Write(loading_txt)
@@ -492,6 +642,38 @@ var new_item_key = 0; // Globaal
} // 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();
%>
</form>