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

     File:          alg_srtruimte.asp
     Description:   Wijzigen van srtruimte gegevens
     Parameters:
     Context:
*/ %>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/disciplineselector.inc" -->
<!-- #include file="../Shared/stdmeldingselector.inc" -->
<!-- #include file="../Shared/selector.inc" -->

<%
FCLTHeader.Requires({js: ["jquery-ui.js"]});

var srtruimte_key = getQParamInt("alg_srtruimte_key", -1); // default is nieuwe
var mode          = getQParam("mode", "show");

if (srtruimte_key == -1 && mode == "show")
    mode = "new";

var authparams = user.checkAutorisation("WEB_ALGMSU");

var srtr_info = {};

if (srtruimte_key > 0)
{   // bestaande ruimtesoort
    var sql = "SELECT r.alg_srtruimte_key"
            + "     , r.alg_srtruimte_omschrijving"
            + "     , r.alg_srtruimte_prijs"
            + "     , r.alg_srtruimte_prijs2"
            + "     , r.alg_srtruimte_prijs3"
            + "     , r.alg_srtruimte_prijs4"
            + "     , r.alg_srtruimte_prijs5"
            + "     , r.alg_srtruimte_code"
            + "     , r.prs_bevat_werkplek"
            + "     , r.prs_verhuurbaar"
            + "     , r.alg_srtruimte_t_uitvoertijd.tijdsduur uitvoertijd_t"
            + "     , r.alg_srtruimte_t_uitvoertijd.eenheid uitvoertijd_e"
            + "     , r.alg_srtruimte_verwijder"
            + "  FROM alg_srtruimte r"
            + " WHERE alg_srtruimte_key = " + srtruimte_key;
    oRs = Oracle.Execute(sql);
    if (!oRs.eof)
    {
      var srtr_info = { alg_srtruimte_omschrijving: oRs("alg_srtruimte_omschrijving").Value,
                        alg_srtruimte_prijs:        oRs("alg_srtruimte_prijs").Value,
                        alg_srtruimte_prijs2:       oRs("alg_srtruimte_prijs2").Value,
                        alg_srtruimte_prijs3:       oRs("alg_srtruimte_prijs3").Value,
                        alg_srtruimte_prijs4:       oRs("alg_srtruimte_prijs4").Value,
                        alg_srtruimte_prijs5:       oRs("alg_srtruimte_prijs5").Value,
                        alg_srtruimte_code:         oRs("alg_srtruimte_code").Value,
                        prs_bevat_werkplek:         oRs("prs_bevat_werkplek").Value,
                        prs_verhuurbaar:            oRs("prs_verhuurbaar").Value,
                        tijd_uitvoertijd:           oRs("uitvoertijd_t").Value,
                        eenh_uitvoertijd:           oRs("uitvoertijd_e").Value
                      };
      var srtruimte_deleted = oRs("alg_srtruimte_verwijder").value != null;
    }
    oRs.close();
}
else
{   // nieuwe ruimtesoort
    var srtr_info = { alg_srtruimte_omschrijving: "",
                      alg_srtruimte_code:         "",
                      tijd_uitvoertijd: null,
                      eenh_uitvoertijd: null
                    };
}

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

