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

    File:         kpn_edit_kpn.asp
    Description:  file to edit or add kostenplaatsen
    Parameters:   kpn_key

    Context:
    Note:

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

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

var kpn_key  = getQParamInt("kpn_key", -1);

if (kpn_key > 0)
{
  sql = "SELECT kp.prs_kostenplaats_key"
      + "     , kp.prs_kostenplaats_nr"
      + "     , kp.prs_kostenplaats_omschrijving"
      + "     , kp.prs_perslid_key kpn_prs_key"
      + "     , kp.prs_kostenplaats_module"
      + "     , kp.prs_kostenplaatsgrp_key"
      + "     , kp.prs_kostenplaats_eind"
      + "     , kp.prs_kostenplaats_limiet"
      + "     , kp.prs_kostenplaats_limietperiode"
      + "     , kp.prs_kostenplaats_extern"
      + "     , kp.prs_kostenplaats_fiat"
      + "     , kpg.prs_kostenplaatsgrp_limperiode"
      + "     , kpg.prs_perslid_key kpngrp_prs_key"
      + "  FROM prs_kostenplaats kp"
      + "     , prs_kostenplaatsgrp kpg"
      + " WHERE kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+)"
      + "   AND kp.prs_kostenplaats_key = " + kpn_key
  oRsMes = Oracle.Execute(sql);

  var kpn_nr            = oRsMes("prs_kostenplaats_nr").Value;
  var kpn_oms           = oRsMes("prs_kostenplaats_omschrijving").Value;
  var kpn_prs_key       = oRsMes("kpn_prs_key").Value? oRsMes("kpn_prs_key").Value : -1;
  var kpn_module        = oRsMes("prs_kostenplaats_module").Value;
  var kpn_grpkey        = oRsMes("prs_kostenplaatsgrp_key").Value;
  var kpn_eind          = oRsMes("prs_kostenplaats_eind").Value != null? new Date(oRsMes("prs_kostenplaats_eind").Value) : null;
  var kpn_limiet        = oRsMes("prs_kostenplaats_limiet").Value;
  var kpn_extern        = oRsMes("prs_kostenplaats_extern").Value? oRsMes("prs_kostenplaats_extern").Value : 0;
  var kpn_fiat          = oRsMes("prs_kostenplaats_fiat").Value == 1;
  var kpg_limperiode    = oRsMes("prs_kostenplaatsgrp_limperiode").Value? oRsMes("prs_kostenplaatsgrp_limperiode").Value : 0;
  var kpn_limietperiode = kpg_limperiode? kpg_limperiode : (oRsMes("prs_kostenplaats_limietperiode").Value? oRsMes("prs_kostenplaats_limietperiode").Value : 0);
  var kpngrp_prs_key    = oRsMes("kpngrp_prs_key").Value? oRsMes("kpngrp_prs_key").Value : -1;
  oRsMes.Close();
}
else
{
  var kpn_eind = null;
  var kpn_limietperiode = 0;
  var kpn_prs_key = -1;
  var kpn_fiat = true;
  var kpngrp_prs_key = -1;
}

// Wijzigen van de kostenplaats(groep)? Setting prs_restrict_kpedit {0=volgens autorisatie (default) | 1=alleen eigen kp/kpg wijzigen}.
// WEB_FINMSU rechten of budgethouder.
var authparams = user.checkAutorisation("WEB_FINMSU", true);
var canChangeAlg = (authparams && authparams.ALGwritelevel < 9);
var canChange = (canChangeAlg ||
                 (S("prs_restrict_kpedit") == 1 && (kpn_prs_key == user_key || kpngrp_prs_key == user_key))) // Alleen eigen kp/kpg wijzigen
user.auth_required_or_abort(canChange);

%>

<html>
  <head>
<%  FCLTHeader.Generate();
%>
    <script>
      function checkLimit(evt)
      {
        evt = evt || window.event;
        var obj = evt.srcElement || evt.target;
        var limit = obj.value;
        if (limit != ""
             && (!isGoodNumber(limit,true,false,8,-1)
             || parseInt(limit, 10) < 0
             || parseInt(limit, 10) > 99999999))
        {
          alert(L("lcl_prs_bad_budget"));
          window.setTimeout(function(){$("#kpn_limiet").select()}, 0); // Zonder setTimeout functie gaat zetten van focus niet goed.
          return false;
        }
        return true;
      }

      function kpn_submit()
      {
        document.activeElement.blur(); // trigger laatste onChanges
        if (!validateForm("u2"))
          return false;
        document.forms.u2.submit(); //TODO???
      }

      function kpn_cancel()
      {
        FcltMgr.closeDetail(window, { cancel: true } );
      }

      function onChangeKpngrp()
      {
        if ($("#kpn_grpkey :selected").val() > -1)
        {
          var kpngrp_limperiode = $("#kpn_grpkey :selected")[0].getAttribute("prs_kostenplaatsgrp_limperiode");
          $("#kpn_limietperiode, #kpn_limietperiode_ro").closest("td").load("loadLimietPeriode.asp",
                                                                            { kpn_limietperiode: (kpngrp_limperiode > 0? kpngrp_limperiode : <%=kpn_limietperiode%>),
                                                                              readonly: (kpngrp_limperiode > 0? 1 : 0)
                                                                            });
        }
      }
    </script>
  </head>

  <body id="editbody">
