Files
Facilitor/APPL/MGT/mgt_tools.inc
Jos Groot Lipman e0545a6ca4 FSN#35817 Autorisaties via API2/Scaffolding
svn path=/Website/trunk/; revision=28548
2016-03-21 09:02:54 +00:00

327 lines
12 KiB
PHP
Raw Blame History

<% /*
$Revision$
$Id$
File: mgt_tools.inc
Description:
Context:
Notes:
*/
%>
<%
function buildKenmerktypeLOV(kenmerktype, emptyOption)
{
var kenmerktypeLOV = "";
switch (kenmerktype)
{
case "C":
kenmerktypeLOV = "C;" + L("mgt_srtkenmerk_karakter");
break;
case "N":
kenmerktypeLOV = "N;" + L("mgt_srtkenmerk_numeriek");
break;
case "D":
kenmerktypeLOV = "D;" + L("mgt_srtkenmerk_datum");
break;
case "R":
kenmerktypeLOV = "R;" + L("mgt_srtkenmerk_referentie_l") + ";"
+ "S;" + L("mgt_srtkenmerk_referentie_s")
break;
case "S":
kenmerktypeLOV = "S;" + L("mgt_srtkenmerk_referentie_s") + ";"
+ "R;" + L("mgt_srtkenmerk_referentie_l")
break;
case "X":
kenmerktypeLOV = "X;" + L("mgt_srtkenmerk_bestandsnaam");
break;
case "F":
kenmerktypeLOV = "F;" + L("mgt_srtkenmerk_bestand");
break;
case "E":
kenmerktypeLOV = "E;" + L("mgt_srtkenmerk_bestand_e");
break;
case "M":
kenmerktypeLOV = "M;" + L("mgt_srtkenmerk_bestand_f");
break;
case "L":
kenmerktypeLOV = "L;" + L("mgt_srtkenmerk_label") + ";"
+ "l;" + L("mgt_srtkenmerk_label_i")
break;
case "l":
kenmerktypeLOV = "l;" + L("mgt_srtkenmerk_label_i") + ";"
+ "L;" + L("mgt_srtkenmerk_label")
break;
case "Q":
kenmerktypeLOV = "Q;" + L("mgt_srtkenmerk_blanco");
break;
default:
kenmerktypeLOV = (emptyOption ? emptyOption + ";" : "")
+ "C;" + L("mgt_srtkenmerk_karakter")
+ ";N;" + L("mgt_srtkenmerk_numeriek")
+ ";D;" + L("mgt_srtkenmerk_datum")
+ ";R;" + L("mgt_srtkenmerk_referentie_l")
+ ";S;" + L("mgt_srtkenmerk_referentie_s")
+ ";X;" + L("mgt_srtkenmerk_bestandsnaam")
+ ";F;" + L("mgt_srtkenmerk_bestand")
+ ";E;" + L("mgt_srtkenmerk_bestand_e")
+ ";M;" + L("mgt_srtkenmerk_bestand_f")
+ ";L;" + L("mgt_srtkenmerk_label")
+ ";l;" + L("mgt_srtkenmerk_label_i")
+ ";Q;" + L("mgt_srtkenmerk_blanco");
}
return kenmerktypeLOV;
}
function buildVerplichtingList()
{ // LOV waarden voor xxx_kenmerk_verplicht.
var s = ";" + L("mgt_kenmerk_verplicht_0")
+ ";1;" + L("mgt_kenmerk_verplicht_1")
+ ";2;" + L("mgt_kenmerk_verplicht_2");
return s;
}
function buildGroepsverplichtingList()
{ // LOV waarden voor xxx_kenmerk_groep.
var s = "0;<" + L("lcl_none") + ">";
for (var i=1; i<=9; i++)
{
s = s + ";" + i + ";" + L("mgt_kenmerk_groep") + " " + i;
}
return s;
}
function buildKenmerkNiveauList()
{ // LOV waarde voor xxx_kenmerk_niveau
var s = "D;" + L("mgt_srtkenmerk_discipline")
+ ";G;" + L("mgt_srtkenmerk_srtgroep")
+ ";S;" + L("mgt_srtkenmerk_srtdeel");
return s;
}
function buildSrtcontroletypeList()
{ // LOV waarden voor srtcontrole_type
var s = "1;" + L("lcl_ins_srtcontrole_insp")
+ ";2;" + L("lcl_ins_srtcontrole_repl")
+ ";3;" + L("lcl_ins_srtcontrole_cert");
return s;
}
function fac_kenmerkdomein_foreign(module)
{
return {
"tbl": "(select fac_kenmerkdomein_key"
+ " , fac_kenmerkdomein_omschrijving"
+ " from fac_kenmerkdomein"
+ " where fac_kenmerkdomein_verwijder is null"
+ " and fac_kenmerkdomein_module = " + safe.quoted_sql(module)
+ " order by fac_kenmerkdomein_upper asc)",
"key": "fac_kenmerkdomein_key",
"desc": "fac_kenmerkdomein_omschrijving"
};
}
function fac_functie_foreign(pmode)
{
var tbl;
switch (pmode)
{
case "EXT": tbl = "(SELECT f.fac_functie_key"
+ " , f.fac_functie_code || ': ' || f.fac_functie_omschrijving fac_functie_omschrijving"
+ " FROM fac_functie f"
+ " ORDER BY 2)";
break;
default: tbl = "FAC_FUNCTIE";
}
return {
"tbl": tbl,
"key": "fac_functie_key",
"desc": "fac_functie_omschrijving"
};
}
function checkSrtkenmerkValue(params)
{
// params: module IN module (ALG, BES, ...).
// srtkenmerk IN Is het een srtkenmerk (true) of kenmerk (false).
// key IN (srt)kenmerk_key van de te controleren waarde.
// value IN/OUT De te controleren waarde. Kan hier gewijzigd worden.
// err OUT Foutmelding bij ongeldige waarde voor "value", anders lege string.
//
var prefix = params.module + "_" + (params.srtkenmerk ? "srt" : "");
var sql = "SELECT *"
+ " FROM " + prefix + "kenmerk"
+ " WHERE " + prefix + "kenmerk_key = " + params.key;
var oRs = Oracle.Execute(sql);
var ktyp = oRs(prefix + "kenmerk_kenmerktype").Value;
var klen = oRs(prefix + "kenmerk_lengte").Value;
var kdec = oRs(prefix + "kenmerk_dec").Value;
var kmin = oRs(prefix + "kenmerk_nmin").Value;
var kmax = oRs(prefix + "kenmerk_nmax").Value;
oRs.Close();
var valid = true;
var value = params.value;
var err = ""; //L("lcl_mld_invalid_kenmerk_format");
if (value != "")
{
if (ktyp == "D")
{
// Test of er nu een geldig datumformaat staat.
var arr = /^(\d{1,2})[-](\d{1,2})[-](\d{1,4})$/.exec(value);
if (arr)
{
var dt = new Date( arr[3], arr[2] -1, arr[1] );
if ((arr[1] != dt.getDate()) ||
(arr[2] != dt.getMonth() + 1) ||
(arr[3] != dt.getYear() && arr[3] != dt.getFullYear()))
{
valid = false;
}
else
{
value = ("0" + dt.getDate()).slice(-2) + "-"
+ ("0" + (dt.getMonth()+1)).slice(-2) + "-"
+ dt.getFullYear();
}
}
else valid = false;
if (!valid) err = L("mgt_srtkenmerk_err_datum");
}
else if (ktyp == "C" || ktyp == "L" || ktyp == "Q")
{ // newlines verdubbelen naar %0D%0A dus aantal regels bijtellen
if (value.length + (value.split("\n").length-1) > klen)
{
valid = false;
err = L("mgt_srtkenmerk_err_string").format(klen)+ "\n";
}
}
else if (ktyp == "N")
{
var t;
if (kdec)
{
var l1 = klen-kdec;
var l2 = kdec;
// Als een punt <20>n een komma in een getal behouden we alleen de laatste
if (value.lastIndexOf(".") > value.lastIndexOf(","))
{
value = value.replace(/\,/ig, "");
}
if (value.lastIndexOf(",") > value.lastIndexOf("."))
{
value = value.replace(/\./ig, "");
}
var s = "^\\-?(\\d{1," + l1 + "}[.,]?|\\d{0," + l1 + "}[.,]\\d{1," + l2 + "})$";
valid = value.match(new RegExp(s)) && valid;
if (valid)
{
t = parseFloat(value.replace(",","."));
}
else
{
err = L("mgt_srtkenmerk_err_float") + "\n";
var aantal_decimalen = value.length - value.replace(",",".").indexOf(".");
var aantal_helen = value.slice(0, value.replace(",",".").indexOf("."));
if (aantal_decimalen > kdec)
{
valid = false;
err += L("mgt_srtkenmerk_err_fl_dec").format(kdec) + "\n";
}
if (aantal_helen > (klen - kdec))
{
valid = false;
err += L("mgt_srtkenmerk_err_fl_pre").format(klen - kdec) + "\n";
}
}
}
else
{
if (klen == 1 && kmin == 0 && kmax == 1)
{
// Checkbox; waarde in checked is altijd true of false, dus altijd valid.
valid = true;
t = (field.checked?1:0);
}
else
{
var s = "^\\-?\\d{1," + klen + "}[.,]?$";
valid = value.match(new RegExp(s)) && valid;
if (valid)
{
t = parseInt(value);
}
else
{
err = L("mgt_srtkenmerk_err_integer") + "\n";
if (value.length > klen)
{
valid = false;
err += L("mgt_srtkenmerk_err_int_len").format(klen) + "\n";
}
}
}
}
if (valid)
{
if ( (kmin !== null) && (kmax !== null))
{
if ( (t < kmin) || (t > kmax))
{
valid = false;
err += L("mgt_srtkenmerk_err_range").format(kmin, kmax) + "\n";
}
}
else
{
if ((kmin !== null) && (t < kmin))
{
valid = false;
err += L("mgt_srtkenmerk_err_min").format(kmin);
}
if ((kmax !== null) && (t > kmax))
{
valid = false;
err += L("mgt_srtkenmerk_err_max").format(kmax);
}
}
}
}
}
params.value = (valid ? value : "");
params.err = (valid ? "" :err);
}
// Deze functie vertaalt het positie autorisatieniveau naar tekst
function buildAlgLevelLOV()
{
AlgLevelLOV = "-1;" + L("lcl_all")
+ ";0;" + L("lcl_region")
+ ";1;" + L("lcl_district")
+ ";2;" + L("lcl_location")
+ ";3;" + L("lcl_building")
+ ";4;" + L("lcl_building")
+ ";5;" + L("lcl_room")
+ ";9;" + L("fac_functie_auth_none");
return AlgLevelLOV;
}
function buildPrsLevelLOV()
{
PrsLevelLOV = "-1;" + L("lcl_all")
+ ";0;" + L("lcl_company")
+ ";1;" + L("lcl_dep_name_level1")
+ ";2;" + L("lcl_dep_name_level2")
+ ";3;" + L("lcl_dep_name_level3")
+ ";4;" + L("lcl_dep_name_level4")
+ ";5;" + L("lcl_dep_name_level5")
+ ";9;" + L("fac_functie_auth_none");
return PrsLevelLOV;
}
%>