<% /*
     $Revision$
     $Id$

     File:               INS/ins_flexkenmerksrtcontrole.inc
     Description:        Functie die html code genereert voor de presentatie van de flexvelden
     Parameters:         deelsrtcontrole_key  vergelijkbaar met ins_deel_key bij object kenmerken
                         srtcontrole_key      vergelijkbaar met srtdeel_key bij object kenmerken
                         reado                Readonly
                         flexcolumns          aantal kolommen voor flexkenmerken
                         advanced             Geadvanceerd
     Context:            Functie wordt aangeroepen door
                         1) load_kenmerksrtcontrole.asp
                         2) ins_edit_inspect.asp/ins_edit_deel.asp/ins_edit_srtdeel.asp
                         3) ins_show_deel.asp/ins_show_srtdeel.asp
                         4) ins_inspect_plan.asp/ins_inspect_end.asp
                         2 t/m 4 voegen initieel deze html code toe.
     Note:
*/
%>
<!-- #include file="../Shared/kenmerk_common.inc" -->
<%
function generateFlexKenmerkBlock(params)
{
  var authparamsINSUSE = user.checkAutorisation("WEB_INSUSE", true);
  user.auth_required_or_abort(params.reado || authparamsINSUSE);

  var deelsrtcontrole_key = params.deelsrtcontrole_key;
  var srtcontrole_key     = params.srtcontrole_key;
  var reado               = params.reado; // Readonly
  var flexcolumns         = (params.flexcolumns? params.flexcolumns : 1);
  var advanced            = (params.advanced?    params.advanced    : false); // Geavanceerd
  var nodefaults          = (params.nodefaults?  params.nodefaults  : false); // Niet de default waarden invullen voor flexkenmerk maar leeg laten
  var copy                = (params.copy? params.copy : false);
  var kenmerkNiveau       = "I";
  var ignorerequired      = (params.ignorerequired? params.ignorerequired : false);

  function isReadonly (volgnummer)
  {
    return reado;
  }

  var otherKenmerkPath = "NULL otherpath,";
  if (copy)
  { // Kopieeer eventueel flexfiles
    otherKenmerkPath = " 'INS/" + subfolderKey(kenmerkModule, deelsrtcontrole_key) + "/' || ins_kenmerk_key otherpath, ";
  }

  var sqlwaarde = ", (SELECT v.ins_kmdeelsrtcontr_waarde"
                + "     FROM ins_kmdeelsrtcontr v"
                + "    WHERE ("
                + (deelsrtcontrole_key > 0
                  ? "        v.ins_deelsrtcontrole_key = " + deelsrtcontrole_key + "  OR"
                  : "")
                + "          v.ins_deelsrtcontrole_key = " + srtcontrole_key  + ")"
                + "     AND v.ins_kenmerk_key = k.ins_kenmerk_key"
                + "     AND v.ins_kmdeelsrtcontr_verwijder IS NULL)";

  sql = "SELECT DISTINCT " + (advanced?"k.ins_srtkenmerk_key":"k.ins_kenmerk_key") + " kenmerk_key"
      + "     , " + lcl.xsql("t.ins_srtkenmerk_omschrijving", "t.ins_srtkenmerk_key") + " kenmerk_omschrijving"
      + "     , t.ins_srtkenmerk_kenmerktype           kenmerk_kenmerktype"
      + "     , t.fac_kenmerkdomein_key                kenmerkdomein_key"
      + "     , t.ins_srtkenmerk_lengte                kenmerk_lengte"
      + "     , t.ins_srtkenmerk_dec                   kenmerk_dec"
      + "     , t.ins_srtkenmerk_nmin                  kenmerk_nmin"
      + "     , t.ins_srtkenmerk_nmax                  kenmerk_nmax"
      + ((deelsrtcontrole_key > 0)
        ? sqlwaarde
        : (!nodefaults
          ? " , k.ins_kenmerk_default" : " ''")) + "   kenmerk_waarde"
      + "     , k.ins_kenmerk_volgnummer               kenmerk_volgnr"
      + "     , " + lcl.xsql("t.ins_srtkenmerk_dimensie","t.ins_srtkenmerk_key") + " kenmerk_dimensie"
      + "     , k.ins_kenmerk_hint                     kenmerk_hint"
      + "     , k.ins_kenmerk_default                  kenmerk_default"
      + "     , k.ins_kenmerk_verplicht                kenmerk_verplicht"
      + "     , k.ins_kenmerk_groep                    kenmerk_groep"
      + "     , NULL otherpath, "
      + (advanced
        ? "1"
        : "0" ) + "                                    kenmerk_toonbaar"
      + "     , k.ins_kenmerk_uniek                    kenmerk_uniek"
      + "     , k.ins_kenmerk_regexp                   kenmerk_regexp"
      + "     , k.ins_kenmerk_bewerkniveau             bewerk_niveau"
      + "  FROM ins_srtkenmerk t"
      + "     , ins_kenmerk k"
      + "     , ins_srtcontrole c"
      + " WHERE k.ins_srtkenmerk_key = t.ins_srtkenmerk_key"
      + "   AND k.ins_kenmerk_verwijder IS NULL"
      + "   AND t.ins_srtkenmerk_verwijder IS NULL"
      + "   AND k.ins_kenmerk_niveau = 'C'"
      + "   AND k.ins_srtinstallatie_key = c.ins_srtcontrole_key"
      + "   AND c.ins_srtcontrole_key = " + srtcontrole_key
      + " ORDER BY k.ins_kenmerk_volgnummer"
      + "        , UPPER(" + lcl.xsql("t.ins_srtkenmerk_omschrijving", "t.ins_srtkenmerk_key") + ")";

  listKenmerk( sql,
               "INS",
               deelsrtcontrole_key,
               { flexcolumns: flexcolumns,
                 kenmerk_search: false,
                 fnIsReadonly: isReadonly,
                 hideVervallen: deelsrtcontrole_key < 0,
                 parentKey: deelsrtcontrole_key,
                 niveau: kenmerkNiveau,
                 mobile: params.mobile,
                 ignorerequired: ignorerequired
               }
             );
}
%>
