NYBU#55434: Flexkenmerken per artikelregel.

svn path=/Website/trunk/; revision=41494
This commit is contained in:
Maykel Geerdink
2019-03-12 08:02:55 +00:00
parent c8b0817122
commit cd2e0bb5db

View File

@@ -0,0 +1,123 @@
<% /*
$Revision$
$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
flexcolumns aantal kolommen voor flexkenmerken
advanced Geadvanceerd
Context: Functie wordt aangeroepen door
1) load_kenmerk.asp
2) bez_edit_xxx.asp die initieel serverside deze html code invoegd.
Note: We ondersteunen ook reserverings kenmerken bij een rsv_ruimte.
*/ %>
<!-- #include file="../Shared/kenmerk_common.inc" -->
<%
function getSqlResFlexArt(rsv_artikel_key, artikel_key, filter)
{
var filter = filter || [];
return sql = "SELECT k.res_kenmerk_key kenmerk_key"
+ " , " + lcl.xsql("sk.res_srtkenmerk_omschrijving", "sk.res_srtkenmerk_key") + " kenmerk_omschrijving"
+ " , sk.res_srtkenmerk_kenmerktype kenmerk_kenmerktype"
+ " , sk.fac_kenmerkdomein_key kenmerkdomein_key"
+ " , sk.res_srtkenmerk_lengte kenmerk_lengte"
+ " , sk.res_srtkenmerk_dec kenmerk_dec"
+ " , sk.res_srtkenmerk_nmin kenmerk_nmin"
+ " , sk.res_srtkenmerk_nmax kenmerk_nmax"
+ " , sk.res_srtkenmerk_systeem kenmerk_systeem"
+ (rsv_artikel_key > 0
? " , (SELECT v.res_kenmerkartikel_waarde "
+ " FROM res_kenmerkartikel v "
+ " WHERE v.res_rsv_artikel_key = " + rsv_artikel_key
+ " AND v.res_kenmerk_key = k.res_kenmerk_key"
+ " AND v.res_kenmerkartikel_verwijder IS NULL)"
: " , " + lcl.xsql("k.res_kenmerk_default", "k.res_kenmerk_key")) + " kenmerk_waarde"
+ " , k.res_kenmerk_volgnummer kenmerk_volgnr"
+ " , " + lcl.xsql("sk.res_srtkenmerk_dimensie", "k.res_kenmerk_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"
+ " , k.res_kenmerk_verplicht kenmerk_verplicht"
+ " , k.res_kenmerk_groep kenmerk_groep"
+ " , NULL otherpath"
+ " , k.res_kenmerk_toonbaar kenmerk_toonbaar"
+ " , k.res_kenmerk_uniek kenmerk_uniek"
+ " , k.res_kenmerk_regexp kenmerk_regexp"
+ " FROM res_kenmerk k "
+ " , res_srtkenmerk sk"
+ " WHERE k.res_srtkenmerk_key = sk.res_srtkenmerk_key"
+ " AND k.res_kenmerk_verwijder IS NULL"
+ " AND k.res_artikel_key = " + artikel_key
+ (filter.length > 0 ? " AND " + filter.join(" AND ") : "")
+ " ORDER BY k.res_kenmerk_volgnummer"
+ " , " + lcl.xsql("sk.res_srtkenmerk_omschrijving", "k.res_kenmerk_key");
}
function generateFlexKenmerkCodeArt(params)
{
var rsv_artikel_key = params.rsv_artikel_key? params.rsv_artikel_key : -1; // res_rsv_artikel_key
var artikel_key = params.artikel_key? params.artikel_key : -1; // artikel_key
var reado = params.reado; // Readonly
var flexcolumns = params.flexcolumns;
var advanced = params.advanced; // Geavanceerd
var flexcolumns= params.flexcolumns;
var prs_key = (params.prs_key? params.prs_key : -1); // Perslid key
var cont_key = (params.cont_key? params.cont_key : -1); // Contactpersoon key
var resnum = params.resnum; // Bezoeker nummer
var requiredbyfield = params.requiredbyfield; // required flexkenmerken is alleen required als veld met name=requiredbyfield is ingevuld
var flexstart = params.flexstart;
var flexend = params.flexend;
var notr = params.notr;
var ispopup = params.ispopup;
var nolabel = params.nolabel;
var tmpfolder = params.tmpfolder;
var filter = params.filter;
var hidedefault = params.hidedefault; // Afhandelingskenmerken >= 900 met een default waarde hidden maken.
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
if (reado)
return true
else
{
var backo = !user.has("WEB_BEZFOF");
return (ispopup && backo && volgnummer < 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);
}
var sql = getSqlResFlexArt(rsv_artikel_key, artikel_key, filter);
var trn = 0;
listKenmerk(sql,
"RES", // Module
rsv_artikel_key,
{ flexcolumns: flexcolumns,
label_colspan: ((notr || ispopup) ? null : (params.mobile? 1 : (S("bez_sel_contactpersoon") > 0 || S("bez_sel_internpersoon")? 3 : 2)) ),
kenmerk_search: advanced,
fnIsReadonly: isReadonly,
fnIsHidden: (hidedefault? isHidden : null),
prs_key: prs_key, // Wordt alleen gebruikt als geldt (!kenmerk_search && !multiMode)
cont_key: cont_key, // Wordt alleen gebruikt als geldt (!kenmerk_search && !multiMode)
parentKey: rsv_artikel_key,
hideVervallen: rsv_artikel_key < 0,
nameprefix: "flex" + resnum + "_",
mobile: params.mobile,
requiredbyfield: requiredbyfield,
serie: resnum, // Het serie nummer (onderscheid tussen bezoekers) voor dezelfde serie flexkenmerken
flexstart: flexstart,
flexend: flexend,
notr: notr,
nolabel: nolabel,
tmpfolder: tmpfolder
}
);
} %>