Files
Facilitor/APPL/Shared/loadDisc.asp
Maykel Geerdink c3f786dd79 RABO#68927: Mogelijkheid voor een multi-select op vakgroeptype.
svn path=/Website/trunk/; revision=53906
2021-11-29 10:57:14 +00:00

83 lines
3.7 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
NOTE: als hier inhoudelijk wordt gewijzigd, dan mogelijk in mld/mld-search.asp ook.
*/ %>
<%
DOCTYPE_Disable = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<%
// Build an article list
var urole = getQParamSafe("urole");
var fronto = urole == "fo";
var backo = urole == "bo";
var minfo = urole == "mi"; // NOT APPLICABLE?
var frontend = (urole == "fe" || (!fronto && !backo && !minfo));
var autfunction_arr = getQParamArray("autfunction", []); // Check of user rechten heeft op meegegeven artikelen
var srtdisc_key_arr = getQParamIntArray("srtdisc_key_arr", []); // Vakgroeptype Array
var disc_key_arr = getQParamIntArray("disc_key_str", []); // Vakgroep Array
var offerte = getQParamInt("offerte", -1);
var discsql_aut = "SELECT ins_discipline_key"
+ " FROM fac_v_webgebruiker g"
+ ", fac_functie f"
+ " WHERE g.prs_perslid_key = " + user_key
+ " AND f.fac_functie_key = g.fac_functie_key"
+ " AND f.fac_functie_code IN (" + safe.quoted_sql_join(autfunction_arr) + ")"
+ " AND g.fac_gebruiker_alg_level_read < 9"; // MGE: Als alg_level_read = 9 dan komt waarde niet meer voor in fac_v_webgebruiker. Regel zou dus weg kunnen
var discsql = " SELECT DISTINCT m1.ins_discipline_key, "
+ (srtdisc_key_arr.length > 0
? ""
: "NVL2(sd.ins_srtdiscipline_prefix, sd.ins_srtdiscipline_prefix || '-', '') || ")
+ lcl.xsqla('m1.ins_discipline_omschrijving', 'm1.ins_discipline_key')
+ " FROM mld_v_aanwezigdiscipline m1"
+ ", ins_srtdiscipline sd"
+ ", mld_disc_params dp"
+ (offerte >= 0
? " , mld_typeopdr_srtdiscipline tsd"
+ " , mld_typeopdr mto"
: "")
+ " WHERE m1.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND dp.mld_ins_discipline_key = m1.ins_discipline_key"
+ " AND BITAND(dp.mld_disc_params_srtgroep, 1) = 1" // Alleen primaire
+ (offerte >= 0
? " AND sd.ins_srtdiscipline_key = tsd.ins_srtdiscipline_key"
+ " AND tsd.mld_typeopdr_key = mto.mld_typeopdr_key"
+ " AND (tsd.ins_discipline_key IS NULL OR tsd.ins_discipline_key = m1.ins_discipline_key)"
+ " AND mto.mld_typeopdr_isofferte = " + offerte
: "")
+ " AND EXISTS (SELECT 'x'"
+ " FROM mld_stdmelding ms"
+ " WHERE m1.ins_discipline_key = ms.mld_ins_discipline_key"
+ " AND ms.mld_stdmelding_verwijder IS NULL)"
+ " AND m1.ins_discipline_key IN (" + discsql_aut + ")"
+ (srtdisc_key_arr.length != 0
? " AND m1.ins_discipline_key IN (SELECT ins_discipline_key"
+ " FROM mld_discipline"
+ " WHERE ins_srtdiscipline_key IN (" + srtdisc_key_arr.join(",") + "))"
: "")
+ (disc_key_arr.length != 0
? " AND m1.ins_discipline_key IN (" + disc_key_arr.join(",") + ")"
: "")
+ " ORDER BY 2";
FCLTselectorOptions(discsql,
{ initKey: disc_key_arr.join(","),
onChange: 'updateStdm("' + urole + '", "' + autfunction_arr.join(",") + '");',
multi: true,
size: 3,
emptyOption: (disc_key_arr.length == 0 ? L("lcl_search_generic") : null) // Als een disc_key_arr is meegegeven dan geen lege optie
});
%>
<% ASPPAGE_END(); %>