UWVA#37534 RES: Geen notificatie versturen bij de 'Reserveringstatus:" geblokkeerd
svn path=/Website/trunk/; revision=31950
This commit is contained in:
@@ -94,14 +94,14 @@ function model_res_ruimte()
|
|||||||
"label": L("res_ruimte_begintijd"),
|
"label": L("res_ruimte_begintijd"),
|
||||||
"typ": "float",
|
"typ": "float",
|
||||||
"LOV": api2.getTimetable(),
|
"LOV": api2.getTimetable(),
|
||||||
"emptyoption": "Standaard"
|
"emptyoption": L("lcl_res_standaard").format(toTimeString(S("res_t1"),false))
|
||||||
},
|
},
|
||||||
"close": {
|
"close": {
|
||||||
"dbs": "res_ruimte_eindtijd",
|
"dbs": "res_ruimte_eindtijd",
|
||||||
"label": L("res_ruimte_eindtijd"),
|
"label": L("res_ruimte_eindtijd"),
|
||||||
"typ": "float",
|
"typ": "float",
|
||||||
"LOV": api2.getTimetable(),
|
"LOV": api2.getTimetable(),
|
||||||
"emptyoption": "Standaard"
|
"emptyoption": L("lcl_res_standaard").format(toTimeString(S("res_t2"),false))
|
||||||
},
|
},
|
||||||
"blockstart": {
|
"blockstart": {
|
||||||
"dbs": "res_ruimte_begintijdblok",
|
"dbs": "res_ruimte_begintijdblok",
|
||||||
|
|||||||
@@ -239,7 +239,9 @@ function forhours(fn)
|
|||||||
+ " - GREATEST(COALESCE(rr1.res_ruimte_begintijd, " + S("res_t1") + ")"
|
+ " - GREATEST(COALESCE(rr1.res_ruimte_begintijd, " + S("res_t1") + ")"
|
||||||
+ " ," + (rap_t1_overruled? 0 : S("res_rap_t1")) // Als res_rap_t1 overruled is (geen waarde had) dan GREATEST automatisch 1-ste waarde te laten kiezen.
|
+ " ," + (rap_t1_overruled? 0 : S("res_rap_t1")) // Als res_rap_t1 overruled is (geen waarde had) dan GREATEST automatisch 1-ste waarde te laten kiezen.
|
||||||
+ " )"
|
+ " )"
|
||||||
+ " )")
|
+ " - (COALESCE( rr1.res_ruimte_eindtijdblok, 12) - COALESCE( rr1.res_ruimte_begintijdblok,12) )"
|
||||||
|
+ " )"
|
||||||
|
)
|
||||||
+ " ) beschikbaar"
|
+ " ) beschikbaar"
|
||||||
+ " FROM res_ruimte rr1"
|
+ " FROM res_ruimte rr1"
|
||||||
+ " , res_alg_ruimte ra"
|
+ " , res_alg_ruimte ra"
|
||||||
|
|||||||
@@ -33,7 +33,9 @@ sql = "SELECT rsv.res_rsv_ruimte_van,"
|
|||||||
+ " rsv.res_rsv_ruimte_volgnr,"
|
+ " rsv.res_rsv_ruimte_volgnr,"
|
||||||
+ " rsv.res_reservering_key,"
|
+ " rsv.res_reservering_key,"
|
||||||
+ " rsv.res_activiteit_key,"
|
+ " rsv.res_activiteit_key,"
|
||||||
+ " rr.res_discipline_key"
|
+ " rr.res_discipline_key,"
|
||||||
|
+ " rr.res_ruimte_begintijdblok,"
|
||||||
|
+ " rr.res_ruimte_eindtijdblok"
|
||||||
+ " FROM res_rsv_ruimte rsv"
|
+ " FROM res_rsv_ruimte rsv"
|
||||||
+ " , res_ruimte_opstelling rro"
|
+ " , res_ruimte_opstelling rro"
|
||||||
+ " , res_ruimte rr"
|
+ " , res_ruimte rr"
|
||||||
@@ -48,6 +50,8 @@ var new_tot = (new Date(old_tot)).setFloatHours(old_tot.getFloatHours() + dvan +
|
|||||||
var restxt = oRs("res_reservering_key").Value + "/" + oRs("res_rsv_ruimte_volgnr").Value;
|
var restxt = oRs("res_reservering_key").Value + "/" + oRs("res_rsv_ruimte_volgnr").Value;
|
||||||
var act_key = oRs("res_activiteit_key").Value;
|
var act_key = oRs("res_activiteit_key").Value;
|
||||||
var disc_key = oRs("res_discipline_key").Value;
|
var disc_key = oRs("res_discipline_key").Value;
|
||||||
|
var res_blok_van = oRs("res_ruimte_begintijdblok").Value;
|
||||||
|
var res_blok_tot = oRs("res_ruimte_eindtijdblok").Value;
|
||||||
oRs.Close();
|
oRs.Close();
|
||||||
|
|
||||||
var durationHours = (new_tot - new_van) / 1000/60/60;
|
var durationHours = (new_tot - new_van) / 1000/60/60;
|
||||||
@@ -82,77 +86,96 @@ if (badmsg)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var fields = [ { dbs: "res_rsv_ruimte_van", typ: "time", val: new_van },
|
var blok_van = new Date();
|
||||||
{ dbs: "res_rsv_ruimte_tot", typ: "time", val: new_tot }
|
var blok_tot = new Date();
|
||||||
];
|
var middag_blok = false;
|
||||||
sql = buildUpdate("res_rsv_ruimte", fields) + " res_rsv_ruimte_key = " + rsv_ruimte_key;
|
if (res_blok_van && res_blok_tot) // middag blokkade aanwezig
|
||||||
var check_fail_sql = "";
|
|
||||||
if (S("res_fe_allow_dirty") != 1 && this_res.canChangeFEOnly)
|
|
||||||
{
|
{
|
||||||
check_fail_sql = " if res.dirty_level_all(" + rsv_ruimte_key + ") <> 0 then"
|
blok_van.setTime(new_van.midnight().getTime()+ res_blok_van*3600*1000);
|
||||||
+ " raise_application_error (-20000, 'res_m999 "+L("lcl_res_fe_no_dirty")+"');"
|
blok_tot.setTime(new_tot.midnight().getTime()+ res_blok_tot*3600*1000);
|
||||||
+ " end if;"
|
var middag_blok = !(new_tot < blok_van || new_van > blok_tot);
|
||||||
}
|
}
|
||||||
// Nu de echte update.
|
|
||||||
// Daarbij ook diverse controles/ updates uitvoeren op 'andere zaken'
|
|
||||||
sql = "BEGIN "
|
|
||||||
+ sql + ";"
|
|
||||||
+ " res.set_ruimte_dirty (" + rsv_ruimte_key + "); " // Zelf dirty geworden?
|
|
||||||
+ " res.set_ruimtes_clean (" + old_van.toSQL() + "); " // Anderen 'clean' geworden
|
|
||||||
+ " res.follow_artikel (" + rsv_ruimte_key + ", " + old_van.toSQL(true) + ", " + old_tot.toSQL(true) + "); " // catering mee verplaatsen
|
|
||||||
+ " res.follow_deel (" + rsv_ruimte_key + ", " + old_van.toSQL(true) + ", " + old_tot.toSQL(true) + "); " // objecten mee verplaatsen
|
|
||||||
+ " res.follow_afspraak (" + rsv_ruimte_key + ", " + S("res_copy_to_bez") + "); " // bezoekers mee verplaatsen
|
|
||||||
+ check_fail_sql
|
|
||||||
+ "END;";
|
|
||||||
|
|
||||||
var err = Oracle.Execute(sql, true);
|
if (middag_blok)
|
||||||
if (err.friendlyMsg)
|
|
||||||
{
|
{
|
||||||
error = err.friendlyMsg;
|
|
||||||
result = {
|
result = {
|
||||||
success: false,
|
success: false,
|
||||||
info: err.friendlyMsg,
|
message: L("lcl_res_mid_block")
|
||||||
message: err.friendlyMsg
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
shared.trackaction("RESUPD", rsv_ruimte_key, L("lcl_res_track_room_time_shifted_from")
|
var fields = [ { dbs: "res_rsv_ruimte_van", typ: "time", val: new_van },
|
||||||
+ toDateTimeString(old_van) + "-" + toTimeString(old_tot)
|
{ dbs: "res_rsv_ruimte_tot", typ: "time", val: new_tot }
|
||||||
+ L("lcl_res_track_room_time_shifted_to")
|
];
|
||||||
+ toDateTimeString(new_van) + "-" + toTimeString(new_tot)
|
sql = buildUpdate("res_rsv_ruimte", fields) + " res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||||||
);
|
var check_fail_sql = "";
|
||||||
var sql = "SELECT res_rsv_ruimte_dirtlevel"
|
if (S("res_fe_allow_dirty") != 1 && this_res.canChangeFEOnly)
|
||||||
+ " FROM res_rsv_ruimte"
|
|
||||||
+ " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key;
|
|
||||||
oRs = Oracle.Execute(sql);
|
|
||||||
var addClass = "";
|
|
||||||
var message = "";
|
|
||||||
if (oRs("res_rsv_ruimte_dirtlevel") & res.dirtlevel.ruimte.notavailable)
|
|
||||||
{
|
{
|
||||||
message = L("lcl_res_dirtyroom");
|
check_fail_sql = " if res.dirty_level_all(" + rsv_ruimte_key + ") <> 0 then"
|
||||||
addClass += " res_fatal";
|
+ " raise_application_error (-20000, 'res_m999 "+L("lcl_res_fe_no_dirty")+"');"
|
||||||
|
+ " end if;"
|
||||||
|
}
|
||||||
|
// Nu de echte update.
|
||||||
|
// Daarbij ook diverse controles/ updates uitvoeren op 'andere zaken'
|
||||||
|
sql = "BEGIN "
|
||||||
|
+ sql + ";"
|
||||||
|
+ " res.set_ruimte_dirty (" + rsv_ruimte_key + "); " // Zelf dirty geworden?
|
||||||
|
+ " res.set_ruimtes_clean (" + old_van.toSQL() + "); " // Anderen 'clean' geworden
|
||||||
|
+ " res.follow_artikel (" + rsv_ruimte_key + ", " + old_van.toSQL(true) + ", " + old_tot.toSQL(true) + "); " // catering mee verplaatsen
|
||||||
|
+ " res.follow_deel (" + rsv_ruimte_key + ", " + old_van.toSQL(true) + ", " + old_tot.toSQL(true) + "); " // objecten mee verplaatsen
|
||||||
|
+ " res.follow_afspraak (" + rsv_ruimte_key + ", " + S("res_copy_to_bez") + "); " // bezoekers mee verplaatsen
|
||||||
|
+ check_fail_sql
|
||||||
|
+ "END;";
|
||||||
|
|
||||||
|
var err = Oracle.Execute(sql, true);
|
||||||
|
if (err.friendlyMsg)
|
||||||
|
{
|
||||||
|
error = err.friendlyMsg;
|
||||||
|
result = {
|
||||||
|
success: false,
|
||||||
|
info: err.friendlyMsg,
|
||||||
|
message: err.friendlyMsg
|
||||||
|
};
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ // Als ruimte al dirty is hoeft deel niet meer gecontroleerd te worden.
|
{
|
||||||
var sql = "SELECT MAX(res_rsv_deel_dirtlevel) deel_dirtlevel"
|
shared.trackaction("RESUPD", rsv_ruimte_key, L("lcl_res_track_room_time_shifted_from")
|
||||||
+ " FROM res_rsv_deel"
|
+ toDateTimeString(old_van) + "-" + toTimeString(old_tot)
|
||||||
+ " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key;
|
+ L("lcl_res_track_room_time_shifted_to")
|
||||||
oRs = Oracle.Execute(sql);
|
+ toDateTimeString(new_van) + "-" + toTimeString(new_tot)
|
||||||
if (oRs("deel_dirtlevel") & res.dirtlevel.deel.notavailable)
|
);
|
||||||
{
|
var sql = "SELECT res_rsv_ruimte_dirtlevel"
|
||||||
message = L("lcl_res_dirtyobject");
|
+ " FROM res_rsv_ruimte"
|
||||||
addClass += " res_fatal";
|
+ " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||||||
}
|
oRs = Oracle.Execute(sql);
|
||||||
|
var addClass = "";
|
||||||
|
var message = "";
|
||||||
|
if (oRs("res_rsv_ruimte_dirtlevel") & res.dirtlevel.ruimte.notavailable)
|
||||||
|
{
|
||||||
|
message = L("lcl_res_dirtyroom");
|
||||||
|
addClass += " res_fatal";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ // Als ruimte al dirty is hoeft deel niet meer gecontroleerd te worden.
|
||||||
|
var sql = "SELECT MAX(res_rsv_deel_dirtlevel) deel_dirtlevel"
|
||||||
|
+ " FROM res_rsv_deel"
|
||||||
|
+ " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||||||
|
oRs = Oracle.Execute(sql);
|
||||||
|
if (oRs("deel_dirtlevel") & res.dirtlevel.deel.notavailable)
|
||||||
|
{
|
||||||
|
message = L("lcl_res_dirtyobject");
|
||||||
|
addClass += " res_fatal";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result = { success: true,
|
||||||
|
info: L("lcl_res_track_room_shifted_info") + restxt + ": " + toDateTimeString(new_van) + "-" + toTimeString(new_tot),
|
||||||
|
removeClass: "res_fatal",
|
||||||
|
message: message,
|
||||||
|
addClass: addClass
|
||||||
|
};
|
||||||
}
|
}
|
||||||
result = { success: true,
|
|
||||||
info: L("lcl_res_track_room_shifted_info") + restxt + ": " + toDateTimeString(new_van) + "-" + toTimeString(new_tot),
|
|
||||||
removeClass: "res_fatal",
|
|
||||||
message: message,
|
|
||||||
addClass: addClass
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Response.Write(JSON.stringify(result));
|
Response.Write(JSON.stringify(result));
|
||||||
%>
|
%>
|
||||||
|
|||||||
@@ -80,6 +80,8 @@ var new_tot = (old_tot).setFloatHours(parseFloat(hours_new_tot), S("res_h"));
|
|||||||
|
|
||||||
sql = "SELECT " + lcl.xsqla('rr.res_ruimte_nr', 'rr.res_ruimte_key')
|
sql = "SELECT " + lcl.xsqla('rr.res_ruimte_nr', 'rr.res_ruimte_key')
|
||||||
+ " , rdp.res_disc_params_maxduur"
|
+ " , rdp.res_disc_params_maxduur"
|
||||||
|
+ " , rr.res_ruimte_begintijdblok"
|
||||||
|
+ " , rr.res_ruimte_eindtijdblok"
|
||||||
+ " FROM res_ruimte rr"
|
+ " FROM res_ruimte rr"
|
||||||
+ " , res_disc_params rdp"
|
+ " , res_disc_params rdp"
|
||||||
+ " WHERE rr.res_discipline_key = rdp.res_ins_discipline_key"
|
+ " WHERE rr.res_discipline_key = rdp.res_ins_discipline_key"
|
||||||
@@ -87,6 +89,9 @@ sql = "SELECT " + lcl.xsqla('rr.res_ruimte_nr', 'rr.res_ruimte_key')
|
|||||||
var oRs = Oracle.Execute(sql);
|
var oRs = Oracle.Execute(sql);
|
||||||
var new_ruimte_oms = oRs("res_ruimte_nr").value;
|
var new_ruimte_oms = oRs("res_ruimte_nr").value;
|
||||||
var max_hours = oRs("res_disc_params_maxduur").value;
|
var max_hours = oRs("res_disc_params_maxduur").value;
|
||||||
|
var res_blok_van = oRs("res_ruimte_begintijdblok").Value;
|
||||||
|
var res_blok_tot = oRs("res_ruimte_eindtijdblok").Value;
|
||||||
|
oRs.Close();
|
||||||
|
|
||||||
sql = "SELECT f.fac_functie_key"
|
sql = "SELECT f.fac_functie_key"
|
||||||
+ " FROM fac_functie f "
|
+ " FROM fac_functie f "
|
||||||
@@ -98,6 +103,7 @@ while (!oRs.eof)
|
|||||||
fac_functie_key_arr.push(oRs("fac_functie_key").value);
|
fac_functie_key_arr.push(oRs("fac_functie_key").value);
|
||||||
oRs.moveNext();
|
oRs.moveNext();
|
||||||
}
|
}
|
||||||
|
oRs.Close();
|
||||||
|
|
||||||
// Ik kan deze nieuwe ruimte reserveren als aan de volgende voorwaarden zijn voldaan:
|
// Ik kan deze nieuwe ruimte reserveren als aan de volgende voorwaarden zijn voldaan:
|
||||||
// 1) Ik heb enige schrijfrechten voor 'WEB_RESUSE', 'WEB_RESFOF', 'WEB_RESBOF' of 'WEB_RESBAC'
|
// 1) Ik heb enige schrijfrechten voor 'WEB_RESUSE', 'WEB_RESFOF', 'WEB_RESBOF' of 'WEB_RESBAC'
|
||||||
@@ -165,6 +171,27 @@ if (!badmsg)
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<% FCLTHeader.Generate()
|
<% FCLTHeader.Generate()
|
||||||
|
|
||||||
|
var blok_van = new Date();
|
||||||
|
var blok_tot = new Date();
|
||||||
|
var middag_blok = false;
|
||||||
|
if (res_blok_van && res_blok_tot) // middag blokkade aanwezig
|
||||||
|
{
|
||||||
|
blok_van.setTime(new_van.midnight().getTime()+ res_blok_van*3600*1000);
|
||||||
|
blok_tot.setTime(new_tot.midnight().getTime()+ res_blok_tot*3600*1000);
|
||||||
|
var middag_blok = !(new_tot < blok_van || new_van > blok_tot);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (middag_blok)
|
||||||
|
{
|
||||||
|
err = { friendlyMsg: L("lcl_res_mid_block") };
|
||||||
|
%> <script>
|
||||||
|
FcltMgr.alert("<%=safe.jsstring(err.friendlyMsg)%>");
|
||||||
|
FcltMgr.closeDetail(window, { refresh: true });
|
||||||
|
</script>
|
||||||
|
<% Response.End;
|
||||||
|
}
|
||||||
|
|
||||||
if (submitting)
|
if (submitting)
|
||||||
{
|
{
|
||||||
var opstel = getFParamInt("opstel");
|
var opstel = getFParamInt("opstel");
|
||||||
@@ -172,32 +199,32 @@ if (!badmsg)
|
|||||||
|
|
||||||
if (badmsg == "")
|
if (badmsg == "")
|
||||||
{
|
{
|
||||||
var fields = [ {dbs: "res_ruimte_opstel_key", typ: "key", frm: "opstel"} ];
|
var fields = [ {dbs: "res_ruimte_opstel_key", typ: "key", frm: "opstel"} ];
|
||||||
if (bTimeChanged)
|
if (bTimeChanged)
|
||||||
{ // Gewijzigde tijd ook opslaan
|
{ // Gewijzigde tijd ook opslaan
|
||||||
fields.push( {dbs: "res_rsv_ruimte_van", typ: "datetime", val: new_van} );
|
fields.push( {dbs: "res_rsv_ruimte_van", typ: "datetime", val: new_van} );
|
||||||
fields.push( {dbs: "res_rsv_ruimte_tot", typ: "datetime", val: new_tot} );
|
fields.push( {dbs: "res_rsv_ruimte_tot", typ: "datetime", val: new_tot} );
|
||||||
}
|
}
|
||||||
sql = buildUpdate("res_rsv_ruimte", fields) + " res_rsv_ruimte_key = " + rsv_ruimte_key;
|
sql = buildUpdate("res_rsv_ruimte", fields) + " res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||||||
var check_fail_sql = "";
|
var check_fail_sql = "";
|
||||||
if (S("res_fe_allow_dirty") != 1 && this_res.canChangeFEOnly)
|
if (S("res_fe_allow_dirty") != 1 && this_res.canChangeFEOnly)
|
||||||
{
|
{
|
||||||
check_fail_sql = " if res.dirty_level_all(" + rsv_ruimte_key + ") <> 0 then"
|
check_fail_sql = " if res.dirty_level_all(" + rsv_ruimte_key + ") <> 0 then"
|
||||||
+ " raise_application_error (-20000, 'res_m999 "+L("lcl_res_fe_no_dirty")+"');"
|
+ " raise_application_error (-20000, 'res_m999 "+L("lcl_res_fe_no_dirty")+"');"
|
||||||
+ " end if;"
|
+ " end if;"
|
||||||
}
|
}
|
||||||
// Nu de echte update.
|
// Nu de echte update.
|
||||||
// Daarbij ook diverse controles/ updates uitvoeren op 'andere zaken'
|
// Daarbij ook diverse controles/ updates uitvoeren op 'andere zaken'
|
||||||
sql = "BEGIN "
|
sql = "BEGIN "
|
||||||
+ sql + ";"
|
+ sql + ";"
|
||||||
+ " res.set_ruimte_dirty (" + rsv_ruimte_key + "); " // Zelf dirty geworden?
|
+ " res.set_ruimte_dirty (" + rsv_ruimte_key + "); " // Zelf dirty geworden?
|
||||||
+ " res.set_ruimtes_clean (" + old_van.toSQL() + "); " // Anderen 'clean' geworden
|
+ " res.set_ruimtes_clean (" + old_van.toSQL() + "); " // Anderen 'clean' geworden
|
||||||
+ " res.follow_artikel (" + rsv_ruimte_key + ", " + old_van.toSQL(true) + ", " + old_tot.toSQL(true) + "); " // catering mee verplaatsen
|
+ " res.follow_artikel (" + rsv_ruimte_key + ", " + old_van.toSQL(true) + ", " + old_tot.toSQL(true) + "); " // catering mee verplaatsen
|
||||||
+ " res.follow_deel (" + rsv_ruimte_key + ", " + old_van.toSQL(true) + ", " + old_tot.toSQL(true) + "); " // objecten mee verplaatsen
|
+ " res.follow_deel (" + rsv_ruimte_key + ", " + old_van.toSQL(true) + ", " + old_tot.toSQL(true) + "); " // objecten mee verplaatsen
|
||||||
+ " res.follow_afspraak (" + rsv_ruimte_key + ", " + S("res_copy_to_bez") + "); " // bezoekers mee verplaatsen
|
+ " res.follow_afspraak (" + rsv_ruimte_key + ", " + S("res_copy_to_bez") + "); " // bezoekers mee verplaatsen
|
||||||
+ check_fail_sql
|
+ check_fail_sql
|
||||||
+ "END;";
|
+ "END;";
|
||||||
var err = Oracle.Execute(sql, true);
|
var err = Oracle.Execute(sql, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
err = { friendlyMsg: badmsg }
|
err = { friendlyMsg: badmsg }
|
||||||
|
|||||||
Reference in New Issue
Block a user