if (mode == "save")
{
    var fields = [ { dbs: "alg_srtruimte_omschrijving",            typ: "varchar", frm: "omschrijving" },
                   { dbs: "alg_srtruimte_prijs",                   typ: "float",   frm: "prijs" },
                   { dbs: "alg_srtruimte_prijs2",                  typ: "float",   frm: "prijs2" },
                   { dbs: "alg_srtruimte_prijs3",                  typ: "float",   frm: "prijs3" },
                   { dbs: "alg_srtruimte_prijs4",                  typ: "float",   frm: "prijs4" },
                   { dbs: "alg_srtruimte_prijs5",                  typ: "float",   frm: "prijs5" },
                   { dbs: "alg_srtruimte_code",                    typ: "varchar", frm: "code" },
                   { dbs: "prs_bevat_werkplek",                    typ: "check",   frm: "bevatwerkplek" },
                   { dbs: "prs_verhuurbaar",                       typ: "check",   frm: "verhuurbaar" }
                 ];

    // Checken of het eenheden selectveld met dagen/uren bij "Uitvoertijd" niet readonly was en wel is meegegeven.
    // Als dit eenheden selectieveld readonly was dan is er geen waarde voor uitvoertijd ingevuld en moeten beide waarden null worden.
    fields = shared.add_time_field(fields, "alg_srtruimte_t_uitvoertijd",   "uitvoertijd",   "dayshours_urg");

    // Update, delete of insert uitvoeren.
    if (srtruimte_key > 0)
    {
        var sql = buildUpdate("alg_srtruimte", fields)
                + " alg_srtruimte_key = " + srtruimte_key;
        var err = Oracle.Execute(sql, true);
    }
    else
    {
        fields.push( { dbs: "alg_srtruimte_key", typ: "key", seq: "alg_s_alg_srtruimte_key" } );
        var algIns = buildInsert("alg_srtruimte", fields);
        var alg_srtruimte_key = algIns.sequences["alg_srtruimte_key"];
        var err = Oracle.Execute(algIns.sql, true);
        srtruimte_key = alg_srtruimte_key;
    }

    if (err.friendlyMsg)
    {
%>
        <script>
            alert("<%=safe.jsstring(err.friendlyMsg)%>");
        </script>
<%
    }
    else
    {
%>
        <script>
            $(document).ready(function () {parent.window.location.href="alg_srtruimte.asp?mode=show&alg_srtruimte_key=<%=srtruimte_key%>";} );
        </script>
<%
    }
    Response.End;
}
else if (srtruimte_key > 0 && mode == "delete")
{
    var sql = "UPDATE alg_srtruimte"
            + "   SET alg_srtruimte_verwijder = SYSDATE"
            + " WHERE alg_srtruimte_verwijder IS NULL"
            + "   AND alg_srtruimte_key = " + srtruimte_key;
    var err = Oracle.Execute(sql, true);
%>
    <script>
        $(document).ready(function () {
            FcltMgr.closeDetail(window, { alg_srtruimte_key: <%=srtruimte_key%>,
                                          warning: "<%=safe.jsstring(err.friendlyMsg)%>",
                                          keepForm: <%=err.friendlyMsg? "true" : "false"%>
                                        });
        } );
    </script>
<%
    Response.End;
}
%>
<script type="text/javascript" >

    function alg_submit()
    {
        $("#verhuurbaar").prop("disabled", false); // Weer enabled zodat waarde ook gesubmit wordt.
        if (!validateForm("u2"))
            return false;

        document.forms.u2.submit();
    }

    function alg_edit()
    {
        window.location.href = "alg_srtruimte.asp?mode=edit&alg_srtruimte_key=<%=srtruimte_key%>";
    }

    function alg_delete()
    {
        if (confirm("<%=safe.jsstring(L("lcl_R_U_sure"))%>"))
            window.location.href = "alg_srtruimte.asp?mode=delete&alg_srtruimte_key=<%=srtruimte_key%>";
    }

    function alg_cancel()
    {
        if (<%=srtruimte_key%> > 0)
        {
            window.location.href = "alg_srtruimte.asp?mode=show&alg_srtruimte_key=<%=srtruimte_key%>";
        }
        else
        {
            FcltMgr.closeDetail(window, { cancel: true });
        }
    }

    function alg_close(params)
    {
<%      if (srtruimte_key == -1)
        {
%>
          if (params.cancel)
          {
            FcltMgr.closeDetail(window, params);
            return true;
          }
<%      }
        else
        { // Bestaand ruimtesoort bewerkt, switch naar show-mode
%>
          if (params.close)
          {
            FcltMgr.closeDetail(window, { close: true})
          }
<%      }
%>
        if (!params.keepForm)
          window.location.href = "alg_srtruimte.asp?mode=show&alg_srtruimte_key=" + params.srtruimte_key;
    }

    function onChangeBevatWerkplek()
    {
        // Als bevat_werkplek is aangevinkt, moet verhuurbaar ook aangevinkt worden (constraint ALG_C_PRS_WERKPLEK_VERHUURBAAR)
        if ($("#bevatwerkplek").is(":checked"))
        {
          $("#verhuurbaar").prop("checked", "checked");
          $("#verhuurbaar").prop("disabled", true);
        }
        else
        {
          $("#verhuurbaar").prop("disabled", false);
        }

    }

    function onChangeUitvoertijd()
    {
        if (isNaN(parseFloat($("#uitvoertijd").val())))
          $("#dayshours_urg").prop("disabled", true);
        else
          $("#dayshours_urg").prop("disabled", false);
    }

    jQuery(document).ready(function()
                           {
                               $('textarea').resize(function () { FcltMgr.resized(window) } );
                               $('textarea').autogrow();
                           });
</script>
  </head>

  <body id="<%=((mode == "show")? "showbody" : "editbody")%>">
