FCLT#84467 rolcode vervangt de restricties die in volgnummer waren verstopt -savepoint
svn path=/Website/trunk/; revision=69031
This commit is contained in:
@@ -25,22 +25,27 @@ function generateFlexKenmerkBlock(params)
|
||||
var advanced = params.advanced; // Geavanceerd
|
||||
var hasfilter = params.hasfilter? params.hasfilter : null;
|
||||
|
||||
function isReadonly (volgnummer)
|
||||
function isReadonly (oRs)
|
||||
{
|
||||
if (reado)
|
||||
return true;
|
||||
if (volgnummer < 100 && !params.this_alg.writeman)
|
||||
return true;
|
||||
if (volgnummer > 100 && !params.this_alg.writeuse)
|
||||
return true;
|
||||
var rolcode = oRs("kenmerk_rolcode").value;
|
||||
var canWrite = (params.this_alg.writeman && (rolcode&1)) || (params.this_alg.writeuse && (rolcode&2));
|
||||
|
||||
return !canWrite; // readonly
|
||||
}
|
||||
|
||||
function isInvisible(volgnummer, ktype)
|
||||
function isInvisible(oRs)
|
||||
{
|
||||
var ktype = oRs("kenmerk_kenmerktype").value;
|
||||
if (params.multi)
|
||||
return (ktype == 'M' || ktype == 'F' || ktype == 'E'); // onzichtbaar bij multi
|
||||
}
|
||||
|
||||
// Wat mag ik op basis van mijn autorisatie (potentieel) zien, bepaal mijn rolcode-masker
|
||||
var myreadrolcode = 0 + (params.this_alg.readman ? 1 : 0)
|
||||
+ (params.this_alg.readuse ? 2 : 0);
|
||||
|
||||
var sql = "SELECT k.alg_kenmerk_key kenmerk_key"
|
||||
+ " , 1 kenmerk_key_count"
|
||||
+ " , NULL srtkenmerk_key"
|
||||
@@ -65,6 +70,7 @@ function generateFlexKenmerkBlock(params)
|
||||
: " , " + lcl.xsql("k.alg_kenmerk_default", "k.alg_kenmerk_key")
|
||||
) + " kenmerk_waarde"
|
||||
+ " , k.alg_kenmerk_volgnr kenmerk_volgnr"
|
||||
+ " , k.alg_kenmerk_rolcode kenmerk_rolcode"
|
||||
+ " , " + lcl.xsql("k.alg_kenmerk_dimensie", "k.alg_kenmerk_key") +" kenmerk_dimensie"
|
||||
+ " , " + lcl.xsql("k.alg_kenmerk_hint", "k.alg_kenmerk_key") +" kenmerk_hint"
|
||||
+ " , " + lcl.xsql("k.alg_kenmerk_default", "k.alg_kenmerk_key") + " kenmerk_default"
|
||||
@@ -79,12 +85,11 @@ function generateFlexKenmerkBlock(params)
|
||||
+ " FROM alg_kenmerk k "
|
||||
+ " WHERE k.alg_kenmerk_niveau = " + safe.quoted_sql(onrgoed_niveau)
|
||||
+ " AND k.alg_kenmerk_verwijder IS NULL "
|
||||
+ (!params.this_alg.readman? " AND alg_kenmerk_volgnr >= 100" : "")
|
||||
+ (!params.this_alg.readuse? " AND alg_kenmerk_volgnr <= 100" : "")
|
||||
+ " AND BITAND(alg_kenmerk_rolcode, " + myreadrolcode + ") > 0 "
|
||||
+ " ORDER BY k.alg_kenmerk_volgnr"
|
||||
+ " , " + lcl.xsql("k.alg_kenmerk_omschrijving", "k.alg_kenmerk_key");
|
||||
|
||||
var trn = 0;
|
||||
var trn = 0; // fijn, maar waarom?
|
||||
|
||||
listKenmerk(sql,
|
||||
"ALG", //module
|
||||
|
||||
@@ -47,14 +47,16 @@ var afgehandeld = false;
|
||||
var kenmerk_key = -1;
|
||||
if (alg_key > 0)
|
||||
{
|
||||
// Als ik canReadNotes heb dan heb ik canUSEread en/of canMANread rechten.
|
||||
// Wat mag ik op basis van mijn autorisatie (potentieel) zien, bepaal mijn rolcode-masker
|
||||
var myreadrolcode = 0 + (this_alg.canMANread ? 1 : 0)
|
||||
+ (this_alg.canUSEread ? 2 : 0);
|
||||
// Is er een bijlage kenmerk?
|
||||
var sql = "SELECT k.alg_kenmerk_key"
|
||||
+ " FROM alg_kenmerk k"
|
||||
+ " WHERE k.alg_kenmerk_niveau IN ('R','V','G','T','L')"
|
||||
+ " AND k.alg_kenmerk_verwijder IS NULL"
|
||||
// Als ik canReadNotes heb dan heb ik canUSEread en/of canMANread rechten.
|
||||
+ (!this_alg.canMANread ? " AND k.alg_kenmerk_volgnr >= 100" : "")
|
||||
+ (!this_alg.canUSEread ? " AND k.alg_kenmerk_volgnr <= 100" : "")
|
||||
+ " AND BITAND(k.alg_kenmerk_rolcode, " + myreadrolcode + ") > 0 "
|
||||
+ " AND ( k.alg_kenmerk_verplicht IS NULL"
|
||||
+ " OR k.alg_kenmerk_verplicht = 0)"
|
||||
+ " AND k.alg_kenmerk_kenmerktype = 'M'"
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
+ "4;"+ L("mgt_kenmerkrolcodemld_4") + ";"
|
||||
+ "2;"+ L("mgt_kenmerkrolcodemld_2");
|
||||
break;
|
||||
case "OPD":
|
||||
case "OPD": // deze is nog TODO
|
||||
kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodeopd_7") + ";"
|
||||
+ "5;"+ L("mgt_kenmerkrolcodeopd_5") + ";"
|
||||
+ "4;"+ L("mgt_kenmerkrolcodeopd_4") + ";" // ORDSUP
|
||||
@@ -71,9 +71,10 @@
|
||||
+ "2;"+ L("mgt_kenmerkrolcodeopd_2") + ";" // Afmelden?
|
||||
+ "1;"+ L("mgt_kenmerkrolcodeopd_1"); // ORD*
|
||||
break;
|
||||
case "PRS": /// TODO under construction
|
||||
kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodeprs_7") + ";" // alles
|
||||
+ "4;"+ L("mgt_kenmerkrolcodeprs_4") + ";" // tbd
|
||||
case "PRS":
|
||||
kenmerkRoleCodeLOV = "7;"+ L("mgt_kenmerkrolcodeprs_7") + ";" // alles,
|
||||
+ "6;"+ L("mgt_kenmerkrolcodeprs_6") + ";" // PRSUSE+PROFIL
|
||||
+ "3;"+ L("mgt_kenmerkrolcodeprs_3") + ";" // PRSMAN+PRSUSE
|
||||
+ "2;"+ L("mgt_kenmerkrolcodeprs_2") + ";" // PRSUSE
|
||||
+ "1;"+ L("mgt_kenmerkrolcodeprs_1"); // PRSMAN
|
||||
break;
|
||||
@@ -90,70 +91,6 @@
|
||||
return kenmerkRoleCodeLOV;
|
||||
}
|
||||
|
||||
// vertaal de lettercode naar tekst, leek me prettig maar dat kan zo niet in de SQL
|
||||
// is hier vermoedeijk niet op zijn plaats, maar waar dan wel (stored function in oracle?)
|
||||
function kenmerktypecode2text(kenmerktype)
|
||||
{
|
||||
var kenmerktypetext = "";
|
||||
switch (kenmerktype)
|
||||
{
|
||||
case "C":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_karakter");
|
||||
break;
|
||||
case "N":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_numeriek");
|
||||
break;
|
||||
case "D":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_datum");
|
||||
break;
|
||||
case "T":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_tijd");
|
||||
break;
|
||||
case "R":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_referentie_l");
|
||||
break;
|
||||
case "S":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_referentie_s");
|
||||
break;
|
||||
case "r":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_referentie_r");
|
||||
break;
|
||||
case "X":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_bestandsnaam");
|
||||
break;
|
||||
case "F":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_bestand");
|
||||
break;
|
||||
case "E":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_bestand_e");
|
||||
break;
|
||||
case "M":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_bestand_f");
|
||||
break;
|
||||
case "L":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_label");
|
||||
break;
|
||||
case "l":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_label_i");
|
||||
break;
|
||||
case "b":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_label_ii");
|
||||
break;
|
||||
case "Q":
|
||||
kenmerktypkenmerktypetexteLOV = L("mgt_srtkenmerk_blanco");
|
||||
break;
|
||||
case "B":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_berekening");
|
||||
break;
|
||||
case "V":
|
||||
kenmerktypetext = L("mgt_srtkenmerk_checkbox");
|
||||
break;
|
||||
default:
|
||||
kenmerktypetext = "?";
|
||||
}
|
||||
return kenmerktypetext;
|
||||
}
|
||||
|
||||
function buildKenmerktypeLOV(kenmerktype, params)
|
||||
{
|
||||
var kenmerktypeLOV = "";
|
||||
|
||||
@@ -261,6 +261,7 @@ MODAL_BLOCK_START("besItemFlex" , L("lcl_flexible_properties") + ": " + desc, {
|
||||
)
|
||||
) + " kenmerk_waarde"
|
||||
+ " , k.bes_kenmerk_volgnummer kenmerk_volgnr"
|
||||
+ " , k.bes_kenmerk_rolcode kenmerk_rolcode"
|
||||
+ " , " + lcl.xsql("sk.bes_srtkenmerk_dimensie", "sk.bes_srtkenmerk_key") + " kenmerk_dimensie"
|
||||
+ " , " + lcl.xsql("k.bes_kenmerk_hint", "k.bes_kenmerk_key") + " kenmerk_hint"
|
||||
+ " , " + lcl.xsql("k.bes_kenmerk_default", "k.bes_kenmerk_key") + " kenmerk_default"
|
||||
@@ -286,8 +287,6 @@ MODAL_BLOCK_START("besItemFlex" , L("lcl_flexible_properties") + ": " + desc, {
|
||||
+ " , UPPER( COALESCE (" + lcl.xsql("k.bes_kenmerk_omschrijving", "k.bes_kenmerk_key")
|
||||
+ " , " + lcl.xsql("sk.bes_srtkenmerk_omschrijving", "sk.bes_srtkenmerk_key") + "))";
|
||||
|
||||
var trn = 0;
|
||||
|
||||
listKenmerk(sql,
|
||||
"BES",
|
||||
-1,
|
||||
|
||||
@@ -60,12 +60,8 @@ function generateFlexKenmerkCode(params)
|
||||
// TODO: Moeten we echt zo streng zijn? Fiatteur heeft namelijk geen BESUSE rechten
|
||||
// var authparams = user.checkAutorisation(autfunction);
|
||||
|
||||
// Heb ik rechten om kenmerken met volgnummer 900 en hoger te zien?
|
||||
// De functie checkAutorisation(autfunction, true) geeft null terug indien er geen autorisatie voor autofunction wordt gevonden
|
||||
var besman_authparams = user.checkAutorisation("WEB_ORDSUP", true);
|
||||
var besman = false;
|
||||
if (besman_authparams)
|
||||
besman = true;
|
||||
// userhasORDSUP true betekent: user mag flexkenmerken rolcode 4 (voorheen > 900) zien/editen
|
||||
var userhasORDSUP = user.has("WEB_ORDSUP");
|
||||
|
||||
if (kenmerktype != "B" && kenmerktype != "I" ||
|
||||
kenmerktype != "B" && bestelopdracht)
|
||||
@@ -93,11 +89,19 @@ function generateFlexKenmerkCode(params)
|
||||
var srtdeel_key = oRs("item").Value;
|
||||
}
|
||||
|
||||
function isReadonly (volgnummer)
|
||||
function isReadonly (oRs)
|
||||
{
|
||||
// er is dus geen read/write onderscheid op veldniveau
|
||||
if (reado) return true;
|
||||
}
|
||||
|
||||
// Als we het netjes zouden doen en het zou nuttig zijn, dan zouden we de kenmerkautorisatie
|
||||
// ook op deze manier doen: met welke rechten mag ik wat zien. Maar dat laten we eerst maar hoe het was
|
||||
//// Wat mag ik op basis van mijn autorisatie (potentieel) zien, bepaal mijn rolcode-masker
|
||||
//var myreadrolcode = 0 + (this_bes.authparams.readman ? 1 : 0)
|
||||
// + (this_bes.authparams.readuse ? 2 : 0)
|
||||
// + (userhasORDSUP? 4 : 0);
|
||||
|
||||
var has_disc = (disc_key == -1 || disc_key == "" ? false : true); // Kan disc_key ook een string met bes_srtinstallatie_key s bevatten?
|
||||
sql = "SELECT k.bes_kenmerk_key kenmerk_key"
|
||||
+ " , 1 kenmerk_key_count"
|
||||
@@ -123,6 +127,7 @@ function generateFlexKenmerkCode(params)
|
||||
: " , " + lcl.xsql("k.bes_kenmerk_default", "k.bes_kenmerk_key")
|
||||
) + " kenmerk_waarde"
|
||||
+ " , k.bes_kenmerk_volgnummer kenmerk_volgnr"
|
||||
+ " , k.bes_kenmerk_rolcode kenmerk_rolcode"
|
||||
+ " , " + lcl.xsql("sk.bes_srtkenmerk_dimensie", "sk.bes_srtkenmerk_key") + " kenmerk_dimensie"
|
||||
+ " , " + lcl.xsql("k.bes_kenmerk_hint", "k.bes_kenmerk_key") + " kenmerk_hint"
|
||||
+ " , " + lcl.xsql("k.bes_kenmerk_default", "k.bes_kenmerk_key") + " kenmerk_default"
|
||||
@@ -148,7 +153,7 @@ function generateFlexKenmerkCode(params)
|
||||
+ " AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key"
|
||||
+ " AND sk.bes_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND k.bes_kenmerk_type = " + safe.quoted_sql(kenmerktype)
|
||||
+ (!besman? " AND k.bes_kenmerk_volgnummer < 900 " : "")
|
||||
+ (!userhasORDSUP? " AND BITAND(k.bes_kenmerk_rolcode, 7) <> 4 " : "") // het ordsup-bit moet niet als enige (4, 100) gezet zijn
|
||||
+ " ORDER BY k.bes_kenmerk_volgnummer"
|
||||
+ " , UPPER( COALESCE (" + lcl.xsql("k.bes_kenmerk_omschrijving", "k.bes_kenmerk_key")
|
||||
+ " , " + lcl.xsql("sk.bes_srtkenmerk_omschrijving", "sk.bes_srtkenmerk_key") + "))";
|
||||
@@ -171,6 +176,7 @@ function generateFlexKenmerkCode(params)
|
||||
+ " , MIN(kenmerk_systeem ) kenmerk_systeem"
|
||||
+ " , MIN(kenmerk_waarde ) kenmerk_waarde"
|
||||
+ " , MIN(kenmerk_volgnr ) kenmerk_volgnr"
|
||||
+ " , MIN(kenmerk_rolcode ) kenmerk_rolcode"
|
||||
+ " , MIN(kenmerk_groep ) kenmerk_groep"
|
||||
+ " , MIN(kenmerk_dimensie ) kenmerk_dimensie"
|
||||
+ " , MIN(kenmerk_hint ) kenmerk_hint"
|
||||
@@ -187,8 +193,6 @@ function generateFlexKenmerkCode(params)
|
||||
+ " , kenmerk_omschrijving";
|
||||
}
|
||||
|
||||
var trn = 0;
|
||||
|
||||
listKenmerk(sql,
|
||||
"BES",
|
||||
bes_key,
|
||||
|
||||
@@ -74,7 +74,8 @@ oRs.Close();
|
||||
var sql = "SELECT COUNT(*) aantal"
|
||||
+ " FROM bez_kenmerk"
|
||||
+ " WHERE bez_kenmerk_verwijder IS NULL"
|
||||
+ " AND bez_kenmerk_volgnr >= 900";
|
||||
+ " AND BITAND(bez_kenmerk_rolcode,4) = 4";
|
||||
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var hasEditableProperties = (oRs("aantal").Value > 0);
|
||||
oRs.Close();
|
||||
@@ -130,7 +131,7 @@ var alleen_afhandelingskenmerken = (!user.has("WEB_BEZBOF") || ( (S("bez_show_pr
|
||||
var flexfilter = [];
|
||||
if (alleen_afhandelingskenmerken)
|
||||
{
|
||||
flexfilter = ["k.bez_kenmerk_volgnr > 900"];
|
||||
flexfilter = ["BITAND(k.bez_kenmerk_rolcode,4) = 4"];
|
||||
}
|
||||
|
||||
if (!alleen_afhandelingskenmerken && (S("vis_remark") == 1 || S("vis_remark") == 2))
|
||||
|
||||
@@ -16,8 +16,17 @@
|
||||
<%
|
||||
function getSqlBezFlex(bez_key, filter)
|
||||
{
|
||||
var filter = filter || [];
|
||||
return sql = "SELECT k.bez_kenmerk_key kenmerk_key"
|
||||
var filter = filter || [];
|
||||
// het filter geeft optioneel extra condities, voorheen bv op basis van het volgnummer
|
||||
// ik vermoed dat dat eigenlijk niet altijd meer nodig is als we hier de autorisatiecontrole
|
||||
// sowieso doen maar dat laten we nog maar even intact.
|
||||
|
||||
// Wat mag ik op basis van mijn autorisatie (potentieel) zien, bepaal mijn rolcode-masker
|
||||
var myreadrolcode = 0 + (user.has("WEB_BEZUSE") ? 1 : 0)
|
||||
+ (user.has("WEB_BEZFOF") ? 2 : 0)
|
||||
+ (user.has("WEB_BEZBOF") ? 4 : 0);
|
||||
|
||||
var sql = "SELECT k.bez_kenmerk_key kenmerk_key"
|
||||
+ " , 1 kenmerk_key_count"
|
||||
+ " , NULL srtkenmerk_key"
|
||||
+ " , " + lcl.xsql("k.bez_kenmerk_omschrijving", "k.bez_kenmerk_key") + " kenmerk_omschrijving"
|
||||
@@ -40,6 +49,7 @@ function getSqlBezFlex(bez_key, filter)
|
||||
: " , " + lcl.xsql("k.bez_kenmerk_default", "k.bez_kenmerk_key")
|
||||
) + " kenmerk_waarde"
|
||||
+ " , k.bez_kenmerk_volgnr kenmerk_volgnr"
|
||||
+ " , k.bez_kenmerk_rolcode kenmerk_rolcode"
|
||||
+ " , " + lcl.xsql("k.bez_kenmerk_dimensie", "k.bez_kenmerk_key") + " kenmerk_dimensie"
|
||||
+ " , " + lcl.xsql("k.bez_kenmerk_hint", "k.bez_kenmerk_key") + " kenmerk_hint"
|
||||
+ " , " + lcl.xsql("k.bez_kenmerk_default", "k.bez_kenmerk_key") + " kenmerk_default"
|
||||
@@ -53,9 +63,11 @@ function getSqlBezFlex(bez_key, filter)
|
||||
+ " , k.fac_functie_key"
|
||||
+ " FROM bez_kenmerk k "
|
||||
+ " WHERE k.bez_kenmerk_verwijder IS NULL "
|
||||
+ " AND BITAND(bez_kenmerk_rolcode, " + myreadrolcode + ") > 0 "
|
||||
+ (filter.length > 0 ? " AND " + filter.join(" AND ") : "")
|
||||
+ " ORDER BY k.bez_kenmerk_volgnr"
|
||||
+ " , " + lcl.xsql("k.bez_kenmerk_omschrijving", "k.bez_kenmerk_key");
|
||||
return sql;
|
||||
}
|
||||
|
||||
function generateFlexKenmerkCode(params)
|
||||
@@ -74,30 +86,41 @@ function generateFlexKenmerkCode(params)
|
||||
var nolabel = params.nolabel;
|
||||
var tmpfolder = params.tmpfolder;
|
||||
var filter = params.filter;
|
||||
var hidedefault = params.hidedefault; // Afhandelingskenmerken >= 900 met een default waarde hidden maken.
|
||||
var hidedefault = params.hidedefault; // Afhandelingskenmerken >= 900 (rolcode&4) met een default waarde hidden maken.
|
||||
var hasfilter = params.hasfilter? params.hasfilter : null;
|
||||
|
||||
function isReadonly (volgnummer)
|
||||
{ // Backo mag kenmerken < 900 wel zien maar niet wijzigen. Kenmerken > 900 mag hij wel wijzigen.
|
||||
// Zie ook load_kenmerk.asp en bez_edit_bezoekers.inc
|
||||
function isReadonly (oRs)
|
||||
{
|
||||
if (reado)
|
||||
return true
|
||||
else
|
||||
{
|
||||
var backo = !user.has("WEB_BEZFOF");
|
||||
return (ispopup && backo && volgnummer < 900)
|
||||
}
|
||||
return true;
|
||||
|
||||
// Backo mag kenmerken < 900 wel zien maar niet wijzigen.
|
||||
// Kenmerken > 900 mag hij wel wijzigen.
|
||||
// Dus ze worden readonly als ..
|
||||
// Dit kan logischer en beter: het is in feite als ik geen andere rechten heb enzo.
|
||||
//
|
||||
// Ik zou denken: var my_bezrechten = user.func_enabled("BEZ") en dan de SCHRIJFrechten van de verschillende autorisaties
|
||||
// matchen met de kenmerk_rolcode. De bestaande aanpak was echter: als ik geen BEZFOF ben ik dus BEZBOF(-only)
|
||||
// en dan moeten de kenmerken 0xx readonly worden..in de popup.. Enfin, dat stond al in DJIN#37247
|
||||
// De specifieke intentie is hier dan: als je in De Binnenmeld-popup bent (impliceert al BEZBOF)
|
||||
// dan mag je de niet-binnenmeld-kenmerken niet invullen, dus die maak je readonly
|
||||
|
||||
var rolcode = oRs("kenmerk_rolcode").value;
|
||||
|
||||
var backo = !user.has("WEB_BEZFOF") && user.has("WEB_BEZBOF");
|
||||
// dit zou toch genoeg mogen zijn.. var backo = user.has("WEB_BEZBOF");
|
||||
return (ispopup && backo && !(rolcode&4) ) // vroeger volgnummmer < 900
|
||||
}
|
||||
|
||||
function isHidden (volgnummer, defaultval)
|
||||
{ // Afhandelingskenmerken met een default waarde hidden weergeven zodat ze wel opgeslagen worden (kenmerken >= 900 en default is niet null).
|
||||
return (volgnummer >= 900 && defaultval != null);
|
||||
function isHidden (rolcode, defaultval)
|
||||
{
|
||||
// Afhandelingskenmerken met een default waarde hidden opnemen in het scherm
|
||||
// zodat ze wel opgeslagen worden (kenmerken >= 900 en default is niet null).
|
||||
return ((rolcode&4)==4 /*volgnummer >= 900*/ && defaultval != null);
|
||||
}
|
||||
|
||||
var sql = getSqlBezFlex(bez_key, filter);
|
||||
|
||||
var trn = 0;
|
||||
|
||||
listKenmerk(sql,
|
||||
"BEZ", // Module
|
||||
bez_key,
|
||||
@@ -126,5 +149,6 @@ function generateFlexKenmerkCode(params)
|
||||
hasfilter: hasfilter
|
||||
}
|
||||
);
|
||||
} %>
|
||||
}
|
||||
%>
|
||||
|
||||
|
||||
@@ -166,7 +166,7 @@ function bez_list(pautfunction, params)
|
||||
var sql = "SELECT COUNT(*) aantal"
|
||||
+ " FROM bez_kenmerk"
|
||||
+ " WHERE bez_kenmerk_verwijder IS NULL"
|
||||
+ " AND bez_kenmerk_volgnr > 900"
|
||||
+ " AND BITAND(bez_kenmerk_rolcode, 4) = 4" //BEZBOF-kenmerken
|
||||
//+ " AND bez_kenmerk_kenmerktype NOT IN ('F','M','E','X')"
|
||||
+ " AND 1=" + (user.has("WEB_BEZBOF") ? 1 : 0); // alleen backo mag per bezoeker aanmelden.
|
||||
var oRs = Oracle.Execute(sql);
|
||||
|
||||
@@ -44,7 +44,8 @@ var flexfilter = [];
|
||||
var hidedefault = false; // Verberg default afhandelingskenmerken.
|
||||
if (!backo || alleen_afhandelingskenmerken)
|
||||
{
|
||||
flexfilter = ["(k.bez_kenmerk_volgnr < 900 OR (k.bez_kenmerk_volgnr >= 900 AND k.bez_kenmerk_default IS NOT NULL))"];
|
||||
//flexfilter = ["(k.bez_kenmerk_volgnr < 900 OR (k.bez_kenmerk_volgnr >= 900 AND k.bez_kenmerk_default IS NOT NULL))"];
|
||||
flexfilter = ["(BITAND(k.bez_kenmerk_rolcode, 4) = 0 OR (BITAND(k.bez_kenmerk_rolcode,4) = 4 AND k.bez_kenmerk_default IS NOT NULL))"];
|
||||
hidedefault = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,30 +32,24 @@ function getFlexKenmerkCodeSql(params)
|
||||
else
|
||||
var this_cnt = cnt.func_enabled_cnt(disc_key_arr.join(",")); // Disciplines als multi string meegeven.
|
||||
|
||||
function isReadonly (volgnummer, poRs)
|
||||
function isReadonly (oRs)
|
||||
{
|
||||
var isBijlage = inArray(poRs("kenmerk_kenmerktype").Value, ["E", "F", "M"]);
|
||||
var isBijlage = inArray(oRs("kenmerk_kenmerktype").Value, ["E", "F", "M"]);
|
||||
if (params.reado && !(params.mobile && isBijlage))
|
||||
return true;
|
||||
|
||||
if (volgnummer <= 100 && this_cnt.canMANwrite)
|
||||
return false; // die mag je bewerken met CNTMAN
|
||||
|
||||
if (volgnummer >= 100 && this_cnt.canUSEwrite)
|
||||
return false; // die mag je bewerken met CNTUSE
|
||||
|
||||
return true; // blijkbaar toch niet...
|
||||
var rolcode = oRs("kenmerk_rolcode").value;
|
||||
var canWrite = (this_cnt.canMANwrite && (rolcode&1)) || (this_cnt.canUSEwrite && (rolcode&2));
|
||||
return !canWrite; // readonly
|
||||
}
|
||||
|
||||
function isInvisible(volgnummer, ktype) // MGE: In de search mode (overzichtscherm) zien we altijd alle flexkenmerken?? Deze functie wordt dan niet gebruikt.
|
||||
function isInvisible(oRs) // MGE: In de search mode (overzichtscherm) zien we altijd alle flexkenmerken?? Deze functie wordt dan niet gebruikt.
|
||||
{
|
||||
if (volgnummer < 100 && !this_cnt.canMANread)
|
||||
return true; // Invisible
|
||||
|
||||
if (volgnummer > 100 && !this_cnt.canUSEread /* incl readself */)
|
||||
return true; // Invisible
|
||||
|
||||
return false;
|
||||
var rolcode = oRs("kenmerk_rolcode").value;
|
||||
var canRead = ( ((rolcode&1) && this_cnt.canMANread)
|
||||
|| ((rolcode&2) && this_cnt.canUSEread /* incl readself */)
|
||||
)
|
||||
return !canRead; // invisible
|
||||
}
|
||||
|
||||
if (cnt_key > 0)
|
||||
@@ -65,6 +59,10 @@ function getFlexKenmerkCodeSql(params)
|
||||
var disc_key_arr = [loRs("ins_discipline_key").value];
|
||||
}
|
||||
|
||||
// Wat mag ik op basis van mijn autorisatie (potentieel) zien, bepaal mijn rolcode-masker
|
||||
var myreadrolcode = 0 + (this_cnt.canMANread ? 1 : 0)
|
||||
+ (this_cnt.canUSEread ? 2 : 0);
|
||||
|
||||
sql = "SELECT DISTINCT k.cnt_kenmerk_key kenmerk_key"
|
||||
+ " , 1 kenmerk_key_count"
|
||||
+ " , k.cnt_srtkenmerk_key srtkenmerk_key"
|
||||
@@ -89,6 +87,7 @@ function getFlexKenmerkCodeSql(params)
|
||||
: " , " + lcl.xsql("k.cnt_kenmerk_default", "k.cnt_kenmerk_key")
|
||||
) + " kenmerk_waarde"
|
||||
+ " , k.cnt_kenmerk_volgnummer kenmerk_volgnr"
|
||||
+ " , k.cnt_kenmerk_rolcode kenmerk_rolcode"
|
||||
+ " , " + lcl.xsql("t.cnt_srtkenmerk_dimensie", "t.cnt_srtkenmerk_key") + " kenmerk_dimensie"
|
||||
+ " , " + lcl.xsql("k.cnt_kenmerk_hint", "k.cnt_kenmerk_key") + " kenmerk_hint"
|
||||
+ " , " + lcl.xsql("k.cnt_kenmerk_default", "k.cnt_kenmerk_key") + " kenmerk_default"
|
||||
@@ -107,21 +106,19 @@ function getFlexKenmerkCodeSql(params)
|
||||
+ " AND k.cnt_kenmerk_verwijder IS NULL"
|
||||
+ " AND k.cnt_srtkenmerk_key = t.cnt_srtkenmerk_key"
|
||||
+ " AND t.cnt_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND BITAND(k.cnt_kenmerk_rolcode, " + myreadrolcode + ") > 0 "
|
||||
+ (disc_key_arr.length > 0
|
||||
? " AND (s.ins_discipline_key IN (" + disc_key_arr.join(",") + ") OR s.ins_discipline_key IS NULL)"
|
||||
: "")
|
||||
+ (!this_cnt.canMANread
|
||||
? " AND cnt_kenmerk_volgnummer >= 100"
|
||||
: "")
|
||||
+ (!this_cnt.canUSEread
|
||||
? " AND cnt_kenmerk_volgnummer <= 100"
|
||||
: "")
|
||||
+ (multiEdit
|
||||
? " AND t.cnt_srtkenmerk_kenmerktype NOT IN ('Q','L','l','F','M','E','X')"
|
||||
: "")
|
||||
+ ( (params.kenmerk_keys && params.kenmerk_keys.length) // Specifieke kenmerk_keys opgevraagd?
|
||||
? " AND k.cnt_kenmerk_key IN (" + params.kenmerk_keys.join(",") + ")"
|
||||
: "");
|
||||
: "")
|
||||
+ " ORDER BY k.cnt_kenmerk_volgnummer"
|
||||
+ " , UPPER( COALESCE (" + lcl.xsql("k.cnt_kenmerk_omschrijving", "k.cnt_kenmerk_key")
|
||||
+ " , " + lcl.xsql("t.cnt_srtkenmerk_omschrijving", "t.cnt_srtkenmerk_key") + "))";
|
||||
|
||||
if (advanced) // Nog harder de dubbelen er uit filteren. Een kenmerk kan bijvoorbeeld bij verschillende
|
||||
{ // objectsoorten een ander volgnummer hebben en dat interesseert ons echt niet.
|
||||
@@ -138,6 +135,7 @@ function getFlexKenmerkCodeSql(params)
|
||||
+ " , MIN(kenmerk_systeem ) kenmerk_systeem"
|
||||
+ " , MIN(kenmerk_waarde ) kenmerk_waarde"
|
||||
+ " , MIN(kenmerk_volgnr ) kenmerk_volgnr"
|
||||
+ " , MIN(kenmerk_rolcode ) kenmerk_rolcode"
|
||||
+ " , MIN(kenmerk_dimensie ) kenmerk_dimensie"
|
||||
+ " , MIN(kenmerk_hint ) kenmerk_hint"
|
||||
+ " , MIN(kenmerk_default ) kenmerk_default"
|
||||
@@ -155,16 +153,8 @@ function getFlexKenmerkCodeSql(params)
|
||||
+ " ORDER BY kenmerk_volgnr"
|
||||
+ " , UPPER (kenmerk_omschrijving)"
|
||||
}
|
||||
else
|
||||
{
|
||||
sql += " ORDER BY k.cnt_kenmerk_volgnummer"
|
||||
+ " , UPPER( COALESCE (" + lcl.xsql("k.cnt_kenmerk_omschrijving", "k.cnt_kenmerk_key")
|
||||
+ " , " + lcl.xsql("t.cnt_srtkenmerk_omschrijving", "t.cnt_srtkenmerk_key") + "))";
|
||||
}
|
||||
|
||||
|
||||
var trn = 0;
|
||||
|
||||
listkenmerk_params = { kenmerk_search: advanced
|
||||
, hideVervallen: cnt_key<0
|
||||
, fnIsReadonly: isReadonly
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
Betere layout, altijd een invulveld
|
||||
Parameters: cnt_key (altijd verplicht hier)
|
||||
|
||||
Note: Nu kan iedereen hier zijn, FE of FOBO. FE mag de interne notes niet zien, let daarop.
|
||||
|
||||
*/
|
||||
|
||||
var cnt_key = getQParamInt("cnt_key"); // Altijd verplicht cnt_key.
|
||||
@@ -38,6 +36,11 @@ var afgehandeld = cnt_info.contract_status == 1;
|
||||
var kenmerk_key = -1;
|
||||
if (cnt_key > 0)
|
||||
{
|
||||
// Als ik canReadNotes heb dan heb ik canUSEread en/of canMANread rechten.
|
||||
// Wat mag ik op basis van mijn autorisatie (potentieel) zien, bepaal mijn rolcode-masker
|
||||
var myreadrolcode = 0 + (this_cnt.canMANread ? 1 : 0)
|
||||
+ (this_cnt.canUSEread ? 2 : 0);
|
||||
|
||||
// Is er een bijlage kenmerk?
|
||||
var sql = "SELECT k.cnt_kenmerk_key"
|
||||
+ " FROM cnt_srtkenmerk t"
|
||||
@@ -49,13 +52,7 @@ if (cnt_key > 0)
|
||||
+ " AND k.cnt_kenmerk_verwijder IS NULL"
|
||||
+ " AND t.cnt_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND c.cnt_contract_key = " + cnt_key
|
||||
// Als ik canReadNotes heb dan heb ik canUSEread en/of canMANread rechten.
|
||||
+ (!this_cnt.canMANread
|
||||
? " AND k.cnt_kenmerk_volgnummer >= 100"
|
||||
: "")
|
||||
+ (!this_cnt.canUSEread
|
||||
? " AND k.cnt_kenmerk_volgnummer <= 100"
|
||||
: "")
|
||||
+ " AND BITAND(k.cnt_kenmerk_rolcode, " + myreadrolcode + ") > 0 "
|
||||
+ " AND (k.cnt_kenmerk_verplicht IS NULL"
|
||||
+ " OR k.cnt_kenmerk_verplicht = 0)"
|
||||
+ " AND t.cnt_srtkenmerk_kenmerktype = 'M'"
|
||||
@@ -73,7 +70,7 @@ if (cnt_key > 0)
|
||||
var upload_url = protectQS.create("../Shared/BijlagenForm.asp?module=CNT&multi=1&key=" + cnt_key + "&kenmerk_key=" + kenmerk_key);
|
||||
}
|
||||
|
||||
notes.show_note2("CNT", cnt_key, kenmerk_key, this_cnt, afgehandeld, upload_url);
|
||||
notes.show_note2("CNT", cnt_key, kenmerk_key, this_cnt, afgehandeld, upload_url);
|
||||
|
||||
%>
|
||||
<% ASPPAGE_END(); %>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
File: FAC/faq_flexkenmerk.inc
|
||||
Description: Functie die html code genereert voor de presentatie van de flexvelden
|
||||
Parameters: urole Rol van de gebruiker (frontend, frontoffice, backoffice, management info)
|
||||
Parameters:
|
||||
faq_key FAQnummer
|
||||
reado Readonly
|
||||
advanced Geadvanceerd
|
||||
@@ -13,13 +13,13 @@
|
||||
1) load_kenmerk.asp
|
||||
2) fac_faq_show.asp die initieel serverside deze html code invoegd.
|
||||
3) fac_faq_edit.asp die initieel serverside deze html code invoegd.
|
||||
Note:
|
||||
|
||||
*/ %>
|
||||
<!-- #include file="../Shared/kenmerk_common.inc" -->
|
||||
<%
|
||||
function generateFlexKenmerkCode(params)
|
||||
{
|
||||
function isReadonly (volgnummer)
|
||||
function isReadonly (oRs)
|
||||
{
|
||||
return reado;
|
||||
}
|
||||
@@ -61,6 +61,7 @@ function generateFlexKenmerkCode(params)
|
||||
: " , " + lcl.xsql("k.faq_kenmerk_default", "k.faq_kenmerk_key")
|
||||
) + " kenmerk_waarde"
|
||||
+ " , k.faq_kenmerk_volgnr kenmerk_volgnr"
|
||||
+ " , k.faq_kenmerk_rolcode kenmerk_rolcode"
|
||||
+ " , " + lcl.xsql("k.faq_kenmerk_dimensie", "k.faq_kenmerk_key") + " kenmerk_dimensie"
|
||||
+ " , " + lcl.xsql("k.faq_kenmerk_hint", "k.faq_kenmerk_key") + " kenmerk_hint"
|
||||
+ " , " + lcl.xsql("k.faq_kenmerk_default", "k.faq_kenmerk_key") + " kenmerk_default"
|
||||
@@ -99,4 +100,3 @@ function generateFlexKenmerkCode(params)
|
||||
}
|
||||
);
|
||||
} %>
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
File: FIN/fin_flexkenmerk.inc
|
||||
Description: Functie die html code genereert voor de presentatie van de flexvelden
|
||||
Parameters: urole Rol van de gebruiker (frontend, frontoffice, backoffice, management info)
|
||||
Parameters:
|
||||
fin_key Factuurnummer
|
||||
reado Readonly
|
||||
advanced Geadvanceerd
|
||||
@@ -12,6 +12,7 @@
|
||||
Context: Functie wordt aangeroepen door
|
||||
1) load_kenmerk.asp
|
||||
2) fin_edit.asp die initieel serverside deze html code invoegd.
|
||||
en nog een paar
|
||||
Note:
|
||||
*/ %>
|
||||
<!-- #include file="../Shared/kenmerk_common.inc" -->
|
||||
@@ -31,9 +32,9 @@ function generateFlexKenmerkCode(params)
|
||||
var inline = params.inline || false;
|
||||
var hasfilter = params.hasfilter? params.hasfilter : null;
|
||||
|
||||
function isReadonly (volgnummer, poRs)
|
||||
function isReadonly (oRs)
|
||||
{
|
||||
var isBijlage = inArray(poRs("kenmerk_kenmerktype").Value, ["E", "F", "M"]);
|
||||
var isBijlage = inArray(oRs("kenmerk_kenmerktype").Value, ["E", "F", "M"]);
|
||||
return reado && !(params.mobile && isBijlage);
|
||||
}
|
||||
|
||||
@@ -85,6 +86,7 @@ function generateFlexKenmerkCode(params)
|
||||
+ " , k.fin_kenmerk_systeem kenmerk_systeem"
|
||||
+ " , " + kenmerkwaarde + " kenmerk_waarde"
|
||||
+ " , k.fin_kenmerk_volgnr kenmerk_volgnr"
|
||||
+ " , k.fin_kenmerk_rolcode kenmerk_rolcode"
|
||||
+ " , " + lcl.xsql("k.fin_kenmerk_dimensie", "k.fin_kenmerk_key") + " kenmerk_dimensie"
|
||||
+ " , " + lcl.xsql("k.fin_kenmerk_hint", "k.fin_kenmerk_key") + " kenmerk_hint"
|
||||
+ " , " + lcl.xsql("k.fin_kenmerk_default", "k.fin_kenmerk_key") + " kenmerk_default"
|
||||
@@ -105,8 +107,6 @@ function generateFlexKenmerkCode(params)
|
||||
+ " ORDER BY k.fin_kenmerk_volgnr"
|
||||
+ " , UPPER(" + lcl.xsql("k.fin_kenmerk_omschrijving", "k.fin_kenmerk_key") + ")";
|
||||
|
||||
var trn = 0;
|
||||
|
||||
listKenmerk(sql,
|
||||
"FIN",
|
||||
(kenmerk_niveau == "F"? fin_key : regel_key),
|
||||
|
||||
@@ -113,28 +113,24 @@ function generateFlexKenmerkBlock(params)
|
||||
srtdeelkey_array = [oRs("ins_srtdeel_key").Value];
|
||||
}
|
||||
|
||||
function isReadonly (volgnummer, oRs)
|
||||
{ // Zonder WEB_INSMAN of WEB_SLEBOF rechten zijn flexkenmerken met volgnummer <= 100 readonly.
|
||||
if (volgnummer <= 100 && ins_key > 0 && !writeman && !writeslebof && !this_ins.canChangeOwn)
|
||||
return true;
|
||||
function isReadonly (oRs)
|
||||
{
|
||||
var rolcode = oRs("kenmerk_rolcode").value;
|
||||
|
||||
if (volgnummer >= 900 && lendout && fronto) // Fronto mag uitleenkenmerken altijd bewerken
|
||||
return oRs("ins_kenmerk_toonbaar").Value == 1;
|
||||
|
||||
// Zonder WEB_INSUSE of WEB_SLEBOF rechten zijn flexkenmerken met volgnummer >= 100 && volgnummer <= 900 readonly.
|
||||
if (volgnummer >= 100 && volgnummer <= 900 && ins_key > 0 && !writeuse && !writeslebof)
|
||||
return true;
|
||||
|
||||
// Zonder WEB_INSFOF of WEB_SLEFOF rechten zijn flexkenmerken met volgnummer >= 900 readonly.
|
||||
if (volgnummer >= 900 && ins_key > 0 && !writefof && !writeslefof)
|
||||
return true;
|
||||
|
||||
// Bij het bewerken van ins_delen en als het bewerk niveau van het flexkenmerk objectsoort ("S") is dan dit flexkenmerk readonly weergeven (ook in edit mode)
|
||||
if (bewerkniveau == 'D' && oRs("bewerk_niveau").Value != 'D')
|
||||
return true; // readonly
|
||||
// Je mag een kennmerk wijzigen als je de juiste autorisatie voor die categorie hebt: MAN/USE/FOF voor beheer, beheer en uitlenen
|
||||
// Tijdens uitlenen (fronto) mag je uitleenkenmerken altijd bewerken
|
||||
// Flexkenmerken van het objectSOORT ("S") mag je niet muteren bij het bewerken van een object
|
||||
// dan dus dit flexkenmerk readonly weergeven (zelfs in edit mode)
|
||||
|
||||
var canWrite = ( ((rolcode&1) && (writeman || writeslebof || (ins_key > 0 && this_ins.canChangeOwn)))
|
||||
|| ((rolcode&2) && (writeuse || writeslebof )) // check die changeown nog ff
|
||||
|| ((rolcode&4) && (writefof || writeslefof || (lendout && fronto && oRs("ins_kenmerk_toonbaar").Value == 1)))
|
||||
|| ((rolcode&4) && (writefof || writeslefof ))
|
||||
|| (bewerkniveau == "D" && oRs("bewerk_niveau").Value == "D")
|
||||
);
|
||||
|
||||
var isBijlage = inArray(oRs("kenmerk_kenmerktype").Value, ["E", "F", "M"]);
|
||||
return reado && !(mobile && isBijlage);
|
||||
return (reado && !(mobile && isBijlage)) || !canWrite;
|
||||
}
|
||||
|
||||
var isLendOut = false;
|
||||
@@ -231,6 +227,7 @@ function generateFlexKenmerkBlock(params)
|
||||
? "k.ins_kenmerk_default"
|
||||
: "''")) + " kenmerk_waarde"
|
||||
+ " , k.ins_kenmerk_volgnummer kenmerk_volgnr"
|
||||
+ " , k.ins_kenmerk_rolcode kenmerk_rolcode"
|
||||
+ " , " + lcl.xsql("t.ins_srtkenmerk_dimensie", "t.ins_srtkenmerk_key") + " kenmerk_dimensie"
|
||||
+ " , k.ins_kenmerk_hint kenmerk_hint"
|
||||
+ " , k.ins_kenmerk_default kenmerk_default"
|
||||
@@ -239,7 +236,7 @@ function generateFlexKenmerkBlock(params)
|
||||
+ " , k.ins_kenmerk_groep kenmerk_groep"
|
||||
+ " , NULL otherpath"
|
||||
+ (!fronto && !advanced // als niet fronto dan uitleenkenmerken altijd readonly. Maar advanced zoeken is natuurlijk nooit readonly
|
||||
? " , CASE WHEN (k.ins_kenmerk_volgnummer >= 900 OR ins_kenmerk_toonbaar = 1) AND"
|
||||
? " , CASE WHEN (BITAND (k.ins_kenmerk_rolcode,4) = 4 OR ins_kenmerk_toonbaar = 1) AND" //TODONE uitzoeken
|
||||
+ " (k.ins_kenmerk_default NOT LIKE '%##EXPR##%' OR k.ins_kenmerk_default IS NULL)"
|
||||
+ " THEN 1" // readonly (lege waarden niet zichtbaar)
|
||||
+ " ELSE 0"
|
||||
@@ -348,6 +345,7 @@ function generateFlexKenmerkBlock(params)
|
||||
+ " , MIN(kenmerk_systeem ) kenmerk_systeem"
|
||||
+ " , MIN(kenmerk_waarde ) kenmerk_waarde"
|
||||
+ " , MIN(kenmerk_volgnr ) kenmerk_volgnr"
|
||||
+ " , MIN(kenmerk_rolcode ) kenmerk_rolcode"
|
||||
+ " , MIN(kenmerk_dimensie ) kenmerk_dimensie"
|
||||
+ " , MIN(kenmerk_hint ) kenmerk_hint"
|
||||
+ " , MIN(kenmerk_default ) kenmerk_default"
|
||||
@@ -373,18 +371,19 @@ function generateFlexKenmerkBlock(params)
|
||||
+ " , " + lcl.xsql("t.ins_srtkenmerk_omschrijving", "t.ins_srtkenmerk_key") + "))";
|
||||
}
|
||||
|
||||
function isInvisible(volgnummer, ktype)
|
||||
function isInvisible(oRs)
|
||||
{
|
||||
var ktype = oRs("kenmerk_kenmerktype").value;
|
||||
// allow ktype 'F' (file), for instance for signature
|
||||
if (params.multi)
|
||||
return (ktype == 'M' || ktype == 'E'); // onzichtbaar bij multi
|
||||
}
|
||||
|
||||
function isHidden(volgnummer, ktype)
|
||||
function isHidden(rolcode, ktype)
|
||||
{
|
||||
// Bij het uitlenen/innemen (lendout) moeten de kenmerken <900 wel aanwezig maar hidden zijn,
|
||||
// omdat de expressie kenmerken >=900 die afhankelijk zijn van kenmerken <900 wel berekend moeten kunnen worden.
|
||||
if (lendout && volgnummer < 900)
|
||||
// Bij het uitlenen/innemen (lendout) moeten de kenmerken "<900" (rolcode 0xx) wel aanwezig maar hidden zijn,
|
||||
// omdat de expressie kenmerken ">=900" (rolcode 1xx) die afhankelijk zijn van die kenmerken wel berekend moeten kunnen worden.
|
||||
if (lendout && (rolcode&4) == 0)
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -75,6 +75,7 @@ function generateFlexKenmerkBlock(params)
|
||||
" ''")
|
||||
) + " kenmerk_waarde"
|
||||
+ " , k.ins_kenmerk_volgnummer kenmerk_volgnr"
|
||||
+ " , k.ins_kenmerk_rolcode kenmerk_rolcode"
|
||||
+ " , " + lcl.xsql("t.ins_srtkenmerk_dimensie", "t.ins_srtkenmerk_key") + " kenmerk_dimensie"
|
||||
+ " , k.ins_kenmerk_hint kenmerk_hint"
|
||||
+ " , k.ins_kenmerk_default kenmerk_default"
|
||||
@@ -120,7 +121,7 @@ function generateFlexKenmerkBlock(params)
|
||||
+ " , UPPER( COALESCE (" + lcl.xsql("k.ins_kenmerk_omschrijving", "k.ins_kenmerk_key")
|
||||
+ " , " + lcl.xsql("t.ins_srtkenmerk_omschrijving", "t.ins_srtkenmerk_key") + "))";
|
||||
|
||||
function isReadonly (volgnummer)
|
||||
function isReadonly (oRs)
|
||||
{
|
||||
return reado;
|
||||
}
|
||||
|
||||
@@ -70,8 +70,8 @@ scaffolding(this_model,
|
||||
"fields": [
|
||||
"id",
|
||||
"contractpropertytype",
|
||||
"attributetypehide", // die zouden we overal wel willen
|
||||
"contractpropertydesc",
|
||||
"attributetypehide",
|
||||
"contractdiscipline",
|
||||
"rolecode",
|
||||
"group",
|
||||
|
||||
@@ -222,8 +222,7 @@ var model_params = {
|
||||
"readonly",
|
||||
"inlist",
|
||||
"measurement",
|
||||
"clear", // voor uitgifte/inname
|
||||
"location" // uitleg?
|
||||
"clear" // voor uitgifte/inname
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -80,9 +80,9 @@ function level_LOV()
|
||||
+ ";O;" + L("lcl_mld_typeopdr");
|
||||
else
|
||||
v_level = "A;" + L("mld_srtdiscipline_m_all")
|
||||
+ ";S;" + L("lcl_complain")
|
||||
+ ";T;" + L("lcl_mld_vakgroeptype")
|
||||
+ ";D;" + L("lcl_mld_vakgroep")
|
||||
+ ";T;" + L("lcl_mld_vakgroeptype");
|
||||
+ ";S;" + L("lcl_complain");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -97,9 +97,9 @@ function level_LOV()
|
||||
default: v_level = "P;" + L("lcl_mld_opdr_all")
|
||||
+ ";O;" + L("lcl_mld_typeopdr")
|
||||
+ ";A;" + L("mld_srtdiscipline_m_all")
|
||||
+ ";S;" + L("lcl_complain")
|
||||
+ ";T;" + L("lcl_mld_vakgroeptype")
|
||||
+ ";D;" + L("lcl_mld_vakgroep")
|
||||
+ ";T;" + L("lcl_mld_vakgroeptype");
|
||||
+ ";S;" + L("lcl_complain");
|
||||
}
|
||||
}
|
||||
return v_level;
|
||||
@@ -107,7 +107,7 @@ function level_LOV()
|
||||
|
||||
var model_params = {
|
||||
"search": {
|
||||
"autosearch": false,
|
||||
"autosearch": false, // bewust, dit is de enige, want het zijn er vaak veel en het zoekblok ben je dan steeds kwijt
|
||||
"filters": [
|
||||
"objectpropertydesc",
|
||||
(isOpdrachtKenmerk ? "issuepropertytype" : "issuepropertytypename"),
|
||||
@@ -128,7 +128,7 @@ var model_params = {
|
||||
"js": ["./mld_kenmerk.js"]
|
||||
}
|
||||
},
|
||||
"list": { /* wordt voor opdrachten vererop overruled */
|
||||
"list": { /* wordt voor opdrachten verderop overruled */
|
||||
"columns": [
|
||||
//"id",
|
||||
"disciplinetype",
|
||||
@@ -138,13 +138,13 @@ var model_params = {
|
||||
"issuepropertytype",
|
||||
"objectpropertydesc",
|
||||
"rolecode",
|
||||
"group",
|
||||
"required",
|
||||
"attributetype",
|
||||
//"group",
|
||||
//"required",
|
||||
//"level",
|
||||
"authorization",
|
||||
"code",
|
||||
"filled",
|
||||
"authorization",
|
||||
"id"
|
||||
],
|
||||
"orderby": [
|
||||
@@ -175,6 +175,7 @@ var model_params = {
|
||||
"fields": [
|
||||
"id",
|
||||
"issuepropertytype",
|
||||
"attributetype", // wordt schijnbaar niet (altijd) getoond
|
||||
"objectpropertydesc",
|
||||
"level",
|
||||
"disciplinetype",
|
||||
@@ -188,7 +189,6 @@ var model_params = {
|
||||
"hint",
|
||||
"regexp",
|
||||
"code",
|
||||
"attributetype",
|
||||
"treatmentteam"
|
||||
]
|
||||
},
|
||||
|
||||
@@ -8,7 +8,7 @@ var niveau = getQParam("level"); // [ B | A | P | C ]
|
||||
|
||||
var this_model = new model_prs_kenmerk(niveau);
|
||||
|
||||
scaffolding(this_model,
|
||||
var model_params =
|
||||
{
|
||||
"search": {
|
||||
"autosearch": true,
|
||||
@@ -51,14 +51,14 @@ scaffolding(this_model,
|
||||
"id",
|
||||
"name",
|
||||
"level",
|
||||
"position", // bij perslid de optionele srtperslid, zou graag iets van Alle functies tonen igv NULL -- TODO help
|
||||
"rolecode",
|
||||
"group",
|
||||
"sequence",
|
||||
"propertydefault",
|
||||
"hint",
|
||||
"regexp",
|
||||
"code",
|
||||
"position" // TODO check wat dit is
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -100,6 +100,14 @@ scaffolding(this_model,
|
||||
"transit": {
|
||||
"level": niveau
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Bij personen is er een functieafhankelijkheid
|
||||
if (niveau == 'P')
|
||||
{
|
||||
model_params.list.columns.splice(0, 0, "position");
|
||||
}
|
||||
|
||||
scaffolding(this_model, model_params);
|
||||
%>
|
||||
<% ASPPAGE_END(); %>
|
||||
|
||||
@@ -74,7 +74,6 @@ var model_params = {
|
||||
]
|
||||
},
|
||||
"edit": {
|
||||
"modal": true,
|
||||
"requires": {
|
||||
"js": ["./res_kenmerk.js"]
|
||||
}
|
||||
|
||||
@@ -1547,7 +1547,8 @@ mld = {
|
||||
+ " AND k_new.mld_kenmerk_verwijder IS NULL"
|
||||
+ " AND t_old.mld_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND t_new.mld_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND k_new.mld_kenmerk_volgnummer > 0"
|
||||
+ " AND k_new.mld_kenmerk_rolcode > 0" // hetzelfde als BITAND(k_new.mld_kenmerk_rolcode, 255) > 0
|
||||
//+ " AND k_new.mld_kenmerk_volgnummer > 0"
|
||||
+ " AND k_old.mld_kenmerk_groep = k_new.mld_kenmerk_groep"
|
||||
+ " AND ((k_old.mld_kenmerk_niveau = 'A' AND k_new.mld_kenmerk_niveau = 'A')"
|
||||
+ " OR (k_old.mld_kenmerk_niveau NOT IN ('A') AND k_new.mld_kenmerk_niveau NOT IN ('A')))"
|
||||
@@ -7701,6 +7702,7 @@ mld = {
|
||||
var sql = "SELECT mkm.mld_kenmerk_key"
|
||||
+ " , mkm.mld_kenmerk_niveau"
|
||||
+ " , mkm.mld_kenmerk_volgnummer"
|
||||
+ " , mkm.mld_kenmerk_rolcode"
|
||||
+ " , COALESCE (" + lcl.xsql("mkm.mld_kenmerk_omschrijving", "mkm.mld_kenmerk_key")
|
||||
+ " , " + lcl.xsql("msk.mld_srtkenmerk_omschrijving", "msk.mld_srtkenmerk_key") + ") mld_kenmerk_omschrijving"
|
||||
+ " , msk.mld_srtkenmerk_kenmerktype"
|
||||
|
||||
@@ -1271,8 +1271,7 @@ for (var u = 0; u < uitvkeyArray.length; u++)
|
||||
+ " AND k.mld_srtkenmerk_key = t.mld_srtkenmerk_key"
|
||||
+ " AND t.mld_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND t.mld_srtkenmerk_kenmerktype <> 'M'"
|
||||
+ " AND (k.mld_kenmerk_volgnummer <= 100"
|
||||
+ " OR k.mld_kenmerk_volgnummer >= 900)" // Alleen bij of na afmelden mogen afmeld-kenmerken tussen de 100..900
|
||||
+ " AND DECODE(k.mld_kenmerk_rolcode, 5) > 0" // afmeld-only kenmerken (010) uitsluiten, dus x0x
|
||||
+ " AND " + sql_kenmerkwaarde + " IS NOT NULL";
|
||||
var sql_insert = "INSERT INTO mld_kenmerkopdr (mld_opdr_key"
|
||||
+ " , mld_kenmerk_key"
|
||||
@@ -1314,8 +1313,9 @@ for (var u = 0; u < uitvkeyArray.length; u++)
|
||||
+ " AND k.mld_srtkenmerk_key = t.mld_srtkenmerk_key"
|
||||
+ " AND t.mld_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND t.mld_srtkenmerk_kenmerktype <> 'M'"
|
||||
+ " AND (k.mld_kenmerk_volgnummer <= 100"
|
||||
+ " OR k.mld_kenmerk_volgnummer >= 900)" // Alleen bij of na afmelden mogen afmeld-kenmerken tussen de 100..900
|
||||
+ " AND DECODE(k.mld_kenmerk_rolcode, 5) > 0" // afmeld-only kenmerken (010) uitsluiten, dus x0x
|
||||
//+ " AND (k.mld_kenmerk_volgnummer <= 100"
|
||||
//+ " OR k.mld_kenmerk_volgnummer >= 900)" // Alleen bij of na afmelden mogen afmeld-kenmerken tussen de 100..900
|
||||
+ " AND " + sql_kenmerkwaarde + " IS NOT NULL"
|
||||
+ " ORDER BY mld_kenmerk_volgnummer";
|
||||
Oracle.Execute(sql_kenmwaarden);
|
||||
|
||||
@@ -52,9 +52,9 @@ function getFlexKenmerkBlockSql(params)
|
||||
var hasfilter = params.hasfilter? params.hasfilter : null;
|
||||
var multiEdit = params.multiEdit? params.multiEdit : false;
|
||||
|
||||
// opdrman true betekent: user mag opdracht flexkenmerken > 900 zien/editen
|
||||
var authparamsORDSUP = user.checkAutorisation("WEB_ORDSUP", true);
|
||||
var opdrman = authparamsORDSUP && (authparamsORDSUP.PRSreadlevel < 9 || authparamsORDSUP.PRSwritelevel < 9 || authparamsORDSUP.ALGreadlevel < 9 || authparamsORDSUP.ALGwritelevel < 9)
|
||||
// userhasORDSUP true betekent: user mag opdracht flexkenmerken rolcode 4 (voorheen > 900) zien/editen
|
||||
var userhasORDSUP = user.has("WEB_ORDSUP");
|
||||
|
||||
|
||||
var mld_status = -1;
|
||||
if (mld_key > 0)
|
||||
@@ -455,7 +455,7 @@ function getFlexKenmerkBlockSql(params)
|
||||
(mld_key == -1
|
||||
// Nieuwe melding.
|
||||
// Waarde behandelblok voor nieuwe melding (mld_key == -1)
|
||||
// 0) Kenmerk valt niet onder een behandelbaar blok: Afhankelijk van pvolgnummer.
|
||||
// 0) Kenmerk valt niet onder een behandelbaar blok: Afhankelijk van pvolgnummer. TODO nagaan
|
||||
// 3) Geen behandelteam ingevuld (default geen invloed): Afhankelijk van rechten.
|
||||
? " CASE"
|
||||
+ " WHEN t.mld_srtkenmerk_kenmerktype != 'b'"
|
||||
@@ -465,7 +465,7 @@ function getFlexKenmerkBlockSql(params)
|
||||
: ((changeMelding || newMelding) && afd_key > 0)
|
||||
? " CASE"
|
||||
// Waarde behandelblok voor beataande melding (mld_key > 0)
|
||||
// 0) Kenmerk valt niet onder een behandelbaar blok: Afhankelijk van pvolgnummer.
|
||||
// 0) Kenmerk valt niet onder een behandelbaar blok: Afhankelijk van pvolgnummer. TODO nagaan
|
||||
// 1) Behandelteam ingevuld en user zit in het team: Blok altijd tonen.
|
||||
// 2) Behandelteam ingevuld en user zit NIET in het team: Blok niet tonen.
|
||||
// 3) Geen behandelteam ingevuld: Afhankelijk van rechten.
|
||||
@@ -497,6 +497,7 @@ function getFlexKenmerkBlockSql(params)
|
||||
+ " , t.mld_srtkenmerk_systeem kenmerk_systeem"
|
||||
+ " , " + sql_waarde + " kenmerk_waarde"
|
||||
+ " , k.mld_kenmerk_volgnummer kenmerk_volgnr"
|
||||
+ " , k.mld_kenmerk_rolcode kenmerk_rolcode"
|
||||
+ " , k.mld_kenmerk_groep kenmerk_groep"
|
||||
+ " , " + lcl.xsql("t.mld_srtkenmerk_dimensie", "t.mld_srtkenmerk_key") + " kenmerk_dimensie"
|
||||
+ " , " + lcl.xsql("k.mld_kenmerk_hint", "k.mld_kenmerk_key") + " kenmerk_hint"
|
||||
@@ -577,19 +578,27 @@ function getFlexKenmerkBlockSql(params)
|
||||
+ " )";
|
||||
|
||||
var sql1 = "";
|
||||
|
||||
if (changeOpdracht || newOpdracht || advancedOpdracht || advancedNoOpdrtype)
|
||||
{
|
||||
// PF/MGE 29-09-09: Ook bij nieuw opdrachten mag ik afmeld-kenmerken tussen de 100..900 niet zien
|
||||
if ((showClose || (opdr_status == 6 || opdr_status == 7)) && changeOpdracht && !copy)
|
||||
{ // dan wil ik ze wel zien
|
||||
// ** FLEXKENMERKEN VAN OPDRACHT **
|
||||
// PF/MGE 29-09-09: Ook bij nieuwe opdrachten mag ik afmeld-kenmerken tussen de 100..900 niet zien
|
||||
if ((showClose || opdr_status == 6 || opdr_status == 7) && changeOpdracht && !copy)
|
||||
{
|
||||
// dan wil ik ze wel zien
|
||||
}
|
||||
else
|
||||
{ // Alleen bij of na afmelden mogen afmeld-kenmerken tussen de 100..900
|
||||
sql1 = " AND (k.mld_kenmerk_volgnummer <= 100 OR k.mld_kenmerk_volgnummer >= 900)";
|
||||
{
|
||||
// Alleen bij of na afmelden mogen afmeld-kenmerken tussen de 100..900 dus hier niet
|
||||
//sql1 = " AND (k.mld_kenmerk_volgnummer <= 100 OR k.mld_kenmerk_volgnummer >= 900)";
|
||||
sql1 = " AND BITAND(k.mld_kenmerk_rolcode, 7) <> 2"; // niet alleen afmeld/ORDBOF (2, 010)
|
||||
}
|
||||
// Alleen met opdrman rechten mag ik opdracht flexkenmerken boven de 900 zien
|
||||
if (!opdrman)
|
||||
sql1 += " AND k.mld_kenmerk_volgnummer <= 900";
|
||||
// Alleen met userhasORDSUP mag ik opdrachtflexkenmerken (boven de 900) voor ORDSUP zien,
|
||||
// dus als ik dat niet heb, kan ik die wegfilteren
|
||||
if (!userhasORDSUP)
|
||||
//sql1 += " AND k.mld_kenmerk_volgnummer <= 900";
|
||||
sql1 = " AND BITAND(k.mld_kenmerk_rolcode, 7) <> 4"; // niet alleen afmeld/ORDBOF (4, 100)
|
||||
|
||||
if (close || cancel)
|
||||
{
|
||||
var arrGroep = [];
|
||||
@@ -615,7 +624,8 @@ function getFlexKenmerkBlockSql(params)
|
||||
+ (arrGroep.length? " OR k.mld_kenmerk_groep IN (" + arrGroep.join(",") + "))" : ")")
|
||||
+ " AND " + sql_waarde + " IS NULL"
|
||||
+ (close && S("mld_afmelden_popup_for_all_km") == 1 ? // Tenzij bijlages optioneel zijn bij het opslaan
|
||||
" OR (k.mld_kenmerk_volgnummer >= 100 AND k.mld_kenmerk_volgnummer <= 900)" : "")
|
||||
//" OR (k.mld_kenmerk_volgnummer >= 100 AND k.mld_kenmerk_volgnummer <= 900)" : "")
|
||||
" OR BITAND(k.mld_kenmerk_rolcode, 2) > 0" : "") // x1x
|
||||
+")";
|
||||
}
|
||||
|
||||
@@ -629,14 +639,24 @@ function getFlexKenmerkBlockSql(params)
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // changeMelding || newMelding || advancedMelding
|
||||
// Alleen met mldbof rechten mag ik melding flexkenmerken boven de 900 zien. New feature 02-02-2010
|
||||
if (!my_mldrechten.canRead("WEB_MLDBOF")) {
|
||||
if (my_mldrechten.canChangeKenmerkBlok) {
|
||||
sql1 += " AND ( " + behandelblok_select + " <> 0" // Bewerk-, en zichtbaarheid van behandelblokken regelen we in resp. isReadonly & isInvisible
|
||||
+ " OR k.mld_kenmerk_volgnummer <= 900)";
|
||||
{
|
||||
// ** FLEXKENMERKEN VAN MELDING **
|
||||
// changeMelding || newMelding || advancedMelding
|
||||
|
||||
// Hier worden conditities toegevoegd om kenmerken die ik op grond van autorisatie niet mag zien (laat staan editen)
|
||||
// helemaal achterwege te laten. Later wordt van het resultaat nog bepaald of en hoe deze gepresenteerd moeten worden.
|
||||
|
||||
// (was: Alleen met BO-rechten mag ik melding flexkenmerken boven de 900 zien. New feature 02-02-2010)
|
||||
// Als ik geen BO-rechten heb, dan laat ik de BO-kenmerken hier al achterwege, tenzij ik blokbehandelaar ben/kan zijn
|
||||
if (!my_mldrechten.canRead("WEB_MLDBOF"))
|
||||
{
|
||||
if (my_mldrechten.canChangeKenmerkBlok)
|
||||
{
|
||||
// Bewerk-, en zichtbaarheid van behandelblokken regelen we in resp. isReadonly & isInvisible
|
||||
sql1 += " AND (" + behandelblok_select + " <> 0"
|
||||
+ " OR BITAND(k.mld_kenmerk_rolcode, 7) <> 4)"; // alles muv alleen BO (4, 0100)
|
||||
} else {
|
||||
sql1 += " AND k.mld_kenmerk_volgnummer <= 900";
|
||||
sql1 += " AND BITAND(k.mld_kenmerk_rolcode, 7) <> 4"; // alles muv alleen BO (4, 0100)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -644,13 +664,19 @@ function getFlexKenmerkBlockSql(params)
|
||||
!my_mldrechten.canRead("WEB_MLDBOF") && !my_mldrechten.canRead("WEB_MLDFOF") &&
|
||||
!my_mldrechten.canRead("WEB_MLDBO2") && !my_mldrechten.canRead("WEB_MLDBO3") &&
|
||||
!my_mldrechten.canRead("WEB_MLDORD") && !my_mldrechten.canRead("WEB_MLDBAC")
|
||||
) { // Met alleen WEB_MLDUSE rechten mag ik kenmerken tussen 800 en 900 niet zien
|
||||
)
|
||||
{
|
||||
// Met alleen WEB_MLDUSE rechten mag ik kenmerken tussen 800 en 900 niet zien
|
||||
// Dan laat ik de FO-kenmerken hier al achterwege, tenzij ik blokbehandelaar ben/kan zijn
|
||||
// Ook hier: bewerk-, en zichtbaarheid van behandelblokken regelen we in resp. isReadonly & isInvisible
|
||||
if (my_mldrechten.canChangeKenmerkBlok) {
|
||||
sql1 += " AND ( " + behandelblok_select + " <> 0" // Bewerk-, en zichtbaarheid van behandelblokken regelen we in resp. isReadonly & isInvisible
|
||||
+ " OR k.mld_kenmerk_volgnummer <= 800)";
|
||||
sql1 += " AND ( " + behandelblok_select + " <> 0"
|
||||
+ " OR BITAND(k.mld_kenmerk_rolcode, 7) <> 2)"; // alles muv alleen FO (2, 0010)
|
||||
} else {
|
||||
sql1 += " AND k.mld_kenmerk_volgnummer <= 800";
|
||||
sql1 += " AND BITAND(k.mld_kenmerk_rolcode, 7) <> 2"; // alles muv alleen FO (2, 0010)
|
||||
}
|
||||
// ik voeg nog toe: rolcode 0 tonen we niet TODO: nagaan, alsook ook volgnummer < 0
|
||||
// ?? sql1 += " AND BITAND(k.mld_kenmerk_rolcode, 7) > 0"; // alles muv alleen FO (2, 0010)
|
||||
}
|
||||
|
||||
if (close || cancel)
|
||||
@@ -687,6 +713,7 @@ function getFlexKenmerkBlockSql(params)
|
||||
+ " , MIN(kenmerk_systeem ) kenmerk_systeem"
|
||||
+ " , MIN(kenmerk_waarde ) kenmerk_waarde"
|
||||
+ " , MIN(kenmerk_volgnr ) kenmerk_volgnr"
|
||||
+ " , MIN(kenmerk_rolcode ) kenmerk_rolcode"
|
||||
+ " , MIN(kenmerk_groep ) kenmerk_groep"
|
||||
+ " , MIN(kenmerk_dimensie ) kenmerk_dimensie"
|
||||
+ " , MIN(kenmerk_hint ) kenmerk_hint"
|
||||
@@ -727,17 +754,25 @@ function getFlexKenmerkBlockSql(params)
|
||||
var key = mld_key;
|
||||
}
|
||||
|
||||
function isReadonly (pvolgnummer, poRs)
|
||||
/**
|
||||
* Bepaalt of een gegeven kenmerk in de UI alleen-lezen (readonly) moet zijn.
|
||||
* @param {object} oRs Recordset-object met eigenschappen van het kenmerk.
|
||||
* @returns {boolean} true als het kenmerk readonly moet zijn, anders false.
|
||||
*/
|
||||
function isReadonly (oRs)
|
||||
{
|
||||
var isBijlage = inArray(poRs("kenmerk_kenmerktype").Value, ["E", "F", "M"]);
|
||||
var prolcode = oRs("kenmerk_rolcode").value;
|
||||
var isBijlage = inArray(oRs("kenmerk_kenmerktype").Value, ["E", "F", "M"]);
|
||||
|
||||
// Als "reado" meegegeven is dan altijd readonly (mobile bijlagen uitgezonderd)
|
||||
if (reado && !(params.mobile && isBijlage))
|
||||
return true; // Als meegegeven dan altijd readonly (mobile bijlagen uitgezonderd)
|
||||
return true;
|
||||
|
||||
if (changeMelding || newMelding) // Advanced zoeken (advancedOpdracht) is nooit readonly
|
||||
{ // Als de user een behandelaar van het blok is die niet is afgemeld, dan zijn de bijbehorende kenmerken altijd door de user te wijzigen.
|
||||
{ // Als de user een behandelaar van het blok is dat niet is afgemeld, dan zijn de kenmerken van dat blok altijd door de user te wijzigen.
|
||||
|
||||
// Waarde behandelblok.
|
||||
// 0) Kenmerk valt niet onder een behandelbaar blok: Afhankelijk van pvolgnummer.
|
||||
// Waarde [globale] behandelblok.
|
||||
// 0) Kenmerk valt niet onder een behandelbaar blok: Afhankelijk van prolcode. TODO nagaan
|
||||
// 1) Behandelteam ingevuld en user zit in het team: Blok altijd tonen.
|
||||
// 2) Behandelteam ingevuld en user zit NIET in het team: Blok niet tonen.
|
||||
// 3) Geen behandelteam ingevuld: Afhankelijk van rechten.
|
||||
@@ -745,7 +780,7 @@ function getFlexKenmerkBlockSql(params)
|
||||
if (behandelblok > 0) {
|
||||
if (behandelblok == 1 && !blokisafgemeld)
|
||||
return false;
|
||||
// Als de user een behandelaar van het blok is die is afgemeld, dan de bijbehorende kenmerken readonly tonen.
|
||||
// Als de user een behandelaar van het blok is dat is afgemeld, dan de kenmerken van dat blok readonly tonen.
|
||||
else if (blokisafgemeld)
|
||||
return true;
|
||||
// als ik alleen rechten op een kenmerkenblok had en geen canFlexChange rechten heb, dan het kenmerk readonly tonen.
|
||||
@@ -753,63 +788,59 @@ function getFlexKenmerkBlockSql(params)
|
||||
return true;
|
||||
// else gelden de rechten.
|
||||
}
|
||||
|
||||
// JGL: een en ander kan veel compacter beschreven worden maar dat
|
||||
// is dan niet meer te begrijpen.
|
||||
// Dat was het behandelblok. Nu voor de normale kenmerken
|
||||
// Voor bestaande meldingen zou eigenlijk my_mldrechten.canFlexChange meegenomen moeten worden.
|
||||
// Maar daar zorgt de parameter reado nu al voor.
|
||||
// Als de user het behandelbare blok moet invullen dan is deze niet readonly.
|
||||
if (pvolgnummer <= 800)
|
||||
{
|
||||
if (my_mldrechten.canWrite("WEB_MLDFOF") && my_mldrechten.canWrite("WEB_MLDBOF"))
|
||||
return false; //ik mag schrijven
|
||||
|
||||
// characteristics below 800 with mld_status 0 (Pending), 2 (nieuw) and 3 (te accepteren) can be changed by user with WEB_MLDFOF rights HSLE#55301
|
||||
if ((newMelding && my_mldrechten.canWrite("WEB_MLDFOF")) || (my_mldrechten.canWrite("WEB_MLDFOF") && my_mldrechten.canFoChangeBelow800) || my_mldrechten.canFEwrite)
|
||||
return false; // ik mag schrijven
|
||||
return true;
|
||||
}
|
||||
if (pvolgnummer > 800 && pvolgnummer < 900)
|
||||
{
|
||||
if (my_mldrechten.canWrite("WEB_MLDFOF"))
|
||||
return false; //ik mag schrijven
|
||||
return true; // niet
|
||||
}
|
||||
if (pvolgnummer == 900)
|
||||
{
|
||||
if (my_mldrechten.canWrite("WEB_MLDFOF") || my_mldrechten.canWrite("WEB_MLDBOF"))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
if (pvolgnummer > 900) // het enige wat overblijft
|
||||
{
|
||||
if (my_mldrechten.canWrite("WEB_MLDBOF"))
|
||||
return false; // ik mag
|
||||
return true; // niet
|
||||
}
|
||||
// Omgeschreven naar prolcode: wie mag zien en wijzigen:
|
||||
// prolcode & 1 : FE
|
||||
// prolcode & 2 : FO
|
||||
// prolcode & 4 : BO
|
||||
// dus wanneer is een kenmerk readonly? Precies andersom
|
||||
|
||||
var canWrite = (((prolcode & 1) && my_mldrechten.canFEwrite)
|
||||
|| (((prolcode & 2) || newMelding || my_mldrechten.canFoChangeBelow800) && my_mldrechten.canWrite("WEB_MLDFOF")) // HSLE#55301
|
||||
|| ((prolcode & 4) && my_mldrechten.canWrite("WEB_MLDBOF"))
|
||||
)
|
||||
return !canWrite;
|
||||
}
|
||||
|
||||
if (changeOpdracht || newOpdracht) // Advanced zoeken (advancedOpdracht) is nooit readonly
|
||||
{
|
||||
if (opdr_status == 7)
|
||||
return true; // bij AV mag je nooit wijzigen
|
||||
if (opdr_status != 7 && pvolgnummer >= 900 && opdrman)
|
||||
return false; // bij TV en opdrman mag je nog boven de 900 flexkenmerken aanpassen
|
||||
if (pvolgnummer > 100 && pvolgnummer <= 900)
|
||||
return !showClose; // afmeld-kenmerken mag je alleen tijdens het afmelden wijzigen
|
||||
if (!cancel && !close) // Wijzigen is mogelijk bij afwijzen (cancel) en afronden (close) en in de statussen "Afgewezen(1)" en "Afgerond/Kosten Voltooid(9)"
|
||||
return (poRs("kenmerk_obligation").Value == 1 && opdr_status != 1 && opdr_status != 9)
|
||||
// uiteindelijk dan nog de flexkenmerken <= 100 (vermoeden is dat MLDBOF hier eigenlijk niet bij hoort)
|
||||
return !my_mldrechten.canWrite("WEB_MLDBOF") && !my_mldrechten.canWrite("WEB_EXTORD") && !my_mldrechten.canWrite("WEB_ORDBO2") && !my_mldrechten.canWrite("WEB_ORDBOF");
|
||||
|
||||
// status 7 is nu dus sowieso weg
|
||||
|
||||
// deze kenmerken mag je met de juiste (true/false) autorisatie sowieso bewerken
|
||||
if ((prolcode & 4) && userhasORDSUP)
|
||||
return false;
|
||||
|
||||
// afmeld-kenmerken mag je alleen tijdens het afmelden wijzigen
|
||||
if ((prolcode & 2))
|
||||
return !showClose;
|
||||
|
||||
// Wijzigen is verder mogelijk bij afwijzen (cancel) en afronden (close)
|
||||
// en in de statussen "Afgewezen(1)" en "Afgerond/Kosten Voltooid(9)"
|
||||
if (!cancel && !close)
|
||||
return (oRs("kenmerk_obligation").Value == 1 && opdr_status != 1 && opdr_status != 9)
|
||||
|
||||
// uiteindelijk dan nog de overige flexkenmerken (<= 100) conform mijn opdrachtautorisatie
|
||||
if ((prolcode & 1))
|
||||
return !(my_mldrechten.canWrite("WEB_EXTORD") || my_mldrechten.canWrite("WEB_ORDBO2") || my_mldrechten.canWrite("WEB_ORDBOF"));
|
||||
}
|
||||
|
||||
return false; // 'k vind het wel best
|
||||
}
|
||||
|
||||
// Deze functie bepaalt of kenmerken invisible moeten zijn,
|
||||
// omdat ze onder een blok vallen waar ik niets binnen mag muteren.
|
||||
function isInvisible (pvolgnummer, pktype, poRs)
|
||||
{ // Labels altijd tonen. Deze worden wel hidden gemaakt als het blok geen kenmerken bevat.
|
||||
if (pktype == "b" || pktype == "l" || pktype == "Q")
|
||||
return false;
|
||||
function isInvisible (oRs)
|
||||
{
|
||||
var ktype = oRs("kenmerk_kenmerktype").value;
|
||||
// Labels altijd tonen. Deze worden wel hidden gemaakt als het blok geen kenmerken bevat.
|
||||
if (ktype == "b" || ktype == "l" || ktype == "Q")
|
||||
return false; // visible
|
||||
|
||||
var hasFOBO = my_mldrechten.canRead("WEB_MLDBOF") || my_mldrechten.canRead("WEB_MLDFOF") ||
|
||||
my_mldrechten.canRead("WEB_MLDBO2") || my_mldrechten.canRead("WEB_MLDBO3") ||
|
||||
@@ -817,7 +848,7 @@ function getFlexKenmerkBlockSql(params)
|
||||
if ((newMelding || changeMelding) &&
|
||||
behandelblok >= 2 && !hasFOBO)
|
||||
{
|
||||
return true;
|
||||
return true; // invisible
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -154,7 +154,7 @@ function mld_list (pautfunction, params)
|
||||
+ " , sk.mld_srtkenmerk_kenmerktype"
|
||||
+ " FROM mld_srtkenmerk sk, mld_kenmerk k"
|
||||
+ " WHERE BITAND (mld_kenmerk_inlijst, 1) = 1"
|
||||
+ " AND BITAND (mld_srtkenmerk_systeem, 4) = 0" // niet als vertrouwelijk
|
||||
+ " AND BITAND (mld_srtkenmerk_systeem, 4) = 0" // niet als vertrouwelijk en TODO wellicht nog rolcode?
|
||||
+ " AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key"
|
||||
+ " AND k.mld_kenmerk_niveau NOT IN ('P', 'O')"
|
||||
+ " AND k.mld_kenmerk_verwijder IS NULL"
|
||||
@@ -592,6 +592,12 @@ function mld_list (pautfunction, params)
|
||||
|
||||
if (anyflex)
|
||||
{
|
||||
// Wat mag ik op basis van mijn autorisatie zien, bepaal mijn rolcode-masker. In principe.
|
||||
// Je wilt controleren maar dan moet je voor elk record (!) de complete 3D-scope (!) controleren
|
||||
// Dat is niet te doen, daarom leggen we de verantwoordelijkheid bij de applicatiebeheerder
|
||||
// Die moet alleen kenmerken in de lijst laten zien die iedereen mag zien.
|
||||
var myreadrolcode = 7; // alles.
|
||||
|
||||
sqln += ", (SELECT LISTAGG("
|
||||
+ (multiflex ? "COALESCE (" + lcl.xsql("k.mld_kenmerk_omschrijving", "k.mld_kenmerk_key")
|
||||
+ " , " + lcl.xsql("skm.mld_srtkenmerk_omschrijving", "skm.mld_srtkenmerk_key") + ")"
|
||||
@@ -617,6 +623,7 @@ function mld_list (pautfunction, params)
|
||||
+ " AND k.mld_kenmerk_key = km.mld_kenmerk_key"
|
||||
+ " AND BITAND(k.mld_kenmerk_inlijst,1) = 1"
|
||||
+ " AND BITAND(skm.mld_srtkenmerk_systeem,4) = 0" // niet als vertrouwelijk
|
||||
// + " AND BITAND(k.mld_kenmerk_rolcode, "+ myreadrolcode +") > 0" // met waarde 7 voegt dat niks toe
|
||||
+ " AND skm.mld_srtkenmerk_key = k.mld_srtkenmerk_key"
|
||||
+ " AND skm.mld_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND k.mld_kenmerk_verwijder IS NULL"
|
||||
|
||||
@@ -58,8 +58,8 @@ var multipleBijlagenTypes = false;
|
||||
if (mld_key > 0)
|
||||
{
|
||||
// Zijn er een bijlage kenmerken?
|
||||
var sql = mld.getMldKenmerk_sql(mld_key, {wheres: ["mkm.mld_kenmerk_volgnummer < 800",
|
||||
"mkm.mld_kenmerk_volgnummer >= 0",
|
||||
var sql = mld.getMldKenmerk_sql(mld_key, {wheres: ["BITAND(mkm.mld_kenmerk_rolcode, 1) > 0", // FE mag het zien
|
||||
"mkm.mld_kenmerk_volgnummer >= 0", // negatieven zijn verstopt
|
||||
"msk.mld_srtkenmerk_kenmerktype = 'M'",
|
||||
"(mkm.mld_kenmerk_toonbaar = 0 OR mkm.mld_kenmerk_toonbaar IS NULL)"]}
|
||||
);
|
||||
|
||||
@@ -9,33 +9,56 @@
|
||||
srt_key prs_srt_key
|
||||
niveau "P",
|
||||
publiconly als true dan alleen/alle kenmerken tussen 800 en 900 , ongeacht autorisatie
|
||||
(phonebook gebruik)
|
||||
reado false,
|
||||
(phonebook gebruik) TODO CHECK WHAT TO DO
|
||||
prsauthparams (resultaat van prs.checkAutorisation voor writeman e.d., alleen personen)
|
||||
|
||||
Context: Functie wordt aangeroepen door
|
||||
1) load_kenmerk.asp
|
||||
2) prs_edit_xxx.asp die initieel serverside deze html code invoegt.
|
||||
Note:
|
||||
|
||||
Note: Kenmerken met kenmerk_rolcode&4 luisternen naar WEB_PROFIL voor persoonsgegevens, dus read/write als het om je EIGEN gevens gaat
|
||||
Ik denk zo: TODO TESTEN
|
||||
- persoon P-link_key = user_key
|
||||
- afdeling A-link_key = user_key.afdeling_key
|
||||
- bedrijf B-link_key = user_key.afdeling_key.bedrijf_key
|
||||
- bedrijf C-link_key = contactpersoon_key[user_key]
|
||||
*/ %>
|
||||
<!-- #include file="../Shared/kenmerk_common.inc" -->
|
||||
<%
|
||||
function generateFlexKenmerkCode(params)
|
||||
{
|
||||
var link_key = params.link_key; // organisatieding-key (B/A/C/P-key)
|
||||
var srt_key = params.srt_key; // soort perslid
|
||||
var niveau = params.niveau; // Onroerendgoed niveau (B/A/C/P)
|
||||
var advanced = params.advanced; // Geavanceerd
|
||||
var reqId = params.reqId; // Perslid key (!search && multiMode)
|
||||
var reado = params.reado; // Readonly
|
||||
var hasfilter = params.hasfilter? params.hasfilter : null;
|
||||
var link_key = params.link_key; // organisatieding-key (B/A/C/P-key)
|
||||
var srt_key = params.srt_key; // soort perslid
|
||||
var niveau = params.niveau; // Onroerendgoed niveau (B/A/C/P)
|
||||
var advanced = params.advanced; // Geavanceerd
|
||||
var reqId = params.reqId; // Perslid key (!search && multiMode)
|
||||
var reado = params.reado; // Readonly
|
||||
var hasfilter = params.hasfilter ? params.hasfilter : null;
|
||||
|
||||
// Om de een of andere reden wordt deze voor P al meegegeven, verderop kijken we zelf als dat niet zo is.
|
||||
//if (niveau=="P")
|
||||
// var params.prsauthparams = prs.checkAutorisation(prs_key);
|
||||
|
||||
// Voor het kunnen zien/editen van "eigen" kenmerken kijken we naar de PROFIL-autorisatie
|
||||
var prsauthparams = {}
|
||||
var itsmine = ( (niveau=="P" && link_key == user_key)
|
||||
|| (niveau=="A" && link_key == user.prs_afdeling_key())
|
||||
|| (niveau=="B" && link_key == user.afdeling().prs_bedrijf_key())
|
||||
|| (niveau=="C" && link_key == user.isBedrijfContact(link_key))
|
||||
);
|
||||
var authparamsSELF= user.checkAutorisation("WEB_PROFIL", true);
|
||||
prsauthparams.readself = itsmine && (authparamsSELF.PRSreadlevel < 9 || authparamsSELF.ALGreadlevel < 9);
|
||||
prsauthparams.writeself = itsmine && (authparamsSELF.PRSwritelevel < 9 || authparamsSELF.ALGwritelevel < 9);
|
||||
|
||||
// Voor afdelingen en contactpersonen zijn we heel flexibel. Waarom?
|
||||
// Mogelijk omdat we hier alleen komen als we al minstens (lees) autorisatie hadden?
|
||||
|
||||
// Voor afdelingen en contactpersonen zijn we heel flexibel
|
||||
if (niveau=="A" || niveau=="C")
|
||||
params.prsauthparams = { writeman: true, writeuse: true, readman: true, readuse: true, readself: true, writeself: true }
|
||||
// writeuse and readuse autorisation for company
|
||||
params.prsauthparams = { writeman: true, writeuse: true, readman: true, readuse: true, readself: prsauthparams.readself, writeself: prsauthparams.writeself }
|
||||
else if (niveau=="B")
|
||||
{
|
||||
params.prsauthparams = { writeman: true, writeuse: true, readman: true, readuse: true, readself: true, writeself: true }
|
||||
params.prsauthparams = { writeman: true, writeuse: true, readman: true, readuse: true, readself: prsauthparams.readself, writeself: prsauthparams.writeself }
|
||||
// Een eenvoudig contactpersoon mag de MAN-kenmerken niet zien
|
||||
if (user.iamContact(link_key))
|
||||
{
|
||||
params.prsauthparams.writeman = false;
|
||||
@@ -44,57 +67,50 @@ function generateFlexKenmerkCode(params)
|
||||
}
|
||||
else if (niveau =="P" && !params.prsauthparams) // flex search en profiel
|
||||
{
|
||||
params.prsauthparams = { readman: true, readuse: true, readself: link_key == user_key }
|
||||
params.prsauthparams = { readman: true, readuse: true, readself: prsauthparams.readself, writeself: prsauthparams.writeself }
|
||||
var authparamsUSE = user.checkAutorisation("WEB_PRSUSE", true)||{PRSreadlevel: 9};
|
||||
var authparamsMAN = user.checkAutorisation("WEB_PRSMAN", true)||{PRSreadlevel: 10};
|
||||
// Als authparamsMAN en authparamsUSE verschillen zou het heel ingewikkeld worden.
|
||||
// Daarom tonen we dan voor de veiligheid geen MAN meer.
|
||||
// Daarom tonen we dan voor de veiligheid geen MAN meer. Beetje lomp
|
||||
if (authparamsMAN.PRSreadlevel > -1 && authparamsMAN.PRSreadlevel != authparamsUSE.PRSreadlevel)
|
||||
params.prsauthparams.readman = false;;
|
||||
params.prsauthparams.readman = false;
|
||||
if (authparamsUSE.PRSreadlevel > -1)
|
||||
params.prsauthparams.readuse = false;;
|
||||
params.prsauthparams.readuse = false;
|
||||
}
|
||||
// Van jezelf mag je vanalles zien.
|
||||
if (params.prsauthparams.readself)
|
||||
params.prsauthparams.readuse = true;
|
||||
// Van jezelf mag je vanalles zien. -> dit gaat nu vanzelf met rolcode, die je kunt combineren
|
||||
|
||||
function isReadonly (volgnummer)
|
||||
function isReadonly (oRs)
|
||||
{
|
||||
if ( params.reado )
|
||||
return true;
|
||||
|
||||
if (volgnummer <= 100 && params.prsauthparams.writeman )
|
||||
return false; // die mag je bewerken met PRSMAN
|
||||
var rolcode = oRs("kenmerk_rolcode").value;
|
||||
var canWrite = ( ((rolcode&1) && params.prsauthparams.writeman)
|
||||
|| ((rolcode&2) && params.prsauthparams.writeuse)
|
||||
|| ((rolcode&4) && prsauthparams.writeself)
|
||||
);
|
||||
|
||||
if (volgnummer >= 800 && params.prsauthparams.writeself )
|
||||
return false; // die mag ik bewerken
|
||||
|
||||
if (volgnummer >= 100 && params.prsauthparams.writeuse )
|
||||
return false; // die mag je bewerken met PRSUSE
|
||||
|
||||
return true; // blijkbaar toch niet...
|
||||
return !canWrite; // readonly
|
||||
}
|
||||
|
||||
// Merk op dat een deel ook al door de query is uitgefilterd
|
||||
function isInvisible(volgnummer, ktype)
|
||||
function isInvisible(oRs)
|
||||
{
|
||||
if (volgnummer<100 && !params.prsauthparams.readman )
|
||||
return true; // Invisible
|
||||
var rolcode = oRs("kenmerk_rolcode").value;
|
||||
var canRead = ( ((rolcode&1) && params.prsauthparams.readman)
|
||||
|| ((rolcode&2) && params.prsauthparams.readuse) /* incl readself */
|
||||
|| ((rolcode&4) && (prsauthparams.readself || params.publiconly)) // sowieso wel *visible* in telefoonboekje, ongeacht autorisatie TODO CHECK
|
||||
);
|
||||
|
||||
// Boven de 900 zijn de kenmerken privacy gevoelig->niet in telefoonboekje
|
||||
if (params.publiconly && volgnummer > 900)
|
||||
return true; // invisible in telefoonboekje
|
||||
|
||||
if (params.publiconly && volgnummer > 800)
|
||||
return false; // sowieso wel *visible* in telefoonboekje, ongeacht autorisatie
|
||||
|
||||
if (volgnummer>100 && !params.prsauthparams.readuse /* incl readself */)
|
||||
return true; // Invisible
|
||||
|
||||
return false;
|
||||
return !canRead; // invisible
|
||||
}
|
||||
|
||||
var authparamsPHB = user.checkAutorisation("WEB_PHONEB", true);
|
||||
// Wat mag ik op basis van mijn autorisatie (potentieel) zien, bepaal mijn rolcode-masker
|
||||
var myreadrolcode = 0 + (params.prsauthparams.readman ? 1 : 0)
|
||||
+ (params.prsauthparams.readuse ? 2 : 0)
|
||||
+ (params.prsauthparams.readself? 4 : 0);
|
||||
|
||||
|
||||
|
||||
var sql = "SELECT k.prs_kenmerk_key kenmerk_key"
|
||||
+ " , 1 kenmerk_key_count"
|
||||
@@ -120,6 +136,7 @@ function generateFlexKenmerkCode(params)
|
||||
: " , " + lcl.xsql("k.prs_kenmerk_default", "k.prs_kenmerk_key")
|
||||
) + " kenmerk_waarde"
|
||||
+ " , k.prs_kenmerk_volgnr kenmerk_volgnr"
|
||||
+ " , k.prs_kenmerk_rolcode kenmerk_rolcode"
|
||||
+ " , " + lcl.xsql("k.prs_kenmerk_dimensie", "k.prs_kenmerk_key") + " kenmerk_dimensie"
|
||||
+ " , " + lcl.xsql("k.prs_kenmerk_hint", "k.prs_kenmerk_key") + " kenmerk_hint"
|
||||
+ " , " + lcl.xsql("k.prs_kenmerk_default", "k.prs_kenmerk_key") + " kenmerk_default"
|
||||
@@ -134,14 +151,12 @@ function generateFlexKenmerkCode(params)
|
||||
+ " FROM prs_kenmerk k "
|
||||
+ " WHERE k.prs_kenmerk_niveau = " + safe.quoted_sql(niveau)
|
||||
+ " AND k.prs_kenmerk_verwijder IS NULL "
|
||||
+ " AND BITAND(k.prs_kenmerk_rolcode, " + myreadrolcode + ") > 0 "
|
||||
+ " AND (k.prs_srtperslid_key IS NULL "
|
||||
+ ((niveau=="P" && srt_key > 0)
|
||||
? " OR k.prs_srtperslid_key = "+ srt_key +")"
|
||||
: ")"
|
||||
)
|
||||
+ (!params.prsauthparams.readman? " AND prs_kenmerk_volgnr >= 100" : "")
|
||||
+ (!params.prsauthparams.readuse && !authparamsPHB? " AND prs_kenmerk_volgnr <= 100" : "")
|
||||
+ (!params.prsauthparams.readuse && authparamsPHB? " AND prs_kenmerk_volgnr BETWEEN 800 AND 900" : "")
|
||||
+ " ORDER BY k.prs_kenmerk_volgnr"
|
||||
+ " , " + lcl.xsql("k.prs_kenmerk_omschrijving", "k.prs_kenmerk_key");
|
||||
|
||||
|
||||
@@ -90,27 +90,18 @@ function generateFlexKenmerkBlock(params)
|
||||
|
||||
var my_resrechten = user.func_enabled2("RES", {ins_discipline_key: disc_key_arr.join(",")}); // res.func_enabled(rsv_ruimte_key) is overkill?
|
||||
|
||||
function isReadonly (volgnummer)
|
||||
{ // Mag ik de kenmerken wijzigen?
|
||||
if (reado) return true; // Als meegegeven dan altijd readonly
|
||||
// Mag ik de kenmerken *niet* wijzigen?
|
||||
function isReadonly (oRs)
|
||||
{
|
||||
// Als meegegeven dan altijd readonly
|
||||
if (reado) return true;
|
||||
var rolcode = oRs("kenmerk_rolcode").value;
|
||||
|
||||
if (volgnummer < 100) // FO && BO altijd, FE alleen buiten de expire-tijden
|
||||
{
|
||||
if (my_resrechten.canWrite("WEB_RESFOF") || my_resrechten.canWrite("WEB_RESBOF"))
|
||||
return false; // die mogen altijd
|
||||
var canWrite = ( ((rolcode&1) && !readofe)
|
||||
|| ((rolcode&2) && my_resrechten.canWrite("WEB_RESFOF"))
|
||||
|| ((rolcode&4) && my_resrechten.canWrite("WEB_RESBOF")));
|
||||
|
||||
return readofe; // als ik via de FE-uitzondering binnen ben wordt <100 readonly
|
||||
}
|
||||
else if (volgnummer >= 100 && volgnummer <= 800) // FE && FO && BO
|
||||
{
|
||||
return false; // Zonder FE||FO||BO was je hier echt nooit gekomen
|
||||
}
|
||||
else if (volgnummer > 800 && volgnummer < 900) // FO
|
||||
return !my_resrechten.canWrite("WEB_RESFOF");
|
||||
else if (volgnummer == 900) // FO && BO
|
||||
return !my_resrechten.canWrite("WEB_RESFOF") && !my_resrechten.canWrite("WEB_RESBOF");
|
||||
else if (volgnummer > 900) // BO
|
||||
return !my_resrechten.canWrite("WEB_RESBOF");
|
||||
return !canWrite; // readonly
|
||||
}
|
||||
|
||||
if (act_change)
|
||||
@@ -137,6 +128,21 @@ function generateFlexKenmerkBlock(params)
|
||||
+ " AND v.res_kenmerk_key = k.res_kenmerk_key" // res_kenmerk_key is uniek
|
||||
+ " AND v.res_kenmerkwaarde_verwijder IS NULL)";
|
||||
|
||||
var myreadrolcode = 0
|
||||
// Wat mag ik op basis van mijn autorisatie (potentieel) zien, bepaal mijn rolcode-masker
|
||||
// Met WEB_RESBAC mag ik alles zien
|
||||
if (my_resrechten.canRead("WEB_RESBAC")
|
||||
myreadrolcode = 7;
|
||||
else
|
||||
myreadrolcode = 0 + (my_resrechten.canRead("WEB_RESUSE") ? 1 : 0)
|
||||
+ (my_resrechten.canRead("WEB_RESFOF") ? 2 : 0)
|
||||
+ (my_resrechten.canRead("WEB_RESBOF") ? 4 : 0);
|
||||
|
||||
// Voor *nieuwe* reserveringen negeren we RESBOF nog even.
|
||||
// Omdat we (meestal) nog geen catalogus/discipline hebben op dit moment zie je anders
|
||||
// als je maar *ergens* RESBOF voor hebt al te veel kenmerken
|
||||
if (rsv_ruimte_key < 0 && !params.advanced) // kennelijk niet bij zoeken
|
||||
myreadrolcode = myreadrolcode - 4;
|
||||
|
||||
sql = "SELECT k.res_kenmerk_key kenmerk_key"
|
||||
+ " , 1 kenmerk_key_count"
|
||||
@@ -155,6 +161,7 @@ function generateFlexKenmerkBlock(params)
|
||||
: " , " + lcl.xsql("k.res_kenmerk_default", "k.res_kenmerk_key")
|
||||
) + " kenmerk_waarde"
|
||||
+ " , k.res_kenmerk_volgnummer kenmerk_volgnr"
|
||||
+ " , k.res_kenmerk_rolcode kenmerk_rolcode"
|
||||
+ " , " + lcl.xsql("t.res_srtkenmerk_dimensie", "t.res_srtkenmerk_key") + " kenmerk_dimensie"
|
||||
+ " , " + lcl.xsql("k.res_kenmerk_hint", "k.res_kenmerk_key") + " kenmerk_hint"
|
||||
+ " , " + lcl.xsql("k.res_kenmerk_default", "k.res_kenmerk_key") + " kenmerk_default"
|
||||
@@ -176,34 +183,9 @@ function generateFlexKenmerkBlock(params)
|
||||
: "")
|
||||
+ " AND k.res_kenmerk_verwijder IS NULL"
|
||||
+ " AND k.res_srtkenmerk_key = t.res_srtkenmerk_key"
|
||||
+ " AND t.res_srtkenmerk_verwijder IS NULL";
|
||||
|
||||
// Voor *nieuwe* reserveringen negeren we RESBAC en RESBOF nog even.
|
||||
// Omdat we (meestal) nog geen catalogus/discipline hebben op dit moment zie je anders
|
||||
// als je maar *ergens* RESBAC of RESBOF al te veel kenmerken
|
||||
if (!my_resrechten.canRead("WEB_RESBAC") || (rsv_ruimte_key < 0 && !params.advanced))
|
||||
{ // Ik heb geen RESBAC rechten
|
||||
// Dan mag ik alleen nog met RESBOF rechten reservering flexkenmerken boven de 900 zien.
|
||||
if (!my_resrechten.canRead("WEB_RESBOF") || (rsv_ruimte_key < 0 && !params.advanced))
|
||||
{ // Ik heb geen RESBOF rechten
|
||||
// Dan mag ik alleen nog met RESFOF rechten reservering flexkenmerken tussen de 800 en de 900 zien.
|
||||
if (!my_resrechten.canRead("WEB_RESFOF"))
|
||||
{ // Ik heb geen RESFOF rechten.
|
||||
// Dan mag ik alleen nog met RESUSE rechten reservering flexkenmerken onder de 800 zien.
|
||||
if (!my_resrechten.canRead("WEB_RESUSE"))
|
||||
// Ik mag geen enkel kenmerk zien.
|
||||
sql += " AND 1 = 0"; // Ik mag geen enkel kenmerk zien.
|
||||
else
|
||||
// Met WEB_RESUSErechten mag ik kenmerken <=800 zien.
|
||||
sql += " AND (k.res_kenmerk_volgnummer <= 800)";
|
||||
}
|
||||
else
|
||||
// Ik heb RESFOF rechten
|
||||
sql += " AND k.res_kenmerk_volgnummer <= 900";
|
||||
}
|
||||
}
|
||||
|
||||
sql += " ORDER BY k.res_kenmerk_volgnummer"
|
||||
+ " AND t.res_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND BITAND(k.res_kenmerk_rolcode, " + myreadrolcode + ") > 0 "
|
||||
+ " ORDER BY k.res_kenmerk_volgnummer"
|
||||
+ " , UPPER( COALESCE (" + lcl.xsql("k.res_kenmerk_omschrijving", "k.res_kenmerk_key")
|
||||
+ " , " + lcl.xsql("t.res_srtkenmerk_omschrijving", "t.res_srtkenmerk_key") + "))";
|
||||
|
||||
@@ -224,6 +206,7 @@ function generateFlexKenmerkBlock(params)
|
||||
+ " , MIN(kenmerk_systeem ) kenmerk_systeem"
|
||||
+ " , MIN(kenmerk_waarde ) kenmerk_waarde"
|
||||
+ " , MIN(kenmerk_volgnr ) kenmerk_volgnr"
|
||||
+ " , MIN(kenmerk_rolcode ) kenmerk_rolcode"
|
||||
+ " , MIN(kenmerk_groep ) kenmerk_groep"
|
||||
+ " , MIN(kenmerk_dimensie ) kenmerk_dimensie"
|
||||
+ " , MIN(kenmerk_hint ) kenmerk_hint"
|
||||
@@ -240,7 +223,6 @@ function generateFlexKenmerkBlock(params)
|
||||
+ " , kenmerk_omschrijving";
|
||||
}
|
||||
|
||||
var trn = 0;
|
||||
|
||||
listKenmerk(sql,
|
||||
"RES",
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
$Id$
|
||||
|
||||
File: res/res_flexkenmerk_art.inc
|
||||
Description: Functie die html code genereert voor de presentatie van de flexvelden van artikelen
|
||||
Parameters: urole Rol van de gebruiker (frontend, frontoffice, backoffice, management info)
|
||||
reado Readonly
|
||||
Description: Functie die html code genereert voor de presentatie van de flexvelden van reserveringsartikelen
|
||||
Parameters: reado Readonly
|
||||
advanced Geadvanceerd
|
||||
|
||||
Context: Functie wordt aangeroepen door
|
||||
1) load_kenmerk.asp
|
||||
2) bez_edit_xxx.asp die initieel serverside deze html code invoegd.
|
||||
1) res_cat.inc
|
||||
|
||||
Note: We ondersteunen ook reserverings kenmerken bij een rsv_ruimte.
|
||||
*/ %>
|
||||
<!-- #include file="../Shared/kenmerk_common.inc" -->
|
||||
@@ -26,29 +26,36 @@ function generateFlexKenmerkCodeArt(params)
|
||||
|
||||
var my_resrechten = user.func_enabled2("RES", {ins_discipline_key: discipline_key}); // res.func_enabled(rsv_ruimte_key) is overkill?
|
||||
|
||||
function isReadonly (volgnummer)
|
||||
{ // Mag ik de kenmerken wijzigen?
|
||||
if (reado) return true; // Als meegegeven dan altijd readonly
|
||||
function isReadonly (oRs)
|
||||
{
|
||||
// Als meegegeven dan altijd readonly
|
||||
if (reado)
|
||||
return true;
|
||||
|
||||
if (volgnummer < 100) // FO && BO altijd, FE alleen buiten de expire-tijden
|
||||
{
|
||||
if (my_resrechten.canWrite("WEB_RESFOF") || my_resrechten.canWrite("WEB_RESBOF"))
|
||||
return false; // die mogen altijd
|
||||
var rolcode = oRs("kenmerk_rolcode").value;
|
||||
var canWrite = ( ((rolcode&1) && !params.readofe)
|
||||
|| ((rolcode&2) && my_resrechten.canWrite("WEB_RESFOF"))
|
||||
|| ((rolcode&4) && my_resrechten.canWrite("WEB_RESBOF")));
|
||||
|
||||
return params.readofe; // als ik via de FE-uitzondering binnen ben wordt <100 readonly
|
||||
}
|
||||
else if (volgnummer >= 100 && volgnummer <= 800) // FE && FO && BO
|
||||
{
|
||||
return false; // Zonder FE||FO||BO was je hier echt nooit gekomen
|
||||
}
|
||||
else if (volgnummer > 800 && volgnummer < 900) // FO
|
||||
return !my_resrechten.canWrite("WEB_RESFOF");
|
||||
else if (volgnummer == 900) // FO && BO
|
||||
return !my_resrechten.canWrite("WEB_RESFOF") && !my_resrechten.canWrite("WEB_RESBOF");
|
||||
else if (volgnummer > 900) // BO
|
||||
return !my_resrechten.canWrite("WEB_RESBOF");
|
||||
return !canWrite;
|
||||
}
|
||||
|
||||
var myreadrolcode = 0
|
||||
// Wat mag ik op basis van mijn autorisatie (potentieel) zien, bepaal mijn rolcode-masker
|
||||
// Met WEB_RESBAC mag ik alles zien
|
||||
if (my_resrechten.canRead("WEB_RESBAC")
|
||||
myreadrolcode = 7;
|
||||
else
|
||||
myreadrolcode = 0 + (my_resrechten.canRead("WEB_RESUSE") ? 1 : 0)
|
||||
+ (my_resrechten.canRead("WEB_RESFOF") ? 2 : 0)
|
||||
+ (my_resrechten.canRead("WEB_RESBOF") ? 4 : 0);
|
||||
|
||||
// Voor *nieuwe* reserveringen negeren we RESBOF nog even.
|
||||
// Omdat we (meestal) nog geen catalogus/discipline hebben op dit moment zie je anders
|
||||
// als je maar *ergens* RESBOF voor hebt al te veel kenmerken
|
||||
if (rsv_ruimte_key < 0 && !params.advanced) // kennelijk niet bij zoeken
|
||||
myreadrolcode = myreadrolcode - 4;
|
||||
|
||||
var sql = "SELECT k.res_kenmerk_key kenmerk_key"
|
||||
+ " , 1 kenmerk_key_count"
|
||||
+ " , sk.res_srtkenmerk_key srtkenmerk_key"
|
||||
@@ -88,39 +95,11 @@ function generateFlexKenmerkCodeArt(params)
|
||||
+ " WHERE k.res_srtkenmerk_key = sk.res_srtkenmerk_key"
|
||||
+ " AND k.res_kenmerk_verwijder IS NULL"
|
||||
+ " AND sk.res_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND (k.res_artikel_key = " + artikel_key + " OR k.res_discipline_key = " + discipline_key + ")";
|
||||
|
||||
// Voor *nieuwe* reserveringen negeren we RESBAC en RESBOF nog even.
|
||||
// Omdat we (meestal) nog geen catalogus/discipline hebben op dit moment zie je anders
|
||||
// als je maar *ergens* RESBAC of RESBOF al te veel kenmerken
|
||||
if (!my_resrechten.canRead("WEB_RESBAC") || rsv_artikel_key < 0)
|
||||
{ // Ik heb geen RESBAC rechten
|
||||
// Dan mag ik alleen nog met RESBOF rechten reservering flexkenmerken boven de 900 zien.
|
||||
if (!my_resrechten.canRead("WEB_RESBOF") || rsv_artikel_key < 0)
|
||||
{ // Ik heb geen RESBOF rechten
|
||||
// Dan mag ik alleen nog met RESFOF rechten reservering flexkenmerken tussen de 800 en de 900 zien.
|
||||
if (!my_resrechten.canRead("WEB_RESFOF"))
|
||||
{ // Ik heb geen RESFOF rechten.
|
||||
// Dan mag ik alleen nog met RESUSE rechten reservering flexkenmerken onder de 800 zien.
|
||||
if (!my_resrechten.canRead("WEB_RESUSE"))
|
||||
// Ik mag geen enkel kenmerk zien.
|
||||
sql += " AND 1 = 0"; // Ik mag geen enkel kenmerk zien.
|
||||
else
|
||||
// Met WEB_RESUSErechten mag ik kenmerken <=800 zien.
|
||||
sql += " AND (k.res_kenmerk_volgnummer <= 800)";
|
||||
}
|
||||
else
|
||||
// Ik heb RESFOF rechten
|
||||
sql += " AND k.res_kenmerk_volgnummer <= 900";
|
||||
}
|
||||
}
|
||||
|
||||
sql += " ORDER BY k.res_kenmerk_volgnummer"
|
||||
+ " , UPPER( COALESCE (" + lcl.xsql("k.res_kenmerk_omschrijving", "k.res_kenmerk_key")
|
||||
+ " , " + lcl.xsql("sk.res_srtkenmerk_omschrijving", "sk.res_srtkenmerk_key") + "))";
|
||||
|
||||
var trn = 0;
|
||||
|
||||
+ " AND BITAND(k.res_kenmerk_rolcode, " + myreadrolcode + ") > 0 "
|
||||
+ " AND (k.res_artikel_key = " + artikel_key + " OR k.res_discipline_key = " + discipline_key + ")"
|
||||
+ " ORDER BY k.res_kenmerk_volgnummer"
|
||||
+ " , UPPER( COALESCE (" + lcl.xsql("k.res_kenmerk_omschrijving", "k.res_kenmerk_key")
|
||||
+ " , " + lcl.xsql("sk.res_srtkenmerk_omschrijving", "sk.res_srtkenmerk_key") + "))";
|
||||
var nameprefix = "art" + artikel_key + "_" + rsv_artikel_key + "_";
|
||||
if (artikel_key < 0 || rsv_artikel_key < 0)
|
||||
nameprefix = nameprefix.replace("-", "_");
|
||||
|
||||
Reference in New Issue
Block a user