<%@language = "javascript" %>
<% /*
     $Revision$
     $Id$

     Noot: JGL: De code suggereert dat er ook meerdere srtgroep-keys of srtdeel-keys
           meegegeven kunnen worden. 03-2012 kon ik echter niet vinden waar vandaan
*/ %>

<%
DOCTYPE_Disable = true;
%>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/selector.inc" -->

<%
// Build an group list
var autfunction = getFParam("autfunction", ""); // Check of user rechten heeft op meegegeven srtgroup (via discipline)
var srtgroup_key_arr = getFParamIntArray("srtgroup_key_arr", []);
var srtdeel_key_arr  = getFParamIntArray("srtdeel_arr", []); // Deel array
var module = getFParam("module", ""); // Module die de ins_srtgroep-en opvraagt (bes of ins)
var multi = (getFParamInt("multi", 0) == 1);
var size = getFParamInt("size", 4);
var emptyOption = getFParam("emptyOption", null);
var selectfirstone = (getFParamInt("selectfirstone", 0) == 1);
var extraParamValue = getFParam("extraParamValue", "");
var required = (getFParamInt("required", 0) == 1);
var verwijderd = (getFParamInt("verwijderd", 0) == 1);
var datefrom = getFParamDate("datefrom", null);


if (autfunction != "")
  var sql_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 = " + safe.quoted_sql(autfunction);

if (module.toUpperCase() == 'BES') {
    var sql = "SELECT bes_srtdeel_key"
            + ", COALESCE(bes_srtdeel_nr, '') || ' ' || "+lcl.xsqla('d.bes_srtdeel_omschrijving', 'd.bes_srtdeel_key')
            + ", NULL binding"
            + ", bes_srtdeel_nr"
            + ", d.bes_srtdeel_omschrijving"
            + " FROM " + (verwijderd? "bes_srtdeel" : "bes_v_aanwezigsrtdeel") + " d"
            + ", bes_v_aanwezigsrtgroep sg"
            + " WHERE d.bes_srtgroep_key = sg.bes_srtgroep_key"
            + (srtgroup_key_arr.length!=0 ? " AND d.bes_srtgroep_key IN (" + srtgroup_key_arr.join(",") + ")" : " AND 1=0")
            + (autfunction != ""
              ? " AND sg.ins_discipline_key IN (" + sql_aut + ")"
              : "")
            + (verwijderd
              ?   " AND EXISTS"
                + " (SELECT 1"
                + "    FROM bes_bestelling_item bi"
                + "       , bes_bestelopdr_item oi"
                + "   WHERE bi.bes_bestelopdr_item_key = oi.bes_bestelopdr_item_key"
                + "     AND bi.bes_srtdeel_key = d.bes_srtdeel_key)"
                + " AND ((d.bes_srtdeel_verwijder IS NULL) OR (d.bes_srtdeel_verwijder > " + datefrom.beginToSQL() + "))"
              :   " AND (  bes_srtdeel_vervaldatum IS NULL"
                + "     OR bes_srtdeel_vervaldatum > SYSDATE )"
                + " AND (d.bes_srtdeel_verwijder IS NULL )"
              )
            + " ORDER BY d.bes_srtdeel_nr"
            + ", UPPER("+lcl.xsql('d.bes_srtdeel_omschrijving', 'd.bes_srtdeel_key')+")";

} else {
    var sql = "SELECT ins_srtdeel_key"
            + ", COALESCE(ins_srtdeel_nr, '') || ' ' || "+lcl.xsqla('d.ins_srtdeel_omschrijving', 'd.ins_srtdeel_key')
            + ", ins_srtdeel_binding binding"
            + " FROM ins_v_aanwezigsrtdeel d"
            + ", ins_v_aanwezigsrtgroep sg"
            + " WHERE d.ins_srtgroep_key = sg.ins_srtgroep_key"
            + (srtgroup_key_arr.length!=0 ? " AND d.ins_srtgroep_key IN (" + srtgroup_key_arr.join(",") + ")" : " AND 1=0")
            + (autfunction != ""
              ? " AND sg.ins_discipline_key IN (" + sql_aut + ")"
              : "")
            + " AND (ins_srtdeel_vervaldatum IS NULL"
              + " OR ins_srtdeel_vervaldatum > SYSDATE)"
            + " ORDER BY ins_srtdeel_nr"
            + ", UPPER("+lcl.xsql('d.ins_srtdeel_omschrijving', 'd.ins_srtdeel_key')+")";
}

var params = { initKey: srtdeel_key_arr,
               multi: (multi? true : false),
               size: (multi? size : 1),
               required: required
             }

if (extraParamValue != "")
  params.extraParamValue = extraParamValue;
if (emptyOption != null)
  params.emptyOption = emptyOption;
if (selectfirstone)
  params.selectfirstone = selectfirstone;

FCLTselectorOptions(sql,
                    params);
%>
