HSLE#55169 Reservering incl deelreservering kopiëren
svn path=/Website/trunk/; revision=40286
This commit is contained in:
@@ -43,6 +43,20 @@ user.auth_required_or_abort(this_res.couldCreate);
|
||||
<head>
|
||||
<% FCLTHeader.Generate() %>
|
||||
<%
|
||||
// Is dit een reservering met meerder deelreserveringen in een korte periode
|
||||
// (opbouw, evenement, opruimen) ?
|
||||
var sql_ev = "SELECT MAX((res_rsv_ruimte_tot)) - MIN((res_rsv_ruimte_van)) tijdspad"
|
||||
+ " FROM res_rsv_ruimte"
|
||||
+ " WHERE res_reservering_key = "
|
||||
+ "(SELECT res_reservering_key"
|
||||
+ " FROM res_rsv_ruimte"
|
||||
+ " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key
|
||||
+ ")";
|
||||
var oRs_ev = Oracle.Execute(sql_ev);
|
||||
var zelfdedag = (oRs_ev("tijdspad").Value < S("res_copy_all_time_frame"));
|
||||
oRs_ev.Close();
|
||||
|
||||
|
||||
// =========================================
|
||||
// Eerst wat info ophalen
|
||||
sql = "SELECT rr.res_reservering_key"
|
||||
@@ -128,6 +142,23 @@ user.auth_required_or_abort(this_res.couldCreate);
|
||||
<% Response.End;
|
||||
} %>
|
||||
|
||||
function withdeelrestoggle()
|
||||
{
|
||||
$("#show_date_from0").closest("td").prev().children().text( ($("#withdeelres").prop("checked") ? L("lcl_date") : L("lcl_res_repeat2")) );
|
||||
|
||||
$("#resmakedates").toggle();
|
||||
$("#isnewres").closest("tr").toggle();
|
||||
$("#sel_cycle").closest("tr").toggle();
|
||||
$("#date_to0").closest("tr").toggle();
|
||||
$("#n_periods").closest("tr").toggle();
|
||||
$("#withWeekends").closest("tr").toggle();
|
||||
$("#show_date_from").closest("tr").prev().toggle(); // de buttons "Tonen datums" en "Wissen datums"
|
||||
$("#show_date_from").toggle(); // de kalenders onderin.
|
||||
|
||||
FcltMgr.resized();
|
||||
|
||||
}
|
||||
|
||||
function EraseDates()
|
||||
{
|
||||
window.dates = [];
|
||||
@@ -398,6 +429,12 @@ user.auth_required_or_abort(this_res.couldCreate);
|
||||
{
|
||||
if (!dates.length)
|
||||
{
|
||||
if ($("#withdeelres").prop("checked"))
|
||||
{
|
||||
$("#n_periods").val(1); // Zet aantal perioden 1 voor kopieren reservering met alle deelreserveringen
|
||||
$("#isnewres").prop("checked", true); // en buiten reeks (dus nieuw reserveringsnummer).
|
||||
}
|
||||
|
||||
fillDates(true, true); // Na het vullen van de datums wordt er opnieuw een submit gedaan. Daardoor is een alert melding niet meer nodig.
|
||||
return false;
|
||||
}
|
||||
@@ -493,6 +530,9 @@ user.auth_required_or_abort(this_res.couldCreate);
|
||||
<tr><td colspan="2"><div id="resmakedates"><%=L("lcl_res_makedates")%></div></td></tr>
|
||||
|
||||
<%
|
||||
if (zelfdedag)
|
||||
RWCHECKBOXTR("withdeelres", "fldcheck", "Gehele reservering kopieren", false, {html: "onclick='withdeelrestoggle()'"});
|
||||
|
||||
RWCHECKBOXTR("isnewres", "fldcheck", L("lcl_res_copy_deelres"), false, {});
|
||||
//======= FIELD 'Periode' =======
|
||||
sql = "SELECT c.res_cyclus_periode"
|
||||
|
||||
@@ -26,6 +26,7 @@ protectRequest.validateToken();
|
||||
var urole = getQParamSafe("urole");
|
||||
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key");
|
||||
var isnewres = (getFParamInt("has_isnewres", 0) == 1 ? getFParam("isnewres", "") == "on" : false); // De 'kopieer buiten reeks' functie
|
||||
var isallres = (getFParamInt("has_withdeelres", 0) == 1 ? getFParam("withdeelres", "") == "on" : false); // De 'kopieer ook alle deelreserveringen' functie
|
||||
res.res_set_dialect(rsv_ruimte_key);
|
||||
|
||||
var this_res = res.func_enabled(rsv_ruimte_key); // wat mocht ik zoal op deze reservering
|
||||
@@ -35,6 +36,7 @@ user.auth_required_or_abort(this_res.couldCreate);
|
||||
sql = "SELECT rr.res_reservering_key"
|
||||
+ " , rr.res_reservering_ispool"
|
||||
+ " , r.res_ruimte_vervaldatum"
|
||||
+ " , TRUNC(rrr.res_rsv_ruimte_van) rsv_ruimte_datum"
|
||||
+ " FROM res_reservering rr"
|
||||
+ " , res_rsv_ruimte rrr"
|
||||
+ " , res_ruimte_opstelling ro"
|
||||
@@ -46,6 +48,7 @@ sql = "SELECT rr.res_reservering_key"
|
||||
oRs = Oracle.Execute(sql);
|
||||
var reservering_key = oRs("res_reservering_key").Value;
|
||||
var ispool = (oRs("res_reservering_ispool").Value) == 1;
|
||||
var rsv_ruimte_datum = new Date(oRs("rsv_ruimte_datum").Value);
|
||||
var ruimte_vervaldatum = oRs("res_ruimte_vervaldatum").Value;
|
||||
if (ruimte_vervaldatum != null)
|
||||
ruimte_vervaldatum = new Date(ruimte_vervaldatum);
|
||||
@@ -85,36 +88,98 @@ var last_volg = oRs("last_volg").Value;
|
||||
oRs.Close();
|
||||
|
||||
var form_dates = Request.Form("newDates");
|
||||
var sql = "DECLARE"
|
||||
+ " new_key NUMBER;"
|
||||
+ "\nBEGIN"
|
||||
for (var i = 1; i <= form_dates.Count; i++)
|
||||
|
||||
if (isallres)
|
||||
{
|
||||
var datum = new Date(parseInt(form_dates(i),10));
|
||||
if (ruimte_vervaldatum != null && ruimte_vervaldatum < datum)
|
||||
// reservering_key: oude reservering key
|
||||
// newres_key: nieuwe reservering key
|
||||
// rsv_ruimte_datum: datum van te kopieren ruimtereservering
|
||||
var new_date = getFParamDate("date_from0", null);
|
||||
|
||||
var time_between = new_date - rsv_ruimte_datum;
|
||||
|
||||
var sql_ins = "DECLARE"
|
||||
+ " new_key NUMBER;"
|
||||
+ "\nBEGIN"
|
||||
|
||||
var sql = "SELECT rrr.res_rsv_ruimte_key"
|
||||
+ " , rrr.res_rsv_ruimte_van"
|
||||
+ " , rrr.res_rsv_ruimte_volgnr"
|
||||
+ " , r.res_ruimte_vervaldatum"
|
||||
+ " FROM res_rsv_ruimte rrr"
|
||||
+ " , res_ruimte r"
|
||||
+ " , res_ruimte_opstelling ro"
|
||||
+ " WHERE rrr.res_reservering_key = " + reservering_key
|
||||
+ " AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key(+)"
|
||||
+ " AND ro.res_ruimte_key = r.res_ruimte_key(+)"
|
||||
+ " ORDER BY rrr.res_rsv_ruimte_volgnr";
|
||||
var oRs = Oracle.Execute(sql);
|
||||
while (!oRs.eof)
|
||||
{
|
||||
abort_with_warning(L("lcl_res_room_expired").format(toDateString(ruimte_vervaldatum)));
|
||||
}
|
||||
if (ispool) // Hele reservering
|
||||
{
|
||||
sql += "\n new_key := res.res_copy_res(" + reservering_key + "," + datum.toSQL() + "," + user_key + ");";
|
||||
}
|
||||
else // Gewone
|
||||
{
|
||||
sql += "\n new_key := res.res_copy_deelres(" + rsv_ruimte_key + "," + datum.toSQL() + "," + user_key + (isnewres?",0,"+newres_key+","+i:"") + ");";
|
||||
var rsv_key = oRs("res_rsv_ruimte_key").Value;
|
||||
var rsv_volgnr = oRs("res_rsv_ruimte_volgnr").Value;
|
||||
var rsv_datum = new Date(oRs("res_rsv_ruimte_van").Value + time_between);
|
||||
|
||||
var ruimte_vervaldatum = oRs("res_ruimte_vervaldatum").Value;
|
||||
if (ruimte_vervaldatum != null)
|
||||
ruimte_vervaldatum = new Date(ruimte_vervaldatum);
|
||||
|
||||
if (ruimte_vervaldatum != null && ruimte_vervaldatum < rsv_datum)
|
||||
{
|
||||
abort_with_warning(L("lcl_res_room_expired").format(toDateString(ruimte_vervaldatum)));
|
||||
}
|
||||
//
|
||||
sql_ins += "\n new_key := res.res_copy_deelres(" + rsv_key + "," + rsv_datum.toSQL() + "," + user_key + ",0," + newres_key + "," + rsv_volgnr + ");";
|
||||
if (S("res_fe_allow_dirty") != 1 && urole == 'fe')
|
||||
{
|
||||
sql += " IF res.dirty_level_all(new_key) <> 0 THEN"
|
||||
+ " raise_application_error (-20000, 'res_m960 " + toDateString(datum) + ": " + L("lcl_res_fe_no_dirty") + "');"
|
||||
+ " END IF;"
|
||||
sql_ins += " IF res.dirty_level_all(new_key) <> 0 THEN"
|
||||
+ " raise_application_error (-20000, 'res_m960 " + toDateString(rsv_datum) + ": " + L("lcl_res_fe_no_dirty") + "');"
|
||||
+ " END IF;"
|
||||
}
|
||||
sql += " UPDATE res_rsv_artikel SET res_rsv_artikel_prijs = NULL WHERE res_rsv_ruimte_key = new_key;";
|
||||
sql_ins += " UPDATE res_rsv_artikel SET res_rsv_artikel_prijs = NULL WHERE res_rsv_ruimte_key = new_key;";
|
||||
//
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
sql_ins += "\n END;"
|
||||
//
|
||||
var err = Oracle.Execute(sql_ins, true);
|
||||
if (err.friendlyMsg)
|
||||
abort_with_warning(err.friendlyMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
var sql = "DECLARE"
|
||||
+ " new_key NUMBER;"
|
||||
+ "\nBEGIN"
|
||||
for (var i = 1; i <= form_dates.Count; i++)
|
||||
{
|
||||
var datum = new Date(parseInt(form_dates(i),10));
|
||||
if (ruimte_vervaldatum != null && ruimte_vervaldatum < datum)
|
||||
{
|
||||
abort_with_warning(L("lcl_res_room_expired").format(toDateString(ruimte_vervaldatum)));
|
||||
}
|
||||
if (ispool) // Hele reservering
|
||||
{
|
||||
sql += "\n new_key := res.res_copy_res(" + reservering_key + "," + datum.toSQL() + "," + user_key + ");";
|
||||
}
|
||||
else // Gewone
|
||||
{
|
||||
sql += "\n new_key := res.res_copy_deelres(" + rsv_ruimte_key + "," + datum.toSQL() + "," + user_key + (isnewres?",0,"+newres_key+","+i:"") + ");";
|
||||
if (S("res_fe_allow_dirty") != 1 && urole == 'fe')
|
||||
{
|
||||
sql += " IF res.dirty_level_all(new_key) <> 0 THEN"
|
||||
+ " raise_application_error (-20000, 'res_m960 " + toDateString(datum) + ": " + L("lcl_res_fe_no_dirty") + "');"
|
||||
+ " END IF;"
|
||||
}
|
||||
sql += " UPDATE res_rsv_artikel SET res_rsv_artikel_prijs = NULL WHERE res_rsv_ruimte_key = new_key;";
|
||||
}
|
||||
}
|
||||
sql += " END;"
|
||||
var err = Oracle.Execute(sql, true);
|
||||
if (err.friendlyMsg)
|
||||
abort_with_warning(err.friendlyMsg);
|
||||
}
|
||||
sql += " END;"
|
||||
var err = Oracle.Execute(sql, true);
|
||||
if (err.friendlyMsg)
|
||||
abort_with_warning(err.friendlyMsg);
|
||||
|
||||
shared.trackaction("RESCPY", rsv_ruimte_key);
|
||||
var msg = [];
|
||||
|
||||
Reference in New Issue
Block a user