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

    File:           ins_deel.asp
    Description:    wrapper voor objecten bewerk / show
    Parameters:     urole, ins_key
    Context:
    Note:

*/ %>
<!--#include file="../Shared/common.inc" -->
<!--#include file="../Shared/iface.inc" -->

<%
FCLTHeader.Requires({ plugins:["suggest", "jQuery"],
                      js: ["jquery-ui.js"]
                    })

var urole = getQParamSafe("urole");
// Het maakt ons hier nog niet uit of wel in SLE zitten

var ins_key = getQParamInt("ins_key", -1);
var copy = (getQParamInt("ins_copy", 0) == 1);
var disc = getQParamInt("disc", -1);

// OVERIGE PARAMETERS
var transitParam = buildTransitParam(["parent_key", "disc", "Group", "sort", "dept", "prs_key", "ins_copy",
                                      "locatiekey", "gebouwkey", "verdiepingkey", "ruimtekey", "werkplekkey"]);

var ins_name = "";
var ins_srtname = "";
var ins_parentkey;
var gevuldLogboek;
var canInspect = false;
var isSLE = false;

if (ins_key > 0)
{
  sql = " select ins_deel_omschrijving, ins_deel_parent_key, ins_deel_verwijder"
      +", " + lcl.xsqla('sd.ins_srtdeel_omschrijving', 'sd.ins_srtdeel_key')
      + "  FROM ins_deel d, ins_srtdeel sd "
      + "  WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key"
      + "  AND ins_deel_key = " + ins_key;

  oRs = Oracle.Execute(sql);
  ins_name = oRs("ins_deel_omschrijving").value;
  ins_srtname = oRs("ins_srtdeel_omschrijving").value;
  ins_parentkey = oRs("ins_deel_parent_key").value;
  var ins_deleted = oRs("ins_deel_verwijder").value != null;

  sql = "SELECT COUNT(*) "
      + "  FROM mld_melding_object"
      + " WHERE ins_deel_key = " + ins_key;
  oRs = Oracle.Execute(sql);
  gevuldLogboek = oRs(0).value > 0;

  // Inspecties mogelijk op dit object?
  var sql = "SELECT COUNT(*)"
          + "  FROM ins_srtcontrole isc,"
          + "       ins_deel d,"
          + "       ins_srtdeel sd"
          + " WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key"
          + "   AND ins_deel_key = " + ins_key
          + "  AND (    isc.ins_srtcontrole_niveau = 'S' AND isc.ins_srtinstallatie_key = d.ins_srtdeel_key"
          + "        OR isc.ins_srtcontrole_niveau = 'G' AND isc.ins_srtinstallatie_key = sd.ins_srtgroep_key"
          + "        OR isc.ins_srtcontrole_niveau = 'D' AND isc.ins_srtinstallatie_key = d.ins_discipline_key"
          + "      )"

  oRs = Oracle.Execute(sql);
  canInspect = (oRs(0).Value > 0);

  // Is dit een sleutel of cilinder? Dan willen we geen subframes
  var sql = "SELECT COUNT(*)"
          + "  FROM ins_deel d,"
          + "       ins_srtdeel sd"
          + " WHERE sd.ins_srtdeel_key = d.ins_srtdeel_key"
          + "   AND (sd.ins_srtgroep_key = " + S("sle_ins_srt_groep_key")
          + "       OR sd.ins_srtgroep_key = " + S("cil_ins_srt_groep_key") + ")"
          + "   AND ins_deel_key = " + ins_key;

  oRs = Oracle.Execute(sql);
  isSLE = (oRs(0).Value > 0);
  oRs.Close();

  var insContracts = false;
  var authparamsCNTUSE = user.checkAutorisation("WEB_CNTUSE", true);
  var authparamsCNTMAN = user.checkAutorisation("WEB_CNTMAN", true);
  var curole = "bo";

  if (!authparamsCNTMAN && authparamsCNTUSE)
      curole = "fe";

  if (authparamsCNTMAN || authparamsCNTUSE)
  {
      var sql = "SELECT   1"
              + "  FROM   cnt_v_aanwezigcontract_object cao, cnt_contract c, ins_deel d"
              + " WHERE       cao.cnt_contract_key = c.cnt_contract_key"
              + "         AND c.cnt_contract_status = 0"
              + "         AND c.cnt_contract_verwijder IS NULL"
              + "         AND d.ins_deel_key =" + ins_key
              + "         AND d.ins_srtdeel_key = cao.cnt_ins_srtdeel_key"
              + "         AND ROWNUM = 1";

      oRs = Oracle.Execute(sql);
      insContracts = !oRs.eof;
      oRs.Close();
  }
}
%>
<html>
  <head>
