KFSG#49267 Kan het uitleenoverzicht ook signaleren als iets te laat wordt ingeleverd?

svn path=/Website/trunk/; revision=36712
This commit is contained in:
Erik Groener
2018-01-24 15:12:34 +00:00
parent e6dd79780e
commit a4183fa85b
4 changed files with 142 additions and 35 deletions

View File

@@ -1430,6 +1430,15 @@ ins = {checkAutLevel:
sqlKenmerkBewerkbaar_where = ""; sqlKenmerkBewerkbaar_where = "";
} }
sqlReservering_from = "( SELECT rrd.res_rsv_deel_key"
+ " , rrd.res_rsv_deel_van"
+ " , rrd.res_rsv_deel_tot"
+ " FROM res_rsv_deel rrd"
+ " WHERE rrd.res_rsv_deel_afgemeld IS NULL"
+ ") rs";
sqlReservering_where = " AND rs.res_rsv_deel_key(+) = i.res_rsv_deel_key";
// Setting ins_auth_obj_lendout: Authorization scope for objects which are lended out {0=owner(borrower) (default) | 1=basic place/owner} // Setting ins_auth_obj_lendout: Authorization scope for objects which are lended out {0=owner(borrower) (default) | 1=basic place/owner}
// //
// Voor UITGELEENDE objecten geldt: ins_alg_ruimte_type = 'P' en ins_alg_ruimte_type_org IN ('A', 'P', 'C', 'T', 'R', 'W') // Voor UITGELEENDE objecten geldt: ins_alg_ruimte_type = 'P' en ins_alg_ruimte_type_org IN ('A', 'P', 'C', 'T', 'R', 'W')
@@ -1457,6 +1466,9 @@ ins = {checkAutLevel:
+ " WHERE s.ins_srtgroep_key = idc.ins_srtgroep_key) ins_groep_oms" + " WHERE s.ins_srtgroep_key = idc.ins_srtgroep_key) ins_groep_oms"
+ ", i.ins_deel_key" + ", i.ins_deel_key"
+ ", i.ins_alg_ruimte_type" + ", i.ins_alg_ruimte_type"
+ ", i.res_rsv_deel_key" // gereserveerde object
+ ", rs.res_rsv_deel_van"
+ ", rs.res_rsv_deel_tot"
+ ", " + sqlInspectie_select + ", " + sqlInspectie_select
+ (!mobile + (!mobile
? ", s.ins_srtdeel_code" ? ", s.ins_srtdeel_code"
@@ -1492,7 +1504,8 @@ ins = {checkAutLevel:
sqlOwner_from = " FROM ins_deel i" sqlOwner_from = " FROM ins_deel i"
+ ", ins_srtdeel s" + ", ins_srtdeel s"
+ sqlInspectie_from + sqlInspectie_from
+ ", " + ins.getresdeel_sql() + " rd"; + ", " + ins.getresdeel_sql() + " rd"
+ ", " + sqlReservering_from;
sqlOwner_where = " WHERE s.ins_srtdeel_key = i.ins_srtdeel_key" sqlOwner_where = " WHERE s.ins_srtdeel_key = i.ins_srtdeel_key"
+ " AND i.ins_deel_verwijder IS NULL" + " AND i.ins_deel_verwijder IS NULL"
@@ -1501,6 +1514,7 @@ ins = {checkAutLevel:
+ " AND s.ins_srtgroep_key NOT IN (" + S("sle_ins_srt_groep_key") + ", " + S("cil_ins_srt_groep_key") + ")" + " AND s.ins_srtgroep_key NOT IN (" + S("sle_ins_srt_groep_key") + ", " + S("cil_ins_srt_groep_key") + ")"
+ sql_objincl + sql_objincl
+ sqlInspectie_where + sqlInspectie_where
+ sqlReservering_where
+ (fronto + (fronto
? " AND s.ins_srtdeel_uitleenbaar = 1" ? " AND s.ins_srtdeel_uitleenbaar = 1"
: "") : "")
@@ -1643,6 +1657,9 @@ ins = {checkAutLevel:
+ " WHERE s.ins_srtgroep_key = idc.ins_srtgroep_key) ins_groep_oms" + " WHERE s.ins_srtgroep_key = idc.ins_srtgroep_key) ins_groep_oms"
+ ", i.ins_deel_key" + ", i.ins_deel_key"
+ ", i.ins_alg_ruimte_type" + ", i.ins_alg_ruimte_type"
+ ", i.res_rsv_deel_key" // gereserveerde object
+ ", rs.res_rsv_deel_van"
+ ", rs.res_rsv_deel_tot"
+ ", " + sqlInspectie_select + ", " + sqlInspectie_select
+ (!mobile + (!mobile
? ", s.ins_srtdeel_code" ? ", s.ins_srtdeel_code"
@@ -1697,6 +1714,7 @@ ins = {checkAutLevel:
+ (koppel_key? ", ins_deelkoppeling idk" : "") + (koppel_key? ", ins_deelkoppeling idk" : "")
+ ", alg_district di" // I added this for alg_district_key (FSN#1082) + ", alg_district di" // I added this for alg_district_key (FSN#1082)
+ ", " + ins.getresdeel_sql() + " rd" + ", " + ins.getresdeel_sql() + " rd"
+ ", " + sqlReservering_from
+ " WHERE i.ins_deel_verwijder IS NULL" + " WHERE i.ins_deel_verwijder IS NULL"
+ " AND i.ins_deel_module = 'INS'" + " AND i.ins_deel_module = 'INS'"
+ " AND i.ins_deel_key = rd.res_ins_deel_key(+)" + " AND i.ins_deel_key = rd.res_ins_deel_key(+)"
@@ -1706,6 +1724,7 @@ ins = {checkAutLevel:
+ sqlKenmerkBewerkbaar_where + sqlKenmerkBewerkbaar_where
+ " AND l.alg_district_key = di.alg_district_key" + " AND l.alg_district_key = di.alg_district_key"
+ " AND s.ins_srtdeel_key = i.ins_srtdeel_key" + " AND s.ins_srtdeel_key = i.ins_srtdeel_key"
+ sqlReservering_where
+ (fronto + (fronto
? " AND s.ins_srtdeel_uitleenbaar = 1" ? " AND s.ins_srtdeel_uitleenbaar = 1"
: "") : "")

View File

@@ -69,7 +69,6 @@ if (obj_key > 0)
+ " AND s.ins_srtgroep_key = g.ins_srtgroep_key" + " AND s.ins_srtgroep_key = g.ins_srtgroep_key"
+ " AND g.ins_discipline_key = dis.ins_discipline_key"; + " AND g.ins_discipline_key = dis.ins_discipline_key";
var oRs = Oracle.Execute(sql); var oRs = Oracle.Execute(sql);
var desc = oRs("ins_deel_omschrijving").value; var desc = oRs("ins_deel_omschrijving").value;
var sort = oRs("ins_srtdeel_omschrijving").value; var sort = oRs("ins_srtdeel_omschrijving").value;
var sort_key = oRs("ins_srtdeel_key").value; var sort_key = oRs("ins_srtdeel_key").value;
@@ -77,6 +76,7 @@ if (obj_key > 0)
var alg_ruimte_type = oRs("ins_alg_ruimte_type").value; // alg_key (niet uitgeleend) of prs_key (uitgeleend) var alg_ruimte_type = oRs("ins_alg_ruimte_type").value; // alg_key (niet uitgeleend) of prs_key (uitgeleend)
isLendOut = oRs("ins_alg_ruimte_key_org").value != null; isLendOut = oRs("ins_alg_ruimte_key_org").value != null;
isCil = oRs("ins_srtgroep_key").value == S("cil_ins_srt_groep_key"); isCil = oRs("ins_srtgroep_key").value == S("cil_ins_srt_groep_key");
oRs.Close();
if (isCil) if (isCil)
{ {
@@ -88,20 +88,21 @@ if (obj_key > 0)
+ " , aor.alg_type" + " , aor.alg_type"
+ " FROM alg_v_allonroerendgoed aor" + " FROM alg_v_allonroerendgoed aor"
+ " WHERE aor.alg_onroerendgoed_keys = " + algprs_key; + " WHERE aor.alg_onroerendgoed_keys = " + algprs_key;
var oRs = Oracle.Execute(sql); var oRs_1 = Oracle.Execute(sql);
var loc_key = oRs("alg_locatie_key").value; var loc_key = oRs_1("alg_locatie_key").value;
var bld_key = oRs("alg_gebouw_key").value; var bld_key = oRs_1("alg_gebouw_key").value;
var ter_key = oRs("alg_terreinsector_key").value; var ter_key = oRs_1("alg_terreinsector_key").value;
var flr_key = oRs("alg_verdieping_key").value; var flr_key = oRs_1("alg_verdieping_key").value;
var room_key = oRs("alg_ruimte_key").value; var room_key = oRs_1("alg_ruimte_key").value;
var alg_type = oRs("alg_type").value; var alg_type = oRs_1("alg_type").value;
oRs_1.Close();
} }
oRs.Close();
var default_prs_key = null; var default_prs_key = null;
var restxt = ""; var restxt = "";
var hasreservering = false;
var res_rsv_deel_key = null;
// Is het object ook reserveerbaar? // Is het object ook reserveerbaar?
var sql = "SELECT res_deel_key," var sql = "SELECT res_deel_key,"
+ " res_deel_opmerking" + " res_deel_opmerking"
@@ -115,13 +116,17 @@ if (obj_key > 0)
if (!isLendOut) if (!isLendOut)
{ {
// zoek contactpersoon van eerstkomende reservering // zoek contactpersoon van eerstkomende reservering
sql = "SELECT res_reservering_key," sql = "SELECT rrr.res_reservering_key,"
+ " res_rsv_ruimte_volgnr," + " rrr.res_rsv_ruimte_volgnr,"
+ " res_rsv_ruimte_van, " + " rrr.res_rsv_ruimte_van, "
+ " res_rsv_ruimte_host_key" + " rrr.res_rsv_ruimte_host_key,"
+ " rrd.res_rsv_deel_key,"
+ S("prs_pers_string") + " host_naam"
+ " FROM res_rsv_ruimte rrr," + " FROM res_rsv_ruimte rrr,"
+ " res_rsv_deel rrd" + " res_rsv_deel rrd,"
+ " WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key" + " prs_perslid p"
+ " WHERE res_rsv_ruimte_host_key = p.prs_perslid_key(+)"
+ " AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key"
+ " AND res_rsv_deel_verwijder IS NULL" + " AND res_rsv_deel_verwijder IS NULL"
+ " AND res_deel_key = " + res_deel_key; + " AND res_deel_key = " + res_deel_key;
if (rsv_deel_key > 0) if (rsv_deel_key > 0)
@@ -136,12 +141,18 @@ if (obj_key > 0)
// de zaal gaat en de contactpersoon niet per se // de zaal gaat en de contactpersoon niet per se
restxt = L("lcl_ins_lend_next_res").format( restxt = L("lcl_ins_lend_next_res").format(
String(oRs2("res_reservering_key").value) + "/" + oRs2("res_rsv_ruimte_volgnr").value, String(oRs2("res_reservering_key").value) + "/" + oRs2("res_rsv_ruimte_volgnr").value,
toDateTimeString(oRs2("res_rsv_ruimte_van").Value)); toDateTimeString(oRs2("res_rsv_ruimte_van").Value),
oRs2("host_naam").Value);
hasreservering = true;
res_rsv_deel_key = oRs2("res_rsv_deel_key").Value;
} }
oRs2.Close(); oRs2.Close();
} }
if (rsv_deel_key > 0) if (rsv_deel_key > 0)
restxt = ""; // Dat weet je dan wel. {
restxt = ""; // Dat weet je dan wel: aangeroepen vanuit reservering.
hasreservering = false;
}
} }
oRs.Close(); oRs.Close();
@@ -239,7 +250,6 @@ else
}); });
} }
function loadKenmerk() function loadKenmerk()
{ {
var ins_key = $("#ins_key").val() var ins_key = $("#ins_key").val()
@@ -272,8 +282,18 @@ else
} }
} }
function onChangeIsres()
{
if ($("#leen_res").is(":checked"))
$("#lent_out_person_show").removeClass("required");
if ($("#leen_vrij").is(":checked"))
$("#lent_out_person_show").addClass("required");
}
$(document).ready(function() $(document).ready(function()
{ {
$("[name=isres]").change(onChangeIsres);
onChangeIsres();
onChangeGebouw() onChangeGebouw()
}); });
@@ -298,7 +318,17 @@ else
BLOCK_START("insUit", blockheader); BLOCK_START("insUit", blockheader);
%><div id="uitleen_restxt"><%=restxt%></div><% if (hasreservering)
{
Response.Write("<tr><td colspan='2' class='label'>"
+ "<input type='radio' name='isres' id='leen_res' value='" + res_rsv_deel_key + "' checked>"
+ "<label for='isres'>" + restxt + "</label></td></tr>"
);
}
else
{
Response.Write("<tr><td colspan='2'><div id='uitleen_restxt'>" + restxt + "</div></td></tr>");
}
if (obj_key < 0) // JGL: Vanuit bezoekersoverzicht? if (obj_key < 0) // JGL: Vanuit bezoekersoverzicht?
{ {
@@ -400,7 +430,7 @@ else
FCLTpersoonselector("lent_out_person", // requestor FCLTpersoonselector("lent_out_person", // requestor
"sglent_out_person", "sglent_out_person",
{ perslidKey: (isLendOut? algprs_key : default_prs_key), { perslidKey: (isLendOut? algprs_key : default_prs_key),
label: L("lcl_name"), label: (hasreservering ? "<input type='radio' name='isres' id='leen_vrij' value=''>" : "") + L("lcl_name"),
autlevel: authparams.PRSwritelevel, autlevel: authparams.PRSwritelevel,
required: true, required: true,
readonly: isLendOut readonly: isLendOut

View File

@@ -36,22 +36,35 @@ else
var authparams = user.checkAutorisation(autfunction); var authparams = user.checkAutorisation(autfunction);
var lent_out_person_key = getFParamInt("lent_out_person", -1); var lent_out_person_key = getFParamInt("lent_out_person", -1);
var lent_out_rsv_deel_key = getFParamInt("isres", -1);
var person_type = getFParam("person_type", "P"); var person_type = getFParam("person_type", "P");
sql = "SELECT d.ins_alg_ruimte_key_org"
+ ", d.ins_deel_omschrijving"
+ " FROM ins_deel d"
+ " WHERE ins_deel_key = " + obj_key;
oRs = Oracle.Execute(sql);
var isLendOut = oRs("ins_alg_ruimte_key_org").value != null;
var lInsOmschrijving = oRs("ins_deel_omschrijving").value;
var loc_key = getFParamInt("locatiekey", -1); // Locatie var loc_key = getFParamInt("locatiekey", -1); // Locatie
var bld_key = getFParamInt("gebouwkey", -1); // Gebouw var bld_key = getFParamInt("gebouwkey", -1); // Gebouw
var bttype = getFParam("bttype", ""); // Type van gebouw/terrein ("B", "T"). Bepaald of bld_key een gebouw of terreinsector key bevat. var bttype = getFParam("bttype", ""); // Type van gebouw/terrein ("B", "T"). Bepaald of bld_key een gebouw of terreinsector key bevat.
var flr_key = getFParamInt("verdiepingkey", -1); // Verdieping var flr_key = getFParamInt("verdiepingkey", -1); // Verdieping
var room_key = getFParamInt("ruimtekey", -1); // Ruimte var room_key = getFParamInt("ruimtekey", -1); // Ruimte
var sql = "SELECT d.ins_alg_ruimte_key_org"
+ " , d.ins_deel_omschrijving"
+ " FROM ins_deel d"
+ " WHERE ins_deel_key = " + obj_key;
var oRs = Oracle.Execute(sql);
var isLendOut = oRs("ins_alg_ruimte_key_org").value != null;
var lInsOmschrijving = oRs("ins_deel_omschrijving").value;
oRs.Close();
var is_reservering = (lent_out_rsv_deel_key > -1);
if (is_reservering)
{
var sql = "SELECT rrr.res_rsv_ruimte_host_key"
+ " FROM res_rsv_ruimte rrr"
+ " , res_rsv_deel rrd"
+ " WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key"
+ " AND res_rsv_deel_key = " + lent_out_rsv_deel_key;
var oRs = Oracle.Execute(sql);
lent_out_person_key = oRs("res_rsv_ruimte_host_key").Value;
}
result = { success: true}; result = { success: true};
var update_string = ""; var update_string = "";
if (!adapt) if (!adapt)
@@ -82,6 +95,7 @@ if (!adapt)
sql = "UPDATE ins_deel" sql = "UPDATE ins_deel"
+ " SET ins_alg_ruimte_key_org = ins_alg_ruimte_key" + " SET ins_alg_ruimte_key_org = ins_alg_ruimte_key"
+ ", ins_alg_ruimte_type_org = ins_alg_ruimte_type" + ", ins_alg_ruimte_type_org = ins_alg_ruimte_type"
+ (is_reservering ? ", res_rsv_deel_key = " + lent_out_rsv_deel_key : "")
+ ", ins_alg_ruimte_key = " + ruimte_key + ", ins_alg_ruimte_key = " + ruimte_key
+ ", ins_alg_ruimte_type = " + safe.quoted_sql(ruimte_type) + ", ins_alg_ruimte_type = " + safe.quoted_sql(ruimte_type)
+ " WHERE ins_deel_key = " + obj_key; + " WHERE ins_deel_key = " + obj_key;
@@ -94,6 +108,7 @@ if (!adapt)
+ ", ins_alg_ruimte_type = ins_alg_ruimte_type_org" + ", ins_alg_ruimte_type = ins_alg_ruimte_type_org"
+ ", ins_alg_ruimte_key_org = NULL" + ", ins_alg_ruimte_key_org = NULL"
+ ", ins_alg_ruimte_type_org = NULL" + ", ins_alg_ruimte_type_org = NULL"
+ ", res_rsv_deel_key = NULL"
+ " WHERE ins_deel_key = " + obj_key + " WHERE ins_deel_key = " + obj_key
+ " AND ins_alg_ruimte_key_org IS NOT NULL" + " AND ins_alg_ruimte_key_org IS NOT NULL"
+ " AND ins_alg_ruimte_type_org IS NOT NULL"; + " AND ins_alg_ruimte_type_org IS NOT NULL";

View File

@@ -597,6 +597,7 @@ function ins_list (pautfunction, params)
else else
return ""; return "";
} }
function fnKoppelaan(oRs) function fnKoppelaan(oRs)
{ {
if (oRs("ins_deelkoppeling_van_key").Value == koppel_key) if (oRs("ins_deelkoppeling_van_key").Value == koppel_key)
@@ -605,7 +606,9 @@ function ins_list (pautfunction, params)
else else
return ""; return "";
} }
function fnReserveerbaar(oRs) {
function fnReserveerbaar(oRs)
{
var res = ""; var res = "";
if ( oRs("res_deel_key").value != null ) if ( oRs("res_deel_key").value != null )
{ {
@@ -624,7 +627,9 @@ function ins_list (pautfunction, params)
} }
return res; return res;
} }
function fnUitleenbaar(oRs) {
function fnUitleenbaar(oRs)
{
var res = ""; var res = "";
if ( oRs("ins_srtdeel_uitleenbaar").value==1 ) { if ( oRs("ins_srtdeel_uitleenbaar").value==1 ) {
res = (outputmode == 0 ? L("lcl_obj_uitleensrtdeel") : L("lcl_yes")); res = (outputmode == 0 ? L("lcl_obj_uitleensrtdeel") : L("lcl_yes"));
@@ -634,7 +639,6 @@ function ins_list (pautfunction, params)
return res; return res;
} }
function fnInspectie(oRs) // TODO: Of via RowClass function fnInspectie(oRs) // TODO: Of via RowClass
{ {
var vervallen = (oRs("inspectie_eind").Value != null && new Date(oRs("inspectie_eind").Value).getTime() < new Date().midnight()); var vervallen = (oRs("inspectie_eind").Value != null && new Date(oRs("inspectie_eind").Value).getTime() < new Date().midnight());
@@ -716,6 +720,43 @@ function ins_list (pautfunction, params)
return res; return res;
} }
function fnGereserveerdVan(oRs)
{
var res_van_str = "";
if (oRs("res_rsv_deel_key").Value)
{
res_van = new Date(oRs("res_rsv_deel_van").Value);
res_van_str = toDateTimeString(res_van, excel);
}
return res_van_str;
}
function fnGereserveerdTot(oRs)
{
var res_tot_str = "";
if (oRs("res_rsv_deel_key").Value)
{
res_tot = new Date(oRs("res_rsv_deel_tot").Value);
res_tot_str = toDateTimeString(res_tot, excel);
}
return res_tot_str;
}
function fnrowClass2(oRs)
{
var lclass = null;
if (oRs("res_rsv_deel_key").Value)
{
res_tot = new Date(oRs("res_rsv_deel_tot").Value);
res_tot_str = toDateTimeString(res_tot, excel);
if (res_tot <= new Date())
{
lclass = " expired2"; // Te laat
}
}
return lclass;
}
if (koppel_key && ins.func_enabled_deel(koppel_key).canChange) // TODO (popup met objectselector (zoiets als bij meldingen?) if (koppel_key && ins.func_enabled_deel(koppel_key).canChange) // TODO (popup met objectselector (zoiets als bij meldingen?)
{ {
buttons = [{ icon: "wijzigen.png", buttons = [{ icon: "wijzigen.png",
@@ -779,7 +820,7 @@ function ins_list (pautfunction, params)
ID: "instable", ID: "instable",
rowData: fnrowData, rowData: fnrowData,
rowActionEnabler: fnrowActionEnabler, rowActionEnabler: fnrowActionEnabler,
rowClass: inspect? fnrowClass : null, rowClass: inspect? fnrowClass : fnrowClass2,
flexModule: "INS", flexModule: "INS",
flexId: "ins_deel_key", flexId: "ins_deel_key",
flexGroupId: "ins_srtdeel_key", flexGroupId: "ins_srtdeel_key",
@@ -798,6 +839,8 @@ function ins_list (pautfunction, params)
rst.addColumn(new Column({caption: L("lcl_obj_identification"), content: "ins_deel_omschrijving"})); rst.addColumn(new Column({caption: L("lcl_obj_identification"), content: "ins_deel_omschrijving"}));
rst.addColumn(new Column({caption: L("lcl_ins_opmerking"), content: "ins_deel_opmerking"})); rst.addColumn(new Column({caption: L("lcl_ins_opmerking"), content: "ins_deel_opmerking"}));
rst.addColumn(new Column({caption: L("lcl_obj_position"), content: fnPlace})); rst.addColumn(new Column({caption: L("lcl_obj_position"), content: fnPlace}));
rst.addColumn(new Column({caption: "gereserveerd van", content: fnGereserveerdVan}));
rst.addColumn(new Column({caption: "gereserveerd tot", content: fnGereserveerdTot}));
rst.addColumn(new Column({caption: L("lcl_obj_lent_out_to"), content: fnLentOutTo})); rst.addColumn(new Column({caption: L("lcl_obj_lent_out_to"), content: fnLentOutTo}));
} }
else else