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

    File:         kpn_show_kpn.asp
    Description:  displays the selected kostenplaats. This screen (might) allow entry to the edit screen and allows deleting
    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" -->

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

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

var sql = "SELECT k.prs_kostenplaats_key"
        + "     , k.prs_kostenplaats_nr"
        + "     , k.prs_kostenplaats_omschrijving"
        + "     , k.prs_perslid_key kpn_prs_key"
        + "     , k.prs_kostenplaats_module"
        + "     , k.prs_kostenplaatsgrp_key"
        + "     , k.prs_kostenplaats_eind"
        + "     , k.prs_kostenplaats_limiet"
        + "     , COALESCE(kpg.prs_kostenplaatsgrp_limperiode, k.prs_kostenplaats_limietperiode) limietperiode"
        + "     , k.prs_kostenplaats_extern"
        + "     , k.prs_kostenplaats_fiat"
        + "     , k.prs_kostenplaats_verwijder"
        + "     , kpg.prs_kostenplaatsgrp_limiet"
        + "     , kpg.prs_perslid_key kpngrp_prs_key"
        + "  FROM prs_kostenplaats k"
        + "     , prs_kostenplaatsgrp kpg"
        + " WHERE kpg.prs_kostenplaatsgrp_key(+) = k.prs_kostenplaatsgrp_key"
        + "   AND k.prs_kostenplaats_key = " + kpn_key


oRsMes = Oracle.Execute(sql);

if (!oRsMes.eof)
{
  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_limietperiode = oRsMes("limietperiode").Value? oRsMes("limietperiode").Value : 0;
  var kpn_extern        = oRsMes("prs_kostenplaats_extern").Value? oRsMes("prs_kostenplaats_extern").Value : 0;
  var kpn_fiat          = oRsMes("prs_kostenplaats_fiat").Value == 1;
  var kpn_verwijder     = oRsMes("prs_kostenplaats_verwijder").Value;
  var kpngrp_limiet     = oRsMes("prs_kostenplaatsgrp_limiet").Value;
  var kpngrp_prs_key    = oRsMes("kpngrp_prs_key").Value? oRsMes("kpngrp_prs_key").Value : -1;
  oRsMes.Close();

  sql = "SELECT SUM(k.prs_kostenplaats_limiet) gebruikt_budget"
      + "  FROM prs_kostenplaatsgrp kpg"
      + "     , prs_kostenplaats k"
      + " WHERE kpg.prs_kostenplaatsgrp_key = k.prs_kostenplaatsgrp_key"
      + "   AND kpg.prs_kostenplaatsgrp_key = " + kpn_grpkey;
  oRs = Oracle.Execute(sql);
  var gebruikt_budget = oRs("gebruikt_budget").Value;
}
else
{
  Response.write("internal error or message deleted");
  Response.End;
}

var authparams = user.checkAutorisation("WEB_FINMSU", true);
var canShow = ((authparams && authparams.ALGreadlevel < 9) ||
               (S("prs_restrict_kpedit") == 1 && (kpn_prs_key == user_key || kpngrp_prs_key == user_key))) // Alleen eigen kp/kpg wijzigen
var canChange = ((authparams && authparams.ALGwritelevel < 9) ||
                 (S("prs_restrict_kpedit") == 1 && (kpn_prs_key == user_key || kpngrp_prs_key == user_key))) // Alleen eigen kp/kpg wijzigen
var canDelete = (authparams && authparams.ALGwritelevel < 9)
user.auth_required_or_abort(canShow);

%>

<html>
  <head>
<%  FCLTHeader.Generate(); %>
    <script  type="text/javascript" >
      FcltMgr.setTitle("<%=L("lcl_prs_kosten") + ' ' + safe.jsstring(kpn_nr)%>", {hot:false});
      function kpn_change()
      {
          if (FcltMgr.startEdit(window))
              window.location.href = "kpn_edit_kpn.asp?kpn_key=<%=kpn_key%>"
      }
      function kpn_delete()
      {
         var kpn_key = <%=kpn_key%>;
         if (confirm(L("lcl_kpn_del_txt_kostenplaats")))
         {
            var data = { key: <%=kpn_key%>
                       , level: "KPN"
                       };
            <% protectRequest.dataToken("data"); %>
            $.post("prs_delete.asp",
                   data,
                   FcltCallbackClose,
                   "json");
         }
      }
    </script>
  </head>

  <body id="showbody">
