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

    File:              mld_edit_uitvoeren.asp
    Description:       edit or add uitvoeren
    Parameters:
       uitvoeren_key   execution key
       prs_key         perslid key

    Context:
    Note:
*/ %>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/calendar.inc" -->
<!-- #include file="mld.inc" -->

<%
FCLTHeader.Requires({ plugins:["jQuery"],
                      js: ["jquery.timepicker-table.js"],
                      css: ["timePicker-table.css"]
                    });

var mld_opdr_key = getQParamInt("mld_opdr_key", -1);
var mld_uitvoeren_key = getQParamInt("mld_uitvoeren_key", -1);
user.auth_required_or_abort(mld_opdr_key > 0 || mld_uitvoeren_key > 0);

if (mld_opdr_key == -1)
{
  var sql = "SELECT mu.mld_opdr_key"
          + "  FROM mld_opdr_uitvoeren mu"
          + " WHERE mu.mld_opdr_uitvoeren_key = " + mld_uitvoeren_key;
  var oRs = Oracle.Execute(sql);
  mld_opdr_key = oRs("mld_opdr_key").value;
}
var this_opdr = mld.func_enabled_opdracht(mld_opdr_key); // wat mag ik zoal op deze opdracht
user.auth_required_or_abort(this_opdr.canChange);

var dt = new Date(); // Vandaag
var mld_uitvoeren_van = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, S("prs_t1") * 60 );
var mld_uitvoeren_tot = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, S("prs_t2") * 60 );
var mld_uitvoeren_dag = -1;
var mld_uitvoeren_infrequent = false;

if (mld_uitvoeren_key > -1)
{
  sql = "SELECT mu.mld_opdr_key"
      + "     , mu.mld_opdr_uitvoeren_van"
      + "     , mu.mld_opdr_uitvoeren_tot"
      + "     , mu.mld_opdr_uitvoeren_dag"
      + "     , mu.mld_opdr_uitvoeren_infrequent"
      + "  FROM mld_opdr_uitvoeren mu"
      + " WHERE mu.mld_opdr_uitvoeren_key = " + mld_uitvoeren_key;
  var oRs = Oracle.Execute(sql);

  mld_opdr_key = oRs("mld_opdr_key").value;
  mld_uitvoeren_van = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, oRs("mld_opdr_uitvoeren_van").value);
  mld_uitvoeren_tot = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, oRs("mld_opdr_uitvoeren_tot").value);
  mld_uitvoeren_dag = oRs("mld_opdr_uitvoeren_dag").value;
  mld_uitvoeren_infrequent = oRs("mld_opdr_uitvoeren_infrequent").value == 1;
  oRs.Close();
}

sql = "SELECT sd.ins_srtdiscipline_prefix || o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr opdrnr"
    + "  FROM mld_opdr o"
    + "     , mld_melding m"
    + "     , mld_stdmelding s"
    + "     , mld_discipline md"
    + "     , ins_srtdiscipline sd"
    + " WHERE o.mld_melding_key = m.mld_melding_key"
    + "   AND s.mld_stdmelding_key = m.mld_stdmelding_key"
    + "   AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key"
    + "   AND md.ins_discipline_key = s.mld_ins_discipline_key"
    + "   AND o.mld_opdr_key = " + mld_opdr_key;
oRs = Oracle.Execute(sql);
var opdrnr = oRs("opdrnr").value;
%>
<html>
  <head>
