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

     File:          mld_stdmsrtruimte.asp
     Description:   Overrulen per stdmelding of srtruimte van SLA-parameters
     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" -->

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

var stdmsrtruimte_key = getQParamInt("mld_stdmsrtruimte_key", -1); // default is nieuwe
var stdmelding_key = getQParamInt("stdmelding_key", -1);
var srtruimte_key = getQParamInt("srtruimte_key", -1);

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

var ssr_info = {};

if (stdmsrtruimte_key > 0)
{ // bestaande ruimtesoort
  var sql = "SELECT ssr.mld_stdmsrtruimte_key"
          + "     , ssr.mld_stdmelding_key"
          + "     , sm.mld_ins_discipline_key"
          + "     , ssr.alg_srtruimte_key"
          + "     , ssr.mld_stdmsrtruimte_t_accepttijd.tijdsduur acceptatietijd_tijdsduur"
          + "     , ssr.mld_stdmsrtruimte_t_accepttijd.eenheid acceptatietijd_eenheid"
          + "     , ssr.mld_stdmsrtruimte_t_uitvtijd.tijdsduur uitvoertijd_tijdsduur"
          + "     , ssr.mld_stdmsrtruimte_t_uitvtijd.eenheid uitvoertijd_eenheid"
          + "     , ssr.mld_stdmsrtruimte_malusbasis"
          + "     , ssr.mld_stdmsrtruimte_malus"
          + "  FROM mld_stdmsrtruimte ssr"
          + "     , mld_stdmelding sm"
          + " WHERE ssr.mld_stdmelding_key = sm.mld_stdmelding_key"
          + "   AND ssr.mld_stdmsrtruimte_key = " + stdmsrtruimte_key;
  oRs = Oracle.Execute(sql);
  if (!oRs.eof)
  {
    var ssr_info = { stdmelding_key:           oRs("mld_stdmelding_key").Value,
                     disc_key:                 oRs("mld_ins_discipline_key").Value,
                     srtruimte_key:            oRs("alg_srtruimte_key").Value,
                     acceptatietijd_tijdsduur: oRs("acceptatietijd_tijdsduur").Value,
                     acceptatietijd_eenheid:   oRs("acceptatietijd_eenheid").Value,
                     uitvoertijd_tijdsduur:    oRs("uitvoertijd_tijdsduur").Value,
                     uitvoertijd_eenheid:      oRs("uitvoertijd_eenheid").Value,
                     malusbasis:               oRs("mld_stdmsrtruimte_malusbasis").Value,
                     malus:                    oRs("mld_stdmsrtruimte_malus").Value
                    };
  }
  oRs.close();
}
else
{ // Nieuwe overrule.
  // Als melding is meegegeven dan staat de vakgroep (discipline) vast.
  var disc_key = -1;
  if (stdmelding_key > 0)
  {
    var sql = "SELECT sm.mld_ins_discipline_key"
            + "  FROM mld_stdmelding sm"
            + " WHERE sm.mld_stdmelding_key = " + stdmelding_key;
    oRs = Oracle.Execute(sql);
    disc_key = oRs("mld_ins_discipline_key").Value;
  }

  var ssr_info = { stdmelding_key: stdmelding_key,
                   disc_key: disc_key,
                   srtruimte_key: srtruimte_key,
                   acceptatietijd_tijdsduur: null,
                   acceptatietijd_eenheid: null,
                   uitvoertijd_tijdsduur: null,
                   uitvoertijd_eenheid: null
                  };
}
%>

<html>
  <head>
<%  FCLTHeader.Generate();
%>
    <script type="text/javascript" >
      function mld_submit()
      {
        if (!validateForm("u2"))
            return false;

        // Is één van de parameters wel ingevuld.
        if ($("#accepttijd").val().trim() == "" && $("#uitvoertijd").val().trim() == "")
        {
          alert(L("lcl_mld_no_overrule"));
          return false;
        }

        var data = $("[name=submitform]").serialize();
        <% protectRequest.dataToken("data"); %>
        $.post($("form[name=submitform]")[0].action,
               data,
               FcltCallbackClose,
               "json");
        return true; // disable button
      }

      function mld_delete()
      {
        if (confirm("<%=safe.jsstring(L("lcl_R_U_sure"))%>"))
        {
          var data = {stdmsrtruimte_key: <%=stdmsrtruimte_key%>};
          <% protectRequest.dataToken("data"); %>
          $.post("mld_stdmsrtruimte_delete.asp",
                 data,
                 FcltCallbackClose,
                 "json");
        }
      }

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

      function onChangeAccepttijd()
      {
        if (isNaN(parseFloat($("#accepttijd").val())))
          $("#dayshourse").prop("disabled", true);
        else
          $("#dayshourse").prop("disabled", false);
      }

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

      function onChangeVakgroep(vakgroep_key)
      {
        //sgStdm.setValue($("#stdm").val(), $("#stdm_show").val(), true, true, null, true);
        // Regel hierboven werkt niet goed omdat CheckExist een get call veroorzaakt om te kijken of waarde bestaat.
        // In de tussentijd verstoort CheckJustOne dit process met een $.getJSON()
        // Dus gewoon Melding leegmaken
        sgStdm.setValue(-1, "", true, false, null, true);
        sgStdm.CheckJustOne();
      }

      function process_stdm_info(data, textStatus)
      { // Zet de discipline indien niet ingevuld
        if ($("#disc_key").val() <= 0)
          sgDisc.setValue(data.ins_discipline_key, (data.ins_srtdiscipline_prefix != null ? data.ins_srtdiscipline_prefix + "-" : "") + data.discipline_omschrijving, false /*doonChange*/, true /*checkExist*/);
      }

      function onChangeStdMelding(stdmelding_key)
      {
        if (stdmelding_key > 0)
        {
          $.getJSON("./get_mld_info_ajax.asp",
                    { req_info: "mld_stdmelding",
                      mld_stdmelding_key: stdmelding_key,
                      caller_key: <%=user_key%> },
                      process_stdm_info);
        }
      }


    </script>
  </head>

  <body class="modal" id="mod_mldstdmsrtruimte">
