<%@ LANGUAGE="JavaScript" %>
<% /*
     $Revision$
     $Id$

    File:               kenmerk_fill.asp
    Status:
    Description:        Vraag in een modal popup naar de flexkenmerken van *een bestelitem*
    Parameters:         ??

    Context:            ShowModalDialog popup
    Note:               Er is geen interface binnen Facilitor om bestelitem kenmerken te wijzigen
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc" -->
<!-- #include file="./bes.inc" -->

<%
  FCLTHeader.Requires({ plugins:["suggest", "kenmerk"],
                      js: []
                    });

  var srtdeel_key = getQParamInt('srtdeel_key');
  var srtgroup_key = getQParamInt('srtgroup_key');
  var dis_key = getQParamInt('dis_key');
  var prs_key = getQParamInt('prs_key',-1);
  var urole = getQParamSafe("urole");
  var PRSreadlevel = getQParamInt('PRSreadlevel',-1);

  var autfunction = {fo: 'WEB_BESFOF', bo: 'WEB_BESBOF'}[urole] || 'WEB_BESUSE';
  authparams = user.checkAutorisation(autfunction, true, dis_key);

  // PRSreadlevel bepaalt de scope van de personen waarvan ik persoonsafhankelijke kenmerken kan gebruiken

  var prs_name = "";
  if (prs_key > 0) {
    prs_name = new Perslid(prs_key).naam();
  }

  var preview = 0;
  var prsflex = 0;
  // xml genereren als bes_srtdeel_opmaat = 1
  sql = "SELECT bes_srtdeel_preview"
      + ",      bes_srtdeel_prsflex"
      + "  FROM bes_srtdeel"
      + " WHERE bes_srtdeel_key = " + srtdeel_key
  oRs = Oracle.Execute(sql);
  if (!oRs.eof) {
    preview = oRs("bes_srtdeel_preview").value||0;
    prsflex = oRs("bes_srtdeel_prsflex").value||0;
  }
%>

<script type="text/javaScript">
var preview = <%=preview%>
var prsflex = <%=prsflex%>

function doSubmit()
{
  if (!validateForm("u2"))
    return false;

  var objReturn = new Array();
  objReturn[0] = new Array();  // bes_kenmerk_key
  objReturn[1] = new Array();  // bes_kenmerkbestell_waarde
  objReturn[2] = new Array();  // flexkenmerk omschrijving
  objReturn[3] = new Array();  // flexkenmerkwaarde omschrijving
  objReturn[4] = new Array();  // url

  var nameprefix = 'k';
  for (var i=1; i<=window.document.getElementById("k_all").value; i++) {
    if (window.document.getElementById("k" + i + "val")) {

      var kval = window.document.getElementById("k" + i + "val")
      if (kval.value != "")
      {
        var kkey = window.document.getElementById('k' + i + 'key').value;
        objReturn[0][objReturn[0].length] = kkey;
        if (kval.type == 'checkbox') {
          objReturn[1][objReturn[1].length] = (kval.checked?1:0);
        }
        else
          objReturn[1][objReturn[1].length] = kval.value;
        var lbl = $("label[for='k" + i + "val']").text();
        // skip : (haal dubbele punt van de string af)
        lbl = lbl.substring(0, lbl.length - 1)
        objReturn[2][objReturn[2].length] = lbl;

        var tp = window.document.getElementById('k' + i + 't').value;
        if (kval.type == 'checkbox') {
          objReturn[3][objReturn[3].length] = (kval.checked?1:0);
        }
        else if (tp && tp == 'R') {
          objReturn[3][objReturn[3].length] = $('#k' + i + 'val option:selected').text();
        }
        else if (tp && tp == 'S') {
          objReturn[3][objReturn[3].length] = $('#Suggest' + nameprefix + i + '_show').val();
        }
        else {
          objReturn[3][objReturn[3].length] = kval.value;
        }
      }
    }
  }
  var isXmlOk = true;
  if (preview!=1)
  {
    FcltMgr.closeDetail(window, { objReturn: objReturn});
    return true;
  }

  // Ga een preview tonen
  var s = "../Bes/bes_show_item_kenmerk.asp?srtdeel_key=<%=srtdeel_key%>";
  objReturn[4][0] = s;

  FcltMgr.openModalDetail(s, L("lcl_bes_article_details"),
          { width: 500, xheight: 400,
            objReturn:objReturn,
            callback: function (data)
              {
                if (data.isXmlOk)
                {
                    parent.FcltMgr._modalCallback[1]( { objReturn: objReturn} );
                    parent.$('iframe#fcltmodal'+1).dialog('close');
                    //parent.FcltMgr.dialogClose();
                    return true;
                }
                else
                {
                    return false;
                }
              }
            });
  return false;
}

var sgPerson;

function changeName(prs_key) {
    if (prs_key > 0)
    {
      var s = "./bes_edit_item_kenmerk.asp?srtdeel_key=<%=srtdeel_key%>"
        + "&urole=<%=urole%>"
        + "&srtgroup_key=<%=srtgroup_key%>"
        + "&dis_key=<%=dis_key%>"
        + "&prs_key=" + prs_key;
      window.location.href = s;
    }
}
</script>

<html>
<head>
<% FCLTHeader.Generate(); %>
</head>

<body class="modal" id="mod_bes_kenmerk">
<div id="edit">

<form name="u2">
<%  if (prsflex) { %>
<table>
<%
     FCLTpersoonselector(
                "person",
                "sgPerson",
              { autlevel: authparams.PRSreadlevel,
                perslidKey: prs_key>0?prs_key:user_key,
                label: L("lcl_name"),
                onChange: "changeName"
              });
%>
</table>
<%  } %>

<% BLOCK_START("besItemFlex" , L("lcl_flexible_properties")); %>
<tr><td><table width=100% id="theTable">

<%
  sql = "SELECT k.bes_kenmerk_key               kenmerk_key, "
        + lcl.xsql('sk.bes_srtkenmerk_omschrijving', 'sk.bes_srtkenmerk_key') +" kenmerk_omschrijving, "
        + " sk.bes_srtkenmerk_kenmerktype       kenmerk_kenmerktype, "
        + " sk.fac_kenmerkdomein_key            kenmerkdomein_key, "
        + " sk.bes_srtkenmerk_lengte            kenmerk_lengte, "
        + " sk.bes_srtkenmerk_dec               kenmerk_dec, "
        + " sk.bes_srtkenmerk_nmin              kenmerk_nmin, "
        + " sk.bes_srtkenmerk_nmax              kenmerk_nmax, "
        + lcl.xsql('k.bes_kenmerk_default', 'k.bes_kenmerk_key')+ " kenmerk_waarde, "
        + " k.bes_kenmerk_volgnummer            kenmerk_volgnr, "
        + 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, "
        + " k.bes_kenmerk_verplicht             kenmerk_verplicht, "
        + " k.bes_kenmerk_groep                 kenmerk_groep, "
        + " NULL otherpath, "
        + " k.bes_kenmerk_toonbaar              kenmerk_toonbaar,"
        + " k.bes_kenmerk_uniek                 kenmerk_uniek,"
        + " k.bes_kenmerk_regexp                kenmerk_regexp"
        + " FROM bes_srtkenmerk sk"
        + ",     bes_kenmerk k"
        + " WHERE (k.bes_srtinstallatie_key = " + dis_key + " AND k.bes_kenmerk_niveau LIKE 'D'"
        + " OR k.bes_srtinstallatie_key = " + srtgroup_key + " AND k.bes_kenmerk_niveau LIKE 'G'"
        + " OR k.bes_srtinstallatie_key = " + srtdeel_key + " AND k.bes_kenmerk_niveau LIKE 'S')"
        +   " AND k.bes_kenmerk_verwijder IS NULL"
        +   " AND k.bes_srtkenmerk_key = sk.bes_srtkenmerk_key"
        +   " AND sk.bes_srtkenmerk_verwijder IS NULL"
        +   " AND k.bes_kenmerk_type = 'I'"
        +   " ORDER BY k.bes_kenmerk_volgnummer, UPPER("+lcl.xsql('sk.bes_srtkenmerk_omschrijving', 'sk.bes_srtkenmerk_key')+")";

      var trn = 0;

      listKenmerk(sql,
                  "BES",
                  -1,
                  { flexcolumns: 1, // In edit mode kenmerken onder elkaar en niet in 2 kolommen.
                    kenmerk_search: false,
                    prs_key: prs_key,
                    hideVervallen: true // Wijzigen kennen we toch (nog) niet
                    }
                 );
%>

</table></td></tr>
<% BLOCK_END(); %>
<%
buttons = [{title: (preview ? L("lcl_bes_preview"):L("lcl_submit")), icon: "opslaan.png", action: "doSubmit();", singlepress: true, id: "btn_itemkenmerk_submit"},
           {title: L("lcl_back"), icon: "undo.png", action: "FcltMgr.closeDetail(window, { cancel: true });"}
          ];
CreateButtons(buttons);
IFACE.FORM_END();
%>
</form>
</div>
</body>
</html>