<%
    var buttons = [];
    if (kpn_verwijder == null)
    {
        // Wijzigen van de kostenplaats(groep)? Setting prs_restrict_kpedit {0=volgens autorisatie (default) | 1=alleen eigen kp/kpg wijzigen}
        if (canChange)
          buttons.push({title: L("lcl_change"), action:"kpn_change()", icon: "wijzigen.png" });
        if (canDelete)
          buttons.push({title: L("lcl_delete"), action:"kpn_delete()", icon: "delete.png" });
    }

    IFRAMER_HEADER(L("lcl_kpn_kpn_frame"), buttons);

if (kpn_verwijder != null)
{
%>      <div class="prs_deleted"><%=L("lcl_record_is_deleted")%></div><%
}
%>
    <div id="show">
      <form name=u2 onSubmit="return false;">
<%      // if (alg.canWriteRuimte(room_key, authparams.mALGwritelevel)) TODO
        BLOCK_START("kpnMan", L("lcl_prs_general_info"));
        ROFIELDTR("fld", L("lcl_prs_dept_name"), kpn_nr, params);

        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: true });
        ROFIELDTR("fld",
                  L("lcl_prs_descr"),
                  kpn_oms,
                  {translate: { fld: "prs_kostenplaats_omschrijving", key : kpn_key}, suppressEmpty: true}
                 );
        FCLTpersoonselector("prs_key", // requestor
                              "prs_key",
                             { perslidKey: kpn_prs_key,
                               label: L("lcl_prs_budgethouder"),
                               moreinfo: true,
                               readonly: true,
                               suppressEmpty: true });

        var params = { infoPointer: { Url: "appl/shared/status_info.asp?kpn_key=" + kpn_key,
                                      Title: L("lcl_status_details") + " " + kpn_key
                                    }
                     }

        sql =  "SELECT   prs_kostenplaatsgrp_key, "
            + "         prs_kostenplaatsgrp_oms "
            + "    FROM prs_kostenplaatsgrp kpg "
            + "ORDER BY UPPER (prs_kostenplaatsgrp_oms) "
        FCLTselector("kpn_grpkey",
                     sql,
                     { label: L("lcl_prs_kostenpl_group"),
                       initKey: kpn_grpkey,
                       emptyOption: "",
                       suppressEmpty: true,
                       readonly: true });

        ROCHECKBOXTR("fldcheck", L("lcl_prs_kpnextern"), kpn_extern);
        ROCHECKBOXTR("fldcheck", L("lcl_prs_kpnfiat"), kpn_fiat);
        ROFIELDTR("flddate", L("lcl_end_date"), toDateString(kpn_eind), {suppressEmpty: true});
        ROFIELDTR("fldkpnlimiet", L("lcl_prs_budget") + "&nbsp;" + L("lcl_valutasign"), safe.curr(kpn_limiet), {suppressEmpty: true});
        sql =  "SELECT        0, '' 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: true,
                      suppressEmpty: true });
        BLOCK_END();

        if ( kpngrp_limiet || kpngrp_limiet || gebruikt_budget) {
            BLOCK_START("kpnGrp", L("lcl_prs_budgettering"), true);
            ROFIELDTR("fld", L("lcl_prs_budget") + "&nbsp;" + L("lcl_prs_kostenpl_group") + "&nbsp;" + L("lcl_valutasign"), safe.curr(kpngrp_limiet), {suppressEmpty: true});
            ROFIELDTR("fldfreebudget" + (gebruikt_budget > kpngrp_limiet? " hot" : ""), L("lcl_prs_afwijking_budget") + "&nbsp;" + L("lcl_valutasign"), safe.curr(kpngrp_limiet - gebruikt_budget), {suppressEmpty: true});
            BLOCK_END();
        }
        IFACE.FORM_END();
%>
      </form>
    </div>
  </body>
</html>
