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

<!-- #include file="../Shared/common.inc"-->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="../Shared/iface.inc"-->

<%
FCLTHeader.Requires({ plugins:["jQuery"] })

var urole = getQParamSafe("urole", "");   // Indien niet meegegeven, veronderstel dan frontend gebruik

var outputmode = getQParamInt("outputmode", 0); //  0 = screen, 1 = print, 2 = excel etc
var print = (outputmode == 1 || outputmode == 5);
var excel = (outputmode == 2 || outputmode == 6);
var showall = getQParamInt("showall", 0) == 1;

var addButton = [];

var inskenmerkdeelkey = getQParamInt("inskenmerkdeelkey", -1);
var inskenmerkkey = getQParamInt("inskenmerkkey", -1);
var insdeelkey = getQParamInt("insdeelkey", -1);

var consumption_reg = getQParamInt("consumption_reg", 0) == 1;
var save_new_value = getQParamInt("save_new_value", 0) == 1;

var count = 0;

// WEB_INSUSE: One can only see the history
// WEB_INSUSE and prs_write_level WEB_INSMAN: One can change the history
var autfunction = "";
switch(urole)
{
  case "fe": autfunction = "WEB_INSMAN";
           break;
}
// De functie checkAutorisation(autfunction) geeft een Response.End indien er geen autorisatie voor autfunction wordt gevonden
// var authparams = user.checkAutorisation(autfunction);

// Does user have write rights for WEB_INSMAN
sql = "SELECT fd.fac_gebruiker_alg_level_write"
    + " FROM ins_v_aanwezigdeel d"
    + ", fac_v_my_disciplines fd"
    + " WHERE d.ins_discipline_key = fd.ins_discipline_key"
    + " AND d.ins_deel_key = " + insdeelkey
    + " AND fd.prs_perslid_key = " + user_key
    + " AND fd.fac_functie_code = 'WEB_INSMAN'"
var oRs = Oracle.Execute(sql);

var alg_level_write_objman = false;
if (!oRs.eof)
{
  if (oRs(0).value < 9)
    alg_level_write_objman = true;
}
%>

<html>
  <head>
<%
    FCLTHeader.Generate();
%>
  </head>
  <body id="inshistorybody">
  <%
  %>

    <script type="text/javascript">

      function insDelete(row)
      {
        var insData = JSON.parse(row.getAttribute("ROWDATA"));

        if (insData)
        {
          var insKenmerkDeelKey = insData.insKenmerkDeelKey;

          if (!isNaN(insKenmerkDeelKey) && insKenmerkDeelKey > 0)
          {
            var data = {};
            <% protectRequest.dataToken("data"); %>
            $.post("./ins_history_delete.asp?inskenmerkdeelkey=" + insKenmerkDeelKey,
                      data,
                      function process_history_delete(data)
                      {
                          errormsg = data.message;
                          // is er een error message om te laten zien?
                          if (errormsg != "")
                            FcltMgr.alert(errormsg);
                          // reload inhoud history schem
                          //window.location.reload();
                          window.location.href = "ins_verbruik_history.asp?urole=<%=urole%>&consumption_reg=1&insdeelkey=<%=insdeelkey%>";

                      });
          }
        }
      }
    </script>


    <form name=u2 action="ins_verbruik_history.asp" method="get">
<%    if (isNaN(insdeelkey))
      {
        Response.Write("Illegal call: " + Request.ServerVariables("URL"));
        Response.End();
      } %>

      <table width="100%">
        </table>

