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

    File:         kpn_edit_mandate
    Description:  file to edit or add kostenplaats mandateringen
    Parameters:
        keys      String van prs_perslidkostenplaats keys
        modal     Weergave in modal scherm. Andere weergave (buttons, gehele breedte)

    Context:
    Note:         Bij bestaande mag je alleen de vinkjes aanpassen
                  Voor de naam/ kostenplaats maak je maar een nieuwe

*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/persoonselector.inc" -->
<!-- #include file="../Shared/kostenplaatsselector.inc" -->
<!-- #include file="prs.inc" -->

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

var kpnman_keys = getQParamIntArray("keys", []);

var modal = (getQParamInt("modal", 0) == 1);

var authparams = user.checkAutorisation("WEB_FINMSU", true);
if (authparams && authparams.ALGwritelevel < 9)
{
  var filtercode = "A"; // alles, mandateren
}
else
{
  var filtercode = "B"; // kostenplaatsverantwoordelijke, ondermandateren

  var authparams = user.checkAutorisation("WEB_FACMAN");
  // Voor WEB_FACMAN kijken naar prs write rechten, fac_functie_min_level = 7, lezen en schrijven organisatie
  // (Let op dat alg write rechten dan altijd -1 zijn, ook bij geen write rechten)
  // Dus alleen kijken naar prs write rechten
  var canWrite = (authparams.PRSwritelevel < 9);
  user.auth_required_or_abort(canWrite);

  if (kpnman_keys.length > 0 && kpnman_keys[0] > -1)
  { // Het is geen nieuwe mandate
    var tobeedited = 0;
    var ingesloten = [];
    for (var i = 0; i < kpnman_keys.length; i++)
    {
      if (canWrite)
      { // De rechten heb je
        sql = "SELECT prs_perslidkostenplaats_key"
            + "     , prs_kostenplaats_key"
            + "  FROM prs_perslidkostenplaats"
            + " WHERE prs_perslidkostenplaats_key = " + kpnman_keys[i]
        var oRs = Oracle.Execute(sql);
        if (oRs.eof)
          shared.record_not_found("<!--" + kpnman_keys[i] + "-->");

        if (!oRs.eof && oRs("prs_kostenplaats_key").value)
        { // prs_kostenplaats_key heeft een waarde
          ingesloten.push(kpnman_keys[i]);
          tobeedited++;
        }
      }
    }
    user.auth_required_or_abort(tobeedited > 0); // We klagen niet over enkele wel en enkele niet
    kpnman_keys = ingesloten;
  }
}

var multi = kpnman_keys.length > 1;

if (multi)
{
  var sql = "SELECT pk.prs_perslidkostenplaats_key"
          + ", k.prs_kostenplaats_key"
          + ", p.prs_perslid_key"
          + ", k.prs_kostenplaats_nr || ' ' || k.prs_kostenplaats_omschrijving kostenplaats"
          + ", " + S("prs_pers_string") + " naam"
          + ", CASE"
          + " WHEN pk.prs_perslidkostenplaats_boeken = 1"
          + " THEN 'ja'"
          + " ELSE 'nee'"
          + " END boeken"
          + ", CASE"
          + " WHEN pk.prs_perslidkostenplaats_inzage = 1"
          + " THEN 'ja'"
          + " ELSE 'nee'"
          + " END inzage"
          + " FROM prs_perslidkostenplaats pk"
          + ", prs_v_aanwezigperslid p"
          + ", prs_kostenplaats k"
          + " WHERE pk.prs_perslid_key = p.prs_perslid_key"
          + " AND k.prs_kostenplaats_key" + (filtercode == "A"? "(+)" : "") + " = pk.prs_kostenplaats_key" // prs_kostenplaats_key != 0 bij alleen FACMAN schrijf rechten
          + " AND pk.prs_perslidkostenplaats_key IN (" + kpnman_keys.join(",") + ")"
          + " ORDER BY kostenplaats, " + S("prs_pers_string") + ", boeken, inzage";
}
else if (kpnman_keys.length > 0 && kpnman_keys[0] > -1)
{
  sql = "SELECT prs_perslidkostenplaats_key"
      + "     , prs_perslid_key"
      + "     , prs_kostenplaats_key"
      + "     , prs_perslidkostenplaats_boeken"
      + "     , prs_perslidkostenplaats_inzage"
      + "  FROM prs_perslidkostenplaats"
      + " WHERE prs_perslidkostenplaats_key = " + kpnman_keys[0]

  var oRs = Oracle.Execute(sql);
  if (oRs.Eof)
      shared.record_not_found("<!--" + kpnman_keys[0] + "-->");

  var kpn_prskey  = oRs("prs_perslid_key").value;
  var kpn_kpnkey  = oRs("prs_kostenplaats_key").value;
  var kpn_kpnbk   = oRs("prs_perslidkostenplaats_boeken").value;
  var kpn_kpninz  = oRs("prs_perslidkostenplaats_inzage").value;

  oRs.Close();
}
%>

<html>
  <head>
<%
    FCLTHeader.Generate();
