Files
Facilitor/APPL/SLE/sle.inc
Erik Groener 4473339189 FSN#38016 Sleutel heeft vervaldatum en status inactief maar is toch uit te geven
svn path=/Website/trunk/; revision=31214
2016-10-26 06:43:51 +00:00

72 lines
3.4 KiB
C++

<% /*
$Revision$
$Id$
*/
%>
<!-- #include file="../PRS/prs.inc" -->
<%
sle = {func_enabled_slecil: // Wat mag ik zoal op dit specifieke sleutel/cilinder object?
function (pins_deel_key, params)
{
var isql = "SELECT d.ins_discipline_key"
+ ", COALESCE(d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_key"
+ ", COALESCE(d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) alg_type"
+ ", d.ins_alg_ruimte_key_org"
+ ", sd.ins_srtgroep_key"
+ ", d.ins_deel_actief"
+ ", CASE WHEN d.ins_deel_vervaldatum < SYSDATE"
+ " THEN 1"
+ " ELSE 0"
+ " END vervallen"
+ " FROM ins_deel d"
+ ", ins_srtdeel sd"
+ " WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key"
+ " AND d.ins_deel_key = " + pins_deel_key;
var ioRs = Oracle.Execute(isql);
var alg_key = ioRs("alg_key").value;
var alg_type = ioRs("alg_type").value;
var uitgegeven = ioRs("ins_alg_ruimte_key_org").value != null;
var sletype = (ioRs("ins_srtgroep_key").value == S("sle_ins_srt_groep_key")? "S" : "C")
var actief = ioRs("ins_deel_actief").Value == 1;
var vervallen = ioRs("vervallen").Value == 1;
ioRs.Close();
// Autorisatie niet van discipline afhankelijk. En ook niet van persoon.
var iresult = user.func_enabled2("SLE",
{alg_key: (alg_type == 'R'? alg_key : null),
isOptional: true } // nog even optional
);
iresult.canFOWrite = iresult.canWrite("WEB_SLEFOF");
iresult.canBOWrite = iresult.canWrite("WEB_SLEBOF");
// Voor het uitgeven en innemen van sleutels gelden WEB_SLEFOF rechten
// Voor het uitgeven en innemen van cilinders gelden WEB_SLEBOF rechten
var canWrite = (sletype == "S"? iresult.canFOWrite : iresult.canBOWrite)
iresult.canUitgeven = canWrite && !uitgegeven && actief && !vervallen; // Uitgeven
iresult.canInnemen = canWrite && uitgegeven; // Innemen
iresult.canDelete = canWrite;
return iresult;
},
kanKoppelen: // Mag ik deze sleutel/cilinder srtdeel koppelen?
function (pins_srtdeel_key, params)
{
var isql = "SELECT d.ins_deel_key"
+ " FROM ins_deel d"
+ " WHERE d.ins_srtdeel_key = " + pins_srtdeel_key;
var ioRs = Oracle.Execute(isql);
var kanKoppelen = false;
// Als ik rechten heb op 1 van de sleutels dan mag ik ook koppelen
while (!ioRs.eof && !kanKoppelen)
{
var this_sle = sle.func_enabled_slecil(ioRs("ins_deel_key").value);
kanKoppelen = this_sle.canBOWrite;
ioRs.MoveNext();
}
ioRs.Close();
return kanKoppelen;
}
}
%>