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

    File:        mld_opdr_worker.asp
    Description: Levert JSON op voor een shared/fullcalendar.asp
                 met mijn lopende opdrachten
    Parameters:  date-from/date-to
    Context:

*/
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<%
// fullCalendar werkt een factor 1000 kleiner met hun datums dan wij.
  var date_from = new Date(getQParamInt("start") * 1000);
  var date_to = new Date(getQParamInt("end") * 1000);

  function fnNodeColor(oRs) {
    var lecolor = "#747578";
    switch (oRs("mld_statusopdr_key").value)
    {
        // ja, eigenlijk naar css
        case 10:
        case 3:
        case 4: lecolor = "#AB1455"; break;
        case 5:
        case 8: lecolor = "#009979"; break;
    }
    return lecolor;
 }

  // De query uit de Lopende Zaken (mobile)
  var sql = "SELECT item||' '||detail oms"             // de externe referentie (meldingnummer)
         + ",  item_key key"                           // de interne referentie (key)
         + ",  datum1 van"                             // de datum van de service (varieert)
         + ",  datum2 tot"                             // de datum van de service (varieert)
         + ",  'default.asp?internal=1&u=opdracht&k='||item_key fclturl"   // de url naar de details
         + ",  mld_statusopdr_key "                    // te gebruiken voor styling
         + " FROM ("
         + "SELECT "
         + " o.mld_opdr_key item_key, "
         + " o.mld_melding_key||'/'||mld_opdr_bedrijfopdr_volgnr item "
         + ", ot.mld_typeopdr_omschrijving||' '||b.naam detail"  // lcl
         + ", COALESCE(o.mld_opdr_plandatum,o.mld_opdr_datumbegin) datum1"
         + ", o.mld_opdr_einddatum datum2"
         + ", mld_statusopdr_key"
         + " FROM mld_opdr o, mld_typeopdr ot, mld_v_uitvoerende b "
         + "WHERE o.mld_statusopdr_key NOT IN (1,2,6,7,9)"  // die zijn al klaar
         + "  AND o.mld_typeopdr_key = ot.mld_typeopdr_key"
         + "  AND o.mld_uitvoerende_keys = b.mld_uitvoerende_key"
         + "  AND o.prs_perslid_key =" + user_key   //  de mijne!
         + "  AND o.mld_opdr_datumbegin <=" + date_to.toSQL(true)
         + "  AND (o.mld_opdr_einddatum IS NULL OR"         // Opdrachten zonder einddatum ook tonen op de begin dag.
         + "       o.mld_opdr_einddatum >= " + date_from.toSQL(true) + ")"
         + ")";


    var oRs = Oracle.Execute(sql);

    result = [];
    while (!oRs.Eof)
    {
        result.push({ title:     oRs("oms").Value||L("lcl_unknown"),
                      start:     new Date(oRs("van").Value).getTime() / 1000,
                      end:       new Date(oRs("tot").Value).getTime() / 1000,
                      fclturl:   oRs("fclturl").Value,
                      color:     fnNodeColor(oRs),
                      textColor: "#fff",
                      allDay: false
                    });

        oRs.MoveNext();
    }
    oRs.Close();
    Response.Write(JSON.stringify(result));
%>
<% ASPPAGE_END(); %> 