%>
    <script type="text/javascript">
      kpnman_keys = "<%=kpnman_keys.join(",")%>";

      function kpn_submit()
      {
        document.activeElement.blur(); // trigger laatste onChanges
        if (kpnman_keys.length == 0)
        {
          if (!$("#kpn_kpnbk")[0].checked && !$("#kpn_kpninz")[0].checked)
          { // Checkboxen boeken en inzage zijn niet geselecteerd
            alert(L("lcl_prs_select_one_boekeninzage"));
            return false;
          }
        }
        if (!validateForm("u2"))
            return false;
        $("#savebtn").css('visibility', 'hidden'); // Als protectRequest.validateToken() bij opslaan wordt afgebroken kan niet opnieuw worden opgeslagen
        document.forms.u2.submit();
      }
      function kpn_cancel()
      {
        FcltMgr.closeDetail(window, { cancel: true } );
      }

    </script>
  </head>

  <body id="editbody" <%=modal?"class='modal mod_edit_mandate'":""%>>
<%  if (!modal && kpnman_keys.length > 0)
    {
      var buttons =  [ {title: L("lcl_submit"), action:"kpn_submit()", icon: "opslaan.png", id: "savebtn"},
                       {title: L("lcl_cancel"), action:"kpn_cancel()", icon: "undo.png", id: "cancelbtn"} ];
      IFRAMER_HEADER(L("lcl_kpn_mandate_frame"), buttons);
    }
%>
    <div id="edit">
      <form name="u2"
            action="kpn_edit_mandate_save.asp?keys=<%=kpnman_keys.join(",")%>"
            method="post"
            target="hidFrameSubmit"
            onSubmit="kpn_submit();">
<%      BLOCK_START((modal || kpnman_keys.length == 0? "kpnManModal" : "kpnMan"), "");
        if (multi)
        { %>
          <tr>
            <td colspan="2">
<%            var rst = new ResultsetTable({sql: sql,
                                            keyColumn: "prs_perslidkostenplaats_key",
                                            ID: "prstable",
                                            noPrint: true
                                           });

              rst.addColumn(new Column({caption: L("lcl_prs_kosten"), content: "kostenplaats"}));
              rst.addColumn(new Column({caption: L("lcl_prs_name"), content: "naam"}));
              rst.addColumn(new Column({caption: L("lcl_prs_book"), content: "boeken"}));
              rst.addColumn(new Column({caption: L("lcl_prs_inspection"), content: "inzage"}));

              var cnt = rst.processResultset(); %>
            </td>
          </tr>
<%      }
        else
        {
          FCLTpersoonselector("kpn_prskey", // gemandateerde
                              "sgKpnPrskey",
                              { perslidKey: kpn_prskey,
                                label: L("lcl_prs_name"),
                                whenEmpty: L("lcl_select_persoon"),
                                autlevel: authparams.PRSwritelevel,
                                filtercode: (S("prs_mandaterequiresprofiel") == 1 ? "B" : null),  // UWVA#14068
                                required: true,
                                readonly: kpnman_keys[0] > -1
                              });

          if (kpnman_keys.length == 0 || kpnman_keys[0] == -1)
          {
            sql = "SELECT k.prs_kostenplaats_key kpkey"
                + ", " + S("prs_kpn_string") + " kpstring"
                + ", (SELECT kg.prs_kostenplaatsgrp_oms FROM prs_kostenplaatsgrp kg WHERE kg.prs_kostenplaatsgrp_key = k.prs_kostenplaatsgrp_key) descr"
                + ", UPPER(" + S("prs_kpn_string") + ") upperkpstring"
                + " FROM prs_v_aanwezigkostenplaats k"
                + (filtercode == "B" // Waar ik kostenplaatsverantwoordelijke ben
                  ? " WHERE k.prs_perslid_key = " + user_key
                  : "")
                + " ORDER BY UPPER(" + S("prs_kpn_string") + ")";
            FCLTselector("kpn_kpnkey",
                         sql,
                         { initKey: kpn_kpnkey,
                           label: L("lcl_prs_dept_kosten"),
                           emptyOption: filtercode == "A"? L("lcl_all") : null,
                           multi: true,
                           size: 12
                         });
          }
          else
          {
            FCLTkostenplaatsselector("kpn_kpnkey",
                                     "kpn_kpnkey",
                                       user_key,
                                     { label: L("lcl_prs_dept_kosten"),
                                       kostenplaatsKey: kpn_kpnkey,
                                       whenEmpty: L("lcl_all"),
                                       filtercode: filtercode,
                                       required: filtercode == "B",
                                       readonly: kpnman_keys[0] > -1
                                     });
          }
        } %>
        <tr>
          <td class="label"><label><%=L("lcl_prs_book")%>:</label></td>
          <td><% CHECKBOX("fldalgbez", "kpn_kpnbk", kpn_kpnbk==1) %></td>
        </tr>

        <tr>
          <td class="label"><label><%=L("lcl_prs_inspection")%>:</label></td>
          <td><% CHECKBOX("fldalgbez", "kpn_kpninz", kpn_kpninz == 1) %></td>
        </tr>
        <tr>
          <td>
            <div style="height: <%=kpnman_keys.length == 0 || kpnman_keys[0] == -1? 100 : 250%>px">
              <br>
            </div>
          </td>
        </tr>
<%      BLOCK_END();
        IFACE.FORM_END();
%>
      </form>
      <iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>
    </div>
<%  if (modal || kpnman_keys.length == 0)
    {
      var buttons = [{title: L("lcl_submit"), icon: "opslaan.png", action: "kpn_submit()", id: "savebtn"},
                     {title: L("lcl_cancel"), icon: "undo.png", action: "kpn_cancel()", id: "cancelbtn"}];
      CreateButtons(buttons);
    } %>
  </body>
</html>