<%
    var buttons = [];

    buttons.push( {title: L("lcl_submit"), action:"mld_submit()", icon: "opslaan.png" } );
    buttons.push( {title: L("lcl_cancel"), action:"mld_cancel()", icon: "undo.png" } );
    IFRAMER_HEADER(L("lcl_mld_overrule_details"), buttons, {nocollaps: true});

%>
    <div id="submitdiv">
      <form id="submitform"
            name="submitform"
            action="mld_stdmsrtruimte_save.asp"
            method="post">
        <input type="hidden" id="stdmsrtruimte_key" name="stdmsrtruimte_key" value="<%=stdmsrtruimte_key%>">
<%    if (stdmsrtruimte_key > 0 || ssr_info.srtruimte_key > 0)
      { %>
        <input type="hidden" id="srtruimte_key" name="srtruimte_key" value="<%=ssr_info.srtruimte_key%>">
<%    } %>
<%
        BLOCK_START("mldMelding", safe.html(L("lcl_mld_overrule_properties")));
        // Vakgroep (discipline)
        FCLTdisciplineselector("disc_key",
                               "sgDisc",
                               { label: L("lcl_mld_vakgroep"),
                                 disc_key: ssr_info.disc_key,
                                 module: "MLDA", // Module MLD en daarnaast ook de vakgroepen tonen zonder stdmeldingen zodat nieuwe stdmeldingen eraan toegevoegd kunnen worden (MLDA).
                                 perslidKey: user_key,
                                 autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey,
                                 onChange: "onChangeVakgroep",
                                 required: true,
                                 readonly: stdmsrtruimte_key > 0 || ssr_info.stdmelding_key > 0
                               });
        // Melding
        FCLTstdmeldingselector("stdmelding_key",
                               "sgStdm",
                               { stdmelding_key: ssr_info.stdmelding_key,
                                 label: L("lcl_complain"),
                                 perslidKey: user_key,
                                 autfunctionKey: -1, // alles is toegestaan! authparams.autfunctionkey,
                                 urlAdd: [{urlParam: "disc_key", field: "disc_key"}],
                                 onChange: "onChangeStdMelding",
                                 required: true,
                                 suppressEmpty: true,
                                 readonly:  stdmsrtruimte_key > 0 || ssr_info.stdmelding_key > 0
                               });
        sql = "SELECT sr.alg_srtruimte_key"
            + "     , " + lcl.xsqla("sr.alg_srtruimte_omschrijving", "sr.alg_srtruimte_key")
            + "  FROM alg_srtruimte sr"
            + " WHERE sr.alg_srtruimte_verwijder IS NULL"
            + " ORDER BY sr.alg_srtruimte_omschrijving";
        FCLTselector("srtruimte_key",
                      sql,
                      { initKey: ssr_info.srtruimte_key,
                        label: L("lcl_estate_ruimte_man_sort"),
                        emptyOption: "",
                        readonly: stdmsrtruimte_key > 0 || ssr_info.srtruimte_key > 0,
                        required: true,
                        suppressEmpty: true
                      });

        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: "dayshourse",
                             sql: sql,
                             params: { id: "dayshourse",
                                       initKey: ssr_info.acceptatietijd_eenheid,
                                       readonly: false,
                                       disable: !ssr_info.acceptatietijd_tijdsduur
                                     }
                           }
        RWFIELDTR("accepttijd", "fldmld_accpettijd", L("lcl_mld_timetoaccept"), ssr_info.acceptatietijd_tijdsduur? Math.round(ssr_info.acceptatietijd_tijdsduur * 100) / 100 : ""
                 , {maxlength: 4, datatype: "float", html: "onChange='onChangeAccepttijd();'", suppressEmpty: true, selector: selectparams});
        var selectparams = { fieldName: "dayshours",
                             sql: sql,
                             params: { id: "dayshours",
                                       initKey: ssr_info.uitvoertijd_eenheid,
                                       readonly: false,
                                       disable: !ssr_info.uitvoertijd_tijdsduur
                                     }
                           }
        RWFIELDTR("uitvoertijd", "fldmld_uitvtijd", L("lcl_mld_stduitvoertijd"), ssr_info.uitvoertijd_tijdsduur? Math.round(ssr_info.uitvoertijd_tijdsduur * 100) / 100 : ""
                 , {maxlength: 4, datatype: "float", html: "onChange='onChangeUitvoertijd();'", suppressEmpty: true, selector: selectparams});
        RWFIELDTR("malusbasis", "fldshort", L("lcl_mld_malusbasis"), ssr_info.malusbasis, {maxlength: 9, datatype: "float", suppressEmpty: true});
        RWFIELDTR("malus", "fldshort", L("lcl_mld_malus"), ssr_info.malus, {maxlength: 9, datatype: "float", suppressEmpty: true});
        BLOCK_END();

        IFACE.FORM_END();
%>
      </form>
    </div>
  </body>
</html>
