DJIN#35339: Een binnengemelde bezoeker kan verwijderd worden.

svn path=/Website/trunk/; revision=28164
This commit is contained in:
Maykel Geerdink
2016-02-15 11:16:35 +00:00
parent 2986b50ea6
commit e7edab948d
3 changed files with 53 additions and 35 deletions

View File

@@ -116,13 +116,13 @@ bez =
var prk_array = [];
while (!oRs.eof)
{
prk_bezet += parseInt(oRs("bezet").value, 10);
prk_vrij += parseInt(oRs("vrij").value, 10);
var alg_type = oRs("alg_type").value;
prk_array.push({key: (alg_type == "R"? oRs("alg_gebouw_key").value : oRs("alg_terreinsector_key").value),
naam: (alg_type == "R"? oRs("gebouw_naam").value : oRs("terreinsector_naam").value) + " [" + (parseInt(oRs("vrij").value, 10) > 0? parseInt(oRs("vrij").value, 10) + " - " + L("lcl_bez_vrij") : L("lcl_bez_vol")) + "]",
bezet: parseInt(oRs("bezet").value, 10),
vrij: parseInt(oRs("vrij").value, 10)
prk_bezet += parseInt(oRs("bezet").Value, 10);
prk_vrij += parseInt(oRs("vrij").Value, 10);
var alg_type = oRs("alg_type").Value;
prk_array.push({key: (alg_type == "R"? oRs("alg_gebouw_key").Value : oRs("alg_terreinsector_key").Value),
naam: (alg_type == "R"? oRs("gebouw_naam").Value : oRs("terreinsector_naam").Value) + " [" + (parseInt(oRs("vrij").Value, 10) > 0? parseInt(oRs("vrij").Value, 10) + " - " + L("lcl_bez_vrij") : L("lcl_bez_vol")) + "]",
bezet: parseInt(oRs("bezet").Value, 10),
vrij: parseInt(oRs("vrij").Value, 10)
});
oRs.MoveNext();
}
@@ -151,7 +151,7 @@ bez =
+ " WHERE b.bez_afspraak_key = " + pAfspr_key;
var oRs = Oracle.Execute(sql);
var count_bez = oRs(0).value;
var count_bez = oRs(0).Value;
var deleted = false;
if (count_bez == 0)
@@ -176,7 +176,7 @@ bez =
// Extra controle tbv nogmaals deleten van een zojuist gedelete
if (!oRs.eof)
{
var afspr_key = oRs(0).value;
var afspr_key = oRs(0).Value;
// delete parking place is done by database cascade constraint
sql = "DELETE FROM bez_bezoekers"
+ " WHERE bez_bezoekers_key = " + pBez_key;
@@ -310,24 +310,37 @@ bez =
var contact_key = user_key;
var alg_key = -1;
var rsv_ruimte_key = -1;
var aantaldone = 0;
var aantalout = 0;
if (afspr_key > 0)
{
var sql = "select bez_afspraak_host_key"
+ " , bez_afspraak_contact_key"
+ " , alg_onrgoed_keys"
+ " , prs_perslid_key"
+ " , res_rsv_ruimte_key"
+ " from bez_afspraak"
+ " where bez_afspraak_key = " + afspr_key;
var sql = "SELECT a.bez_afspraak_host_key"
+ " , a.bez_afspraak_contact_key"
+ " , a.alg_onrgoed_keys"
+ " , a.prs_perslid_key"
+ " , a.res_rsv_ruimte_key"
+ " , SUM (CASE WHEN b.bez_bezoekers_done IS NOT NULL THEN 1 ELSE 0 END) aantaldone"
+ " , SUM (CASE WHEN b.bez_bezoekers_out IS NOT NULL THEN 1 ELSE 0 END) aantalout"
+ " FROM bez_afspraak a"
+ " , bez_bezoekers b"
+ " WHERE a.bez_afspraak_key = b.bez_afspraak_key"
+ " AND a.bez_afspraak_key = " + afspr_key
+ " GROUP BY a.bez_afspraak_host_key"
+ " , a.bez_afspraak_contact_key"
+ " , a.alg_onrgoed_keys"
+ " , a.prs_perslid_key"
+ " , a.res_rsv_ruimte_key";
var oRs = Oracle.Execute(sql);
if (oRs.eof)
shared.record_not_found("<!--" + afspr_key + "-->");
host_key = oRs("bez_afspraak_host_key").value;
contact_key = oRs("bez_afspraak_contact_key").value;
alg_key = oRs("alg_onrgoed_keys").value;
rsv_ruimte_key = oRs("res_rsv_ruimte_key").value;
host_key = oRs("bez_afspraak_host_key").Value;
contact_key = oRs("bez_afspraak_contact_key").Value;
alg_key = oRs("alg_onrgoed_keys").Value;
rsv_ruimte_key = oRs("res_rsv_ruimte_key").Value;
aantaldone = oRs("aantaldone").Value;
aantalout = oRs("aantalout").Value;
oRs.Close();
}
var bresult = user.func_enabled("BEZ",
@@ -340,7 +353,10 @@ bez =
// Kan ik afspraken zien en maken
bresult.canWritePrk = bresult.canWrite("WEB_BEZPRK");
bresult.canWritePaf = bresult.canWrite("WEB_BEZPAF");
bresult.canChange = bresult.canWrite("WEB_BEZFOF") || bresult.canWrite("WEB_BEZBOF") || bresult.canWrite("WEB_BEZUSE");
// Als er bezoekers zijn uitgecheckt, dan mag de afspraak niet meer gewijzigd worden.
bresult.canChange = (bresult.canWrite("WEB_BEZFOF") || bresult.canWrite("WEB_BEZBOF") || bresult.canWrite("WEB_BEZUSE")) && aantalout == 0;
// Als er bezoekers zijn binnen geboekt, dan mag de afspraak niet meer verwijderd worden.
bresult.canDelete = (bresult.canWrite("WEB_BEZFOF") || bresult.canWrite("WEB_BEZBOF") || bresult.canWrite("WEB_BEZUSE")) && aantaldone == 0;
// Als er parkeerplaatsen aanzitten die PAF nodig hebben gelden soms andere regels
sql = "SELECT count(*) aantal"

View File

@@ -283,6 +283,14 @@ function bez_list(pautfunction, params)
+ " ) x"
+ " WHERE x.ins_alg_ruimte_key = b.prs_perslid_key"
+ " OR x.ins_alg_ruimte_key = b.prs_contactpersoon_key) nr_of_items_lend";
sql += ", (SELECT SUM(CASE"
+ " WHEN b.bez_bezoekers_done IS NOT NULL"
+ " THEN 1"
+ " ELSE 0"
+ " END)"
+ " FROM bez_bezoekers b"
+ " WHERE b.bez_afspraak_key = a.bez_afspraak_key) aantaldone"
}
if (groupbez == 1) // district (management info)
@@ -682,8 +690,9 @@ function bez_list(pautfunction, params)
tExpire = oRs("tExpire").Value;
}
var aantaldone = oRs("aantaldone").Value;
var eEdit = (fronto || backo || (tVan > tExpire));
var eDelete = (fronto || (tVan > tExpire)); // backo in elk geval niet
var eDelete = (fronto || (tVan > tExpire)) && aantaldone == 0; // backo in elk geval niet
var data = {eEdit: eEdit, eDelete: eDelete };
return data;

View File

@@ -37,13 +37,6 @@ var transitParam = buildTransitParam(["urole", "afspr_key", "contactonly"]);
// TODO: deze bepalen met bez.canReadBOF enzo. Dan weet ik verderop of ik bv moreinfo mag doen
sql = "SELECT COUNT(*) aantalNotOut FROM bez_bezoekers WHERE bez_bezoekers_out IS NULL AND bez_afspraak_key = " + afspr_key;
oRs = Oracle.Execute(sql);
if (oRs("aantalNotOut").value > 0)
editallowed = true;
else
editallowed = false;
var bez_afspraak = bez.bez_afspraak_info(afspr_key);
bsql = "SELECT COUNT(bez_bezoekers_done) done, COUNT(bez_bezoekers_out) out, COUNT(bez_bezoekers_key) totaal "
@@ -118,12 +111,12 @@ var urlMail = "../shared/queuemail.asp?pcode=BEZMAI&defemail_key=" + bez_afspraa
// Wat voor nut heeft dat (wat is er dan aan de hand?), en pas op dat saven alles weggooit en aanmaakt
var buttons = [];
if (editallowed && this_bez.canChange)
{
buttons.push( {title: L("lcl_res_add_deelres"), icon: "resrepeat.png", action:"bez_multi()" },
{title: L("lcl_change"), icon:"wijzigen.png", action:"bez_change()" },
{title: L("lcl_delete"), icon:"delete.png", action:"bez_delete()" });
}
if (this_bez.canChange)
buttons.push( {title: L("lcl_res_add_deelres"), icon: "resrepeat.png", action:"bez_multi()" },
{title: L("lcl_change"), icon:"wijzigen.png", action:"bez_change()" });
if (this_bez.canDelete)
buttons.push( {title: L("lcl_delete"), icon:"delete.png", action:"bez_delete()" });
buttons.push ({title: L("lcl_print"), icon: "print.png", action:"bez_print()" },
{title: L("lcl_noti_bez_email"), icon: "email.png", action:"bez_mail()" });