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

    File:        ins_verbruik_search_list.asp
    Description: Vangt de parameters van ins_verbruik_search op en verwerkt die in een aanroep van ins_verbuik_list
    Parameters:
    Context:     Vanuit ins_verbruik_search.asp
    Note:
*/ %>

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

<%
// FORM parameters: de waarde indien aanwezig, anders null
// Vaak is een lege selectie ook een -1, dus dan is-ie wel aanwezig, maar hoeft niet
// als filter te worden toegepast. Dan is null dus gelijk aan -1, qua betekenis,
// Vandaar dat een default van -1 ipv null ook mag
// In eerste instantie identificeren we elk veld gewoon 1-op-1.
if (Request.ServerVariables("REQUEST_METHOD") == "POST")
{
  var outputmode = getFParamInt("outputmode", 0) // 0 = screen, 1 = print, 2 = excel etc
  var showall = getFParamInt("showall", 0) == 1;
}
else
{
  var outputmode = getQParamInt("outputmode", 0) // 0 = screen, 1 = print, 2 = excel etc
  var showall = getQParamInt("showall", 0) == 1;
}

var loc_key = getQParamInt("locatiekey", -1); // Locatie
var srtdeel_key = getQParamInt("srtdeel_key" , -1) // Object soort (ins_srtdeel_key)

var submitting = getFParamInt("do_submit", 0) == 1;

if (submitting)
{
  protectRequest.validateToken();
  min_consumpt = getFParamInt("min_consumpt");
  max_consumpt = getFParamInt("max_consumpt");
  var trackarray = [];
  for (i = min_consumpt; i < max_consumpt; i++)
  {
    new_value   = getFParamInt("cnt" + i);
    last_value  = getFParamInt("last_val" + i);
    deel_key    = getFParamInt("deel_key" + i);
    kenmerk_key = getFParamInt("kenmerk_key" + i);

    if (!isNaN(new_value) && new_value != 0)
    {
      // Per ins_deel bekijken of het gewijzigd mag worden
      var this_ins = ins.func_enabled_deel(deel_key);
      if (!this_ins.canChange)
      {
        sql = "SELECT d.ins_deel_omschrijving"
            + " FROM ins_v_aanwezigdeel d"
            + " WHERE d.ins_deel_key = " + deel_key;
        var oRs = Oracle.Execute(sql);
        var ins_deel_omschrijving = "'" + oRs("ins_deel_omschrijving").value + "'";
  %>
        <script type="text/javascript">
          alert("<%=L("lcl_ins_no_auth_change") + safe.jsstring(ins_deel_omschrijving)%>");
        </script>
  <%
      }
      else
      {
          // StoredProc ins.Ins_Update_Kenmerkdeel_WEB(kenmerkdeel_key IN NUMBER, deel_key, kenmerk_key, waarde, historymode, mselect) wordt niet gebruikt voor import.
          // Daarnaast was deze storedProc hier niet interessant om te gebruiken omdat deze veel meer deed als alleen een update en insert als hier nodig is.
          // Daarom wordt de storedProc hier niet gebruikt en is storedProc niet meer nodig.
          sql = "UPDATE ins_kenmerkdeel"
              + " SET ins_kenmerkdeel_verwijder = " + "SYSDATE"
              + " WHERE ins_deel_key = " + deel_key
              + " AND ins_kenmerk_key = " + kenmerk_key
              + " AND ins_kenmerkdeel_verwijder IS NULL";
          Oracle.Execute(sql);

          sql = "INSERT INTO ins_kenmerkdeel "
              + " (ins_kenmerkdeel_waarde, ins_deel_key, ins_kenmerk_key)"
              + " VALUES "
              + " (" + new_value + ", " + deel_key + ", " + kenmerk_key + ")";
          Oracle.Execute(sql);

          // Tracking toevoegen, ook als nieuwe en oude waardes niet verschillen. Er is namelijk een update/insert geweest.
          // Treacking per object/verbruiksmeter (ins_deel_key)
          sql = "SELECT isk.ins_srtkenmerk_omschrijving kenmerk_omschrijving"
              + "     , isk.ins_srtkenmerk_key srtkenmerk_key"
              + "  FROM ins_kenmerk ik"
              + "     , ins_srtkenmerk isk"
              + " WHERE ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key"
              + "   AND ik.ins_kenmerk_key = " + kenmerk_key;
          oRs = Oracle.Execute(sql);
          kenmerk_oms = oRs("kenmerk_omschrijving").value;
          trackobject = kenmerk_oms + ": " + last_value + L("lcl_trackto") + new_value;

          var update_string = L("lcl_obj_use_title") + "\n" + trackobject;
          shared.trackaction("INSUPD", deel_key, update_string);
      }
    }
  }
}

verbruik_list ("*",
               { outputmode: outputmode,
                 showall: showall,
                 loc_key: (loc_key != -1? loc_key : null),
                 srtdeel_key: (srtdeel_key != -1? srtdeel_key : null)
               }
              );
%>