<%  FCLTHeader.Generate(); %>
    <script type="text/javascript">
      FcltMgr.setTitle(L("lcl_mld_uitvoeren") + " " + "<%=safe.jsstring(opdrnr)%>", {hot: false});
      var submitted = false;
      function submitCallback(json, textStatus)
      {
          submitted = true;
          if (json.isnew) // Het was een nieuwe uitvoerbaarheid. Met leeg scherm beginnen.
          {
            // Initiele waarden tonen. Opdrachtnummer (mld_opdr_key) blijft hetzelfde en hoeft niet aangepast te worden.
            $("#mlduitvoerendag").val(<%=mld_uitvoeren_dag%>);

            var dt = new Date(); // Vandaag
            var mld_uitvoeren_van = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, <%=Math.floor(S("prs_t1") * 60)%>  );
            var mld_uitvoeren_tot = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0, <%=Math.floor(S("prs_t2") * 60)%>  );
            // Datum kan hetzelfde blijven, alleen de tijd aanpassen
            //$("#show_uitvoeren_van").datepicker("setDate", mld_uitvoeren_van);
            $("#time_from_uitvoeren_van").val(toTimeString(mld_uitvoeren_van))
            //$("#show_uitvoeren_tot").datepicker("setDate", mld_uitvoeren_tot);
            $("#time_from_uitvoeren_tot").val(toTimeString(mld_uitvoeren_tot))
            $("#added").text(L("lcl_prs_werkplan_added"));
          }
          else // Scherm sluiten
            FcltMgr.closeDetail(window, { refresh: true });

          // Is er nog een message die weergegeven moet worden?
          if (json.message) alert(json.message);
      };

      function mld_submit()
      {
          document.activeElement.blur(); // trigger laatste onChanges
          if (!validateForm("u2"))
            return false;

          var data = { mld_uitvoeren_key: <%=mld_uitvoeren_key%>,
                       mld_opdr_key: <%=mld_opdr_key%>,
                       mlduitvoerendag: $("#mlduitvoerendag").val(),
                       uitvoeren_van: $("#uitvoeren_van").val(),
                       uitvoeren_tot: $("#uitvoeren_tot").val(),
                       mld_uitvoeren_infrequent: $("#mld_uitvoeren_infrequent")[0].checked? 1 : 0
                     };
          <% protectRequest.dataToken("data"); %>
          $.post("mld_edit_uitvoeren_save.asp",
                 data,
                 submitCallback,
                 "json");
      }

      function mld_cancel()
      {
          FcltMgr.closeDetail(window, { cancel: !submitted, refresh: submitted } );
      }
    </script>
  </head>

  <body class="modal" id="mod_prsinzetbaar">
    <div id="edit">
      <form name="u2">
<%
        BLOCK_START("mldUitvoeren", L("lcl_mld_basisblok"));
        sql = "SELECT o.mld_opdr_key"
            + "     , sd.ins_srtdiscipline_prefix || o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr"
            + "  FROM mld_opdr o"
            + "     , mld_melding m"
            + "     , mld_stdmelding s"
            + "     , mld_discipline md"
            + "     , ins_srtdiscipline sd"
            + " WHERE o.mld_melding_key = m.mld_melding_key"
            + "   AND s.mld_stdmelding_key = m.mld_stdmelding_key"
            + "   AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key"
            + "   AND md.ins_discipline_key = s.mld_ins_discipline_key"
            + "   AND o.mld_opdr_key = " + mld_opdr_key;
        FCLTselector("mld_opdr_key",
                     sql,
                     { label: L("lcl_opdr_info"),
                       emptyOption: "",
                       initKey: mld_opdr_key,
                       readonly: true
                     });

        var sql = "";
        for (var i = 0; i < 7; i++)
        {
          sql += (i != 0? " UNION" : "") + " SELECT " + i + " dagkey"
               + ", " + safe.quoted_sql(calendar_names.days[i]) + " dag"
               + " FROM DUAL";
        }
        sql += " ORDER BY 1";
        FCLTselector("mlduitvoerendag",
                     sql,
                     { label: L("lcl_mld_uitvoeren_dag"),
                       initKey: mld_uitvoeren_dag,
                       emptyOption: "",
                       required: true
                     });

        FCLTcalendar( "uitvoeren_van",
                      { label: L("lcl_from"),
                        datum: mld_uitvoeren_van,
                        timeField: true,
                        timeStep: S("prs_h") * 60,
                        startTime: S("prs_t1"),
                        endTime: S("prs_t2"),
                        required: true,
                        volgnr: 1,
                        hidden: true // de *datum* is dan verborgen, tijd blijft zichtbaar
                      });

        FCLTcalendar( "uitvoeren_tot",
                      { label: L("lcl_to"),
                        datum: mld_uitvoeren_tot,
                        timeField: true,
                        timeStep: S("prs_h") * 60,
                        startTime: S("prs_t1"),
                        endTime: S("prs_t2"),
                        required: true,
                        volgnr: 2,
                        hidden: true // de *datum* is dan verborgen, tijd blijft zichtbaar
                      });
        RWCHECKBOXTR("mld_uitvoeren_infrequent", "fldmldinfrequent", L("lcl_mld_uitvoeren_infrequent"), mld_uitvoeren_infrequent);
        Response.Write("<tr><td colspan='2'><br><br><div id='added'></div></td></tr>");
        BLOCK_END();

        var buttons = [{title: mld_uitvoeren_key>0?L("lcl_submit"):L("lcl_add"), action:"mld_submit()", icon: "opslaan.png"},
                       {title: L("lcl_cancel"), action:"mld_cancel()", icon: "undo.png" }];
        CreateButtons(buttons);
%>
        </div>
<% IFACE.FORM_END(); %>
      </form>
    </div>
  </body>
</html>
