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

    File:               ins_edit_multi.asp
    Description:        Multi editten van de flexkenmerken van objecten
    Parameters:         ins_keys

    Context:
    Note:

*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc" -->
<!-- #include file="./ins_flexkenmerk.inc" -->
<!-- #include file="ins.inc" -->

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

var urole = getQParamSafe("urole");
var ins_key_arr = getQParamIntArray("ins_keys");

var warning = "";
var result = {};
var tobeedited = 0;
var ingesloten = [];
// Bepaal de objecten in de selectie die
// ook echt geinspecteerd kunnen of mogen worden.
for (var i = 0; i < ins_key_arr.length; i++)
{
  var this_ins = ins.func_enabled_deel(ins_key_arr[i], {urole: urole});
  if (this_ins.canChange)
  {
    ingesloten.push(ins_key_arr[i]);
    tobeedited++;
    var last_this_ins = this_ins; // deze gebruiken we voor rechtencontrole. Niet 100% zuiver maar goed genoeg
  }
}

user.auth_required_or_abort(tobeedited > 0); // We klagen niet over enkele wel en enkele niet

if (ins.isSleCil(ingesloten[0]))
{
    var autfunction = "WEB_SLEBOF";
    module = "SLE";
}
else
    var autfunction = getQParam("pautfunction", (urole == "fo"? "WEB_INSFOF" : "WEB_INSMAN"));
authparams = last_this_ins.authparams(autfunction);
%>

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

    <script type="text/javascript">
      function ins_submit()
      {
        $.post($("form[name=u2]")[0].action,
               $("[name=u2]").serialize(),
               FcltCallbackAndThenAlways(ins_submit_callback),
               "json");
        return true; // disable button
      }

      function ins_submit_callback(json)
      {
        iface.button.enable("btn_edit_submit");
        if (json.success)
          FcltMgr.closeDetail(window, json);
      }

      function ins_cancel()
      {
        FcltMgr.closeDetail(window, { cancel: true } );
      }
    </script>
  </head>


  <body class="fclt-modal" id="mod_insmultiedit">
  <% MODAL_START();
    sql = "SELECT DISTINCT s.ins_srtdeel_key"   // PF: verondersteld de omschrijving overbodig hier
        + "     , g.ins_srtgroep_key"
        + "     , g.ins_discipline_key"
        + " FROM ins_deel d"
        + "    , ins_srtdeel s"
        + "    , ins_srtgroep g"
        + " WHERE s.ins_srtdeel_key = d.ins_srtdeel_key"
        + "   AND s.ins_srtgroep_key = g.ins_srtgroep_key"
        + "   AND d.ins_deel_key in (" + ingesloten.join(",") + ")";
    oRs = Oracle.Execute(sql);
    var ins_srtdeel_key = oRs("ins_srtdeel_key").Value;
    var ins_srtgroep_key = oRs("ins_srtgroep_key").Value;
    var ins_discipline_key = oRs("ins_discipline_key").Value;
    var diff_objsrt = false;
    var diff_grp = false
    var diff_disc = false;
    oRs.MoveNext();
    while (!oRs.eof)
    {
      if (oRs("ins_srtdeel_key").Value != ins_srtdeel_key) diff_objsrt = true;
      if (oRs("ins_srtgroep_key").Value != ins_srtgroep_key) diff_grp = true;
      if (oRs("ins_discipline_key").Value != ins_discipline_key) diff_disc = true;
      oRs.MoveNext();
    }
    oRs.close();
%>
    <form name="u2" action="ins_edit_deel_multi_save.asp?ins_keys=<%=ingesloten.join(",")%>&urole=<%=urole%>" method="post">
<%
      // Ook als de binding bits niet overeeenkomen dan mag je multi wijzigen.
      // De "vaste" kenmerken mag je altijd wijzigen en de flexkenmerken alleen als de objectsoort hetzelfde is.
      if (last_this_ins.canChangeAlg)
      {
        MODAL_BLOCK_START("insGeo", L("lcl_ins_meta_data"), { icon: "fa-clipboard" });
        FCLTcalendar("aanmaakdatum",
                     { initEmpty: true,
                       label: L("lcl_last_action"),
                       volgnr: 1,
                       required: true,
                       onChange: "DateChangedAanmaak()"
                    });
        FCLTcalendar("vervaldatum",
                     { initEmpty: true,
                       label: L("lcl_ins_vervaldatum"),
                       volgnr: 1,
                       onChange: "DateChangedVerval()"
                     });
        FCLTpersoonselector("ins_manager", // beheerder
                          "sgins_manager",
                         { perslidKey: -1,
                           autlevel: authparams && authparams.PRSwritelevel,
                           label: L("lcl_ins_manager"),
                           filtercode: "INSB",
                           moreinfo: false
                        });
        if (S("ins_explode_objects") != 1)
          RWFIELDTR("count", "fldshort", L("lcl_amount"), "", { datatype: "float", extraclass: "relativeValuesAllowed" });
        MODAL_BLOCK_END();
      }
%>
      <script type="text/javascript">
        $(function()
          {
            init_multi();
          });
      </script>
<%

      // Als je objectsoort verschilt dan zijn alleen de "vaste" kenmerken te wijzigen en de flexkenmerken dus niet.
      // Als de groep hetzelfde is en de objectsoort verschillend, dan alleen de flexkenmerken op discipline en groep niveau tonen.
      // Als de discipline hetzelfde is en de objectgroep en objectsoort verschillend, dan alleen de flexkenmerken op discipline niveau tonen.
      if (!diff_disc)
      {
        var fromniveau = "S";
        if (diff_grp)
          fromniveau = "D";
        else if (diff_objsrt)
          fromniveau = "G";
        generateFlexKenmerkBlock({ urole: urole,
                                   ins_key: -1,
                                   srtdeelkey_array: ins_srtdeel_key > 0? [ins_srtdeel_key] : [],
                                   fromniveau: fromniveau,
                                   nodefaults: true,
                                   reado: false,
                                   multi: true,
                                   label_colspan: 2,
                                   relativeValuesAllowed: true
                                 });
      }
      var buttons =  [];
      buttons.push({title: L("lcl_submit"), action:"ins_submit()", icon: "fa-fclt-save", singlepress: true, id: "btn_edit_submit", importance: 1})
      buttons.push({title: L("lcl_cancel"),  action:"ins_cancel()", icon: "fa-fclt-cancel", importance: 3})
      SIMPLE_BLOCK_START();
        CreateButtons(buttons);
      SIMPLE_BLOCK_END();
      IFACE.FORM_END();
%>
    </form>
    <% MODAL_END(); %>
  </body>
</html>
<% ASPPAGE_END(); %>