<%
    var buttons =  [ {title: L("lcl_submit"), action:"kpn_submit()", icon: "opslaan.png" },
                     {title: L("lcl_cancel"), action:"kpn_cancel()", icon: "undo.png" } ];
    IFRAMER_HEADER(L("lcl_kpn_kpn_frame"), buttons);
%>
    <div id="edit">
      <form name="u2"
            action="kpn_edit_kpn_save.asp?kpn_key=<%=kpn_key%>"
            method="post"
            target="hidFrameSubmit"
            onSubmit="kpn_submit();">
        <input type="hidden" name="kpg_limperiode" value="<%=kpg_limperiode%>">
<%      BLOCK_START("kpnMan", "");
        RWFIELDTR("kpn_nr",  "fld",          L("lcl_prs_dept_name"),        kpn_nr, {required: true, maxlength: 30, readonly: !canChangeAlg});

        sql =  "SELECT   'ALG' modulekey, "
            + "         LCL.L('lcl_prs_kosttype_alg') omschrijving "
            + "    FROM DUAL "
            + "UNION ALL "
            + "SELECT   'PRJ' modulekey, "
            + "         LCL.L('lcl_prs_kosttype_prj') omschrijving "
            + "    FROM DUAL "
            + "UNION ALL "
            + "SELECT   'PRS' modulekey, "
            + "         LCL.L('lcl_prs_kosttype_prs') omschrijving "
            + "    FROM DUAL "
            + "ORDER BY 1 "
        FCLTselector("kpn_module", sql,
                    { label: L("lcl_prs_type"),
                      initKey: kpn_module,
                      emptyOption: "",
                      readonly: !canChangeAlg,
                      required: true });
        RWFIELDTR("kpn_oms",  "fld",          L("lcl_prs_descr"),        kpn_oms, {maxlength: 60, readonly: !canChangeAlg});
        FCLTpersoonselector("prs_key", // requestor
                             "sgPerson",
                            { perslidKey: kpn_prs_key,
                              label: L("lcl_prs_budgethouder"),
                              whenEmpty: L("lcl_search_generic"), // want filter
                              readonly: !canChangeAlg });

        sql =  "SELECT prs_kostenplaatsgrp_key"
            + "      , prs_kostenplaatsgrp_oms"
            + "      , COALESCE(prs_kostenplaatsgrp_limperiode, 0) prs_kostenplaatsgrp_limperiode"
            + "   FROM prs_kostenplaatsgrp kpg"
            + " ORDER BY UPPER (prs_kostenplaatsgrp_oms)"
        FCLTselector("kpn_grpkey", sql,
                    { label: L("lcl_prs_kostenpl_group"),
                      initKey: kpn_grpkey,
                      emptyOption: "",
                      readonly: !canChangeAlg,
                      onChange: "onChangeKpngrp()",
                      extraParamValue: "prs_kostenplaatsgrp_limperiode" });
        if (!canChangeAlg)
        { %>
          <input type="hidden" name="kpn_grpkey" value="<%=kpn_grpkey%>">
<%      }
        RWCHECKBOXTR("kpn_extern", "fldcheck", L("lcl_prs_kpnextern"), kpn_extern, {readonly: !canChangeAlg});
        RWCHECKBOXTR("kpn_fiat", "fldcheck", L("lcl_prs_kpnfiat"), kpn_fiat, {readonly: !canChangeAlg});
        // <!-- Datum -->
        FCLTcalendar("enddate",
                     { label: L("lcl_end_date"),
                       datum: kpn_eind,
                       readonly: !canChangeAlg,
                       initEmpty: !kpn_eind || kpn_key <= 0
                     });

        RWFIELDTR("kpn_limiet", "fldkpnlimiet", L("lcl_prs_budget") + "&nbsp;(" + L("lcl_valutasign")+")", kpn_limiet, {datatype: "number", maxlength: 8, html: "onChange='checkLimit(event)'"});

        sql =  "SELECT        0, " + safe.quoted_sql(L("lcl_prs_none")) + " FROM DUAL"
            +  " UNION SELECT 1, " + safe.quoted_sql(L("lcl_prs_per_month")) + " FROM DUAL"
            +  " UNION SELECT 2, " + safe.quoted_sql(L("lcl_prs_annual")) + " FROM DUAL";
        FCLTselector("kpn_limietperiode",
                     sql,
                     { label: L("lcl_prs_budgetperiode"),
                       initKey: kpn_limietperiode,
                       readonly: kpg_limperiode });

          // Extra ruimte creëren voor de datumveld popup
%>
          <tr>
            <td>
              <div style="height: 50px">
                <br>
              </div>
           </td>
          </tr>
<%      BLOCK_END();
IFACE.FORM_END();
%>
      </form>
      <iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>
    </div>
  </body>
</html>