<%    sql = "SELECT kd.ins_kenmerkdeel_aanmaak"
          + "     , COALESCE (" + lcl.xsql("k.ins_kenmerk_omschrijving", "k.ins_kenmerk_key")
          + "              ,  " + lcl.xsql("sk.ins_srtkenmerk_omschrijving", "sk.ins_srtkenmerk_key") + ") kenmerk_omschrijving"
          + "     , CASE sk.ins_srtkenmerk_kenmerktype"
            + "     WHEN 'X'"
            + "     THEN kd.ins_kenmerkdeel_waarde"
            + "     WHEN 'D'"
            + "     THEN kd.ins_kenmerkdeel_waarde"
            + "     ELSE kd.ins_kenmerkdeel_waarde || ' ' || "+ lcl.xsql('sk.ins_srtkenmerk_dimensie','sk.ins_srtkenmerk_key')
            + "     END kenmerkdeelwaarde"
          + "     , kd.ins_kenmerkdeel_verwijder"
          + "     , sk.ins_srtkenmerk_kenmerktype"
          + "     , kd.ins_kenmerk_key"
          + "     , kd.ins_kenmerkdeel_waarde"
          + "     , sk.ins_srtkenmerk_key"
          + "     , " + lcl.xsqla('sk.ins_srtkenmerk_dimensie','sk.ins_srtkenmerk_key')
          + "     , kd.ins_kenmerkdeel_key"
          + "     , sk.fac_kenmerkdomein_key"
          + "  FROM ins_kenmerkdeel kd"
          + "     , ins_kenmerk k"
          + "     , ins_srtkenmerk sk"
          + " WHERE kd.ins_kenmerkdeel_verwijder IS NOT NULL"
          + "   AND sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key"
          + "   AND kd.ins_kenmerk_key = k.ins_kenmerk_key"
          + "   AND kd.ins_deel_key = " + insdeelkey
          + " ORDER BY ins_kenmerkdeel_aanmaak DESC";
      oRs = Oracle.Execute(sql);

       sql2= "SELECT   COUNT (kd.ins_kenmerk_key) AS aantal "
           + "    FROM ins_kenmerkdeel kd, "
           + "         ins_kenmerk k, "
           + "         ins_srtkenmerk sk "
           + "   WHERE kd.ins_kenmerkdeel_verwijder IS NOT NULL "
           + "     AND sk.ins_srtkenmerk_key = k.ins_srtkenmerk_key "
           + "     AND kd.ins_kenmerk_key = k.ins_kenmerk_key "
           + "     AND kd.ins_deel_key = " + insdeelkey

      oRs2 = Oracle.Execute(sql2);
      var count = oRs2('aantal').value
      oRs2.Close();

      function fnrowData(oRs)
      {
        var insKenmerkDeelKey = oRs("ins_kenmerkdeel_key").value;

        var data = {insKenmerkDeelKey:insKenmerkDeelKey};
        return JSON.stringify(data);
      }

      function fnValue(oRs)
      { // Kolom met de waarde
        content = oRs("kenmerkdeelwaarde").value;
        if (oRs("ins_srtkenmerk_kenmerktype").value == 'X')
        {
          content = '<a href="'
                  + S("image_path_virtual") + safe.htmlattr(content)
                  + '" target="_new">' + content + '</a>';
        }
        else if (oRs("ins_srtkenmerk_kenmerktype").value == 'R' || oRs("ins_srtkenmerk_kenmerktype").value == 'r' || oRs("ins_srtkenmerk_kenmerktype").value == 'S')
        {
            // PF: wat hier stond was absoluut fout. Het zou zoiets moeten zijn, nooit getest en komt nooit voor
            // (referentiekenmerken bij meetwaarden) maar toch voor het idee aangepast en niet weggegooid.
            sql2 = "SELECT fac.getdomeinwaarde(" + oRs("fac_kenmerkdomein_key").value +", "+ oRs("ins_kenmerkdeel_waarde").value + ") FROM DUAL";
            oRs2 = Oracle.Execute(sql2);
            if (!oRs2.eof) {
                  content = oRs2(0).value;
            }
            oRs2.close();
        }
        return content;
      }

      var addurl = "ins_history_add.asp?inskenmerkdeelkey=" + inskenmerkdeelkey + "&inskenmerkkey=" + inskenmerkkey + "&insdeelkey=" + insdeelkey + "&count=" + count;
      if (consumption_reg && alg_level_write_objman)
      {
        addButton = [{ icon: "fa-plus", title: L("lcl_add"), action: "FcltMgr.openModalDetail('" + addurl + "', '" + safe.jsstring(L("lcl_add")) + "')" }]
      }

      var rst = new ResultsetTable({ keyColumn: "ins_kenmerkdeel_key",
                                     sql: sql,
                                     ID: "inshistable",
                                     rowData: fnrowData,
                                     //filterParams: params,
                                     outputmode: outputmode,
                                     title: L("lcl_history"),
                                     showAll: showall,
                                     buttons: addButton
                                   });

      rst.addColumn(new Column({caption: L("lcl_obj_prop_dsc"), content: "kenmerk_omschrijving"}));
      rst.addColumn(new Column({caption: L("lcl_obj_prop_value"), content: fnValue}));
      if (!consumption_reg)
      {
        rst.addColumn(new Column({caption: L("lcl_obj_prop_create_date"), content: "ins_kenmerkdeel_aanmaak"}));
      }
      else
      {
        rst.addColumn(new Column({caption: L("lcl_date"), content: "ins_kenmerkdeel_aanmaak"}));
      }
      if (!consumption_reg)
      {
        rst.addColumn(new Column({caption: L("lcl_obj_prop_delete_date"), content: "ins_kenmerkdeel_verwijder"}));
      }

      // Acties
      if (consumption_reg && alg_level_write_objman)
      {
        rst.addAction({action: "insDelete", caption: L("lcl_delete"), multi: true});
      }

      var count = rst.processResultset();
      if (print || excel)
        Response.End();
%>
    </form>
  </body>
</html>
<% ASPPAGE_END(); %>