<%
    FCLTHeader.Generate();
%>
    <script  type="text/javascript" >
      copy = <%=copy? 1 : 0%> == 1;
<%    if (ins_key > 0 && !copy)
      { %>
        FcltMgr.setTitle("<%=safe.jsstring(ins_name)%>", {hot: false});
<%    }
      else
      { %>
        FcltMgr.startEdit(window);
        if (copy) FcltMgr.setTitle(L("lcl_ins_copy") + " " + L("lcl_shared_object").toLowerCase(), {hot: false});
<%    } %>

      function insClose(params)
      {
<%      if (ins_key == -1 || copy)
        { %>
          if (params.cancel)
          {
            FcltMgr.closeDetail(window, params );
            return true;
          }
          if (!params.keepForm)
            window.location.href = "ins_deel.asp?verynew=1&ins_key=" + params.ins_key + "&urole=" + params.urole;
<%      }
        else
        { // Bestaand object bewerkt, switch naar show-mode
%>
          if (params.close)
            FcltMgr.closeDetail(window, { close: true})
          if (!params.keepForm)
            $("#insFrame")[0].src = "ins_show_deel.asp?urole=<%=urole%>&ins_key=<%=ins_key%>";
<%      } %>
      }
    </script>
  </head>

  <body>
<%  if (ins_key == -1 || copy)
      var page="ins_edit_deel.asp"; // Maak een nieuw
    else
      var page="ins_show_deel.asp";
    page += "?urole=" + urole + "&ins_key=" + ins_key + transitParam;

    IFRAMER("insFrame", page, { FcltClose: "insClose", initHeight: "250px" } );

    // Bijbehorende onderdelen, ook als er geen zijn (om toe te kunnen voegen) //TODO: alleen zien bij bo, klopt dat? volgens mij niet nodig bij uitlenen innemen.
    if (!ins_deleted && ins_key > 0 && ins_parentkey == null && urole == "bo" && !copy && !isSLE)
    {
      page = "ins_list.asp?parent_key=" + ins_key + "&urole=" + urole;
      IFRAMER("insSubframe", page, { initHide: true,
                                     FcltClose: "insClose" } );
    }
    // Gerelateerde objecten, ook als er geen zijn (om toe te kunnen voegen)
    if (!ins_deleted && ins_key > 0 /* && ins_parentkey == null */ && urole == "bo" && !copy && !isSLE)
    {
      page = "ins_list.asp?koppel_key=" + ins_key + "&urole=" + urole;
      IFRAMER("insKoppelframe", page, { initHide: true,
                                     FcltClose: "insClose" } );
    }
    // Bijbehorende logmeldingen als die er zijn
    // Als je geen mld rechten hebt dan hoef je iframe ook niet te tonen.
    if (urole == "bo")
      var autfunction = "WEB_MLDBOF";
    else if (urole == "fo")
      var autfunction = "WEB_MLDFOF";
    else if (urole == "mi")
      var autfunction = "WEB_MLDBAC";
    else
      var autfunction = "WEB_MLDUSE";
    var authparams = user.checkAutorisation(autfunction, true);
    if (!ins_deleted && ins_key > 0 && gevuldLogboek && !copy && authparams)
    {
      page = "../mld/mld_search_list.asp?ins_key=" + ins_key + "&tiny=1&urole=" + urole;
      IFRAMER("insMldframe", page, { initHide: true } );
    }
    // autorisatiecheck zit verwerkt in insContracts
    if (!ins_deleted && ins_key > 0 && !copy && insContracts)
    {
      page = "../cnt/cnt_search_list.asp?ffutu=1&fact=1&frap=1&fopz=1&sact=1&ins_key=" + ins_key + "&urole=" + curole;
      IFRAMER("insCNTframe", page, { initHide: true } );
    }

    if (!ins_deleted && canInspect && !copy)
    {
      page = "ins_inspect_list.asp?ins_key=" + ins_key + "&urole=" + urole;
      IFRAMER("insInspectframe", page, { initHide: false } );
    }

%>
  </body>
</html>