<%
    var buttons = [];

    if (!srtruimte_deleted)
    {
        if (mode == "show")
        {
            buttons.push( {title: L("lcl_change"), action:"alg_edit()",   icon: "wijzigen.png" } );
            buttons.push( {title: L("lcl_delete"), action:"alg_delete()", icon: "delete.png" } );
        }
        else
        {
            buttons.push( {title: L("lcl_submit"), action:"alg_submit()", icon: "opslaan.png" } );
            buttons.push( {title: L("lcl_cancel"), action:"alg_cancel()", icon: "undo.png" } );
        }
    }
    IFRAMER_HEADER(L("lcl_alg_srtruimte_details"), buttons);

    if (mode == "show")
    {
        myFIELD = function (a, b, c, d, e) { ROFIELDTR(b, c, d, e) };
        myTEXTAREA = function (a, b, c, d, e) { ROTEXTAREATR(b, c, d, e) };
        myCHECKBOX = function (a, b, c, d, e) { ROCHECKBOXTR(b, c, d, e) };
    }
    else
    {
        myFIELD = RWFIELDTR;
        myTEXTAREA = RWTEXTAREATR;
        myCHECKBOX = RWCHECKBOXTR;
    }

    if (srtruimte_deleted)
    {
%>      <div class="alg_deleted"><%=L("lcl_record_is_deleted")%></div><%
    }

%>
    <div id="show">
      <form name="u2"
            action="alg_srtruimte.asp?mode=save&alg_srtruimte_key=<%=srtruimte_key%>"
            method="post"
            target="hidFrameSubmit"
            onSubmit="alg_submit()">
<%
        BLOCK_START("algInfo", safe.html(L("lcl_general_properties")));

            ROFIELDTR(                  "fld",      L("lcl_key"),                     srtruimte_key);
            myFIELD("omschrijving",     "fld",      L("lcl_descr"),                   srtr_info.alg_srtruimte_omschrijving);
            myFIELD("prijs",            "fld",      L("lcl_alg_alg_tarief")+" (m2)",  safe.editablefloat(srtr_info.alg_srtruimte_prijs),  {datatype: "float", suppressEmpty: true} );
            myFIELD("prijs2",           "fld",      L("lcl_alg_alg_tariefA")+" (m2)", safe.editablefloat(srtr_info.alg_srtruimte_prijs2), {datatype: "float", suppressEmpty: true} );
            myFIELD("prijs3",           "fld",      L("lcl_alg_alg_tariefB")+" (m2)", safe.editablefloat(srtr_info.alg_srtruimte_prijs3), {datatype: "float", suppressEmpty: true} );
            myFIELD("prijs4",           "fld",      L("lcl_alg_alg_tariefC")+" (m2)", safe.editablefloat(srtr_info.alg_srtruimte_prijs4), {datatype: "float", suppressEmpty: true} );
            myFIELD("prijs5",           "fld",      L("lcl_alg_alg_tariefD")+" (m2)", safe.editablefloat(srtr_info.alg_srtruimte_prijs5), {datatype: "float", suppressEmpty: true} );
            myFIELD("code",             "fld",      L("lcl_alg_srtruimte_code"),      srtr_info.alg_srtruimte_code);
            myCHECKBOX("bevatwerkplek", "fldcheck", L("lcl_prs_has_workplace"),       srtr_info.prs_bevat_werkplek, {html: "onChange='onChangeBevatWerkplek();'"});
            myCHECKBOX("verhuurbaar",   "fldcheck", L("lcl_prs_rentable"),            srtr_info.prs_verhuurbaar);

            sql = "SELECT  'U', " + safe.quoted_sql(L("lcl_mld_hours")) + " FROM DUAL"
                + " UNION "
                + "SELECT  'D', " + safe.quoted_sql(L("lcl_mld_days"))  + " FROM DUAL"
                + " ORDER BY 2";
            var selectparams = { fieldName: "dayshours_urg",
                                 sql: sql,
                                 params: { id: "dayshours_urg",
                                           initKey: srtr_info.eenh_uitvoertijd,
                                           readonly: (mode == "show"),
                                           disable: !srtr_info.tijd_uitvoertijd
                                         }
                               }
            myFIELD("uitvoertijd", "fldalg_uitvtijd", L("lcl_mld_stduitvoertijd"), srtr_info.tijd_uitvoertijd? Math.round(srtr_info.tijd_uitvoertijd * 100) / 100 : ""
                   , {maxlength: 4, datatype: "float", html: "onChange='onChangeUitvoertijd();'", suppressEmpty: true, selector: selectparams});

        BLOCK_END();

    IFACE.FORM_END();

    if (srtruimte_key > -1 && (user.checkAutorisation("WEB_MLDMGT", true)))
    { // 2. De overruling van de SLA (acceptatietijd en uitvoertijd)
      page = "../mld/mld_stdmsrtruimte_search_list.asp?embedded=1&srtruimte_key=" + srtruimte_key;
      IFRAMER("mldstdmsrtruimte", page, { refreshOnClose: true, initHide: false } );
    }
%>
      </form>
    </div>
    <iframe src="../Shared/empty.html"
            name="hidFrameSubmit"
            FcltClose="alg_close"
            style="display:none"></iframe>
  </body>
</html>
