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

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

*/
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="fac_list.inc" -->
<%
// weet niet of we deze meekrijgen, dan hebben we wel defaults
var showmelding     = getQParamInt("melding", 1);
var showreservering = getQParamInt("reservering", 1);
var showbestelling  = getQParamInt("bestelling", 1);
var showafspraak    = getQParamInt("afspraak", 1);
var showdeel        = getQParamInt("deel", 1);

  // 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);

  // Ik kan een prs_key verwachten, maar ik durf niet te zeggen dat dit niet misbruikt kan worden om de info van een
  // willekeurige ander op te vragen. Ik zie hier geen URL-bescherming en ook geen echte autorisatie in onderstaande
  // queries. Daar verander ik het niet, het kan alleen voor jezelf (en zelfs dan zou autorisatie een rol moeten spelen)
  //var pkey = getQParamInt("prs_key", user_key);
  //if (pkey == -1) pkey = user_key; // alsnog
  var pkey = user_key;

  function fnNodeColor(oRs) {
    var lecolor = "#ccc";
    switch (oRs("xmlnode").value)
    {
        // ja, eigenlijk naar css
        case "melding": lecolor = "#CCCCFF"; break;
        case "reservering": lecolor = "#FFE6CF"; break;
        case "bestelling": lecolor = "#CCFFCC"; break;
        case "afspraak": lecolor = "#E7CDE7"; break;
    }
    return lecolor;
  }
  var sql = fac_list_query({
                  showafspraak: showafspraak,
                  showbestelling: showbestelling,
                  showdeel: showdeel,
                  showmelding: showmelding,
                  showreservering: showreservering,
                  pkey: pkey
                });

    sql = "SELECT plaats||': '||item||' '||detail oms"                            // de externe referentie (meldingnummer)
        + "     ,  item_key key"                                                  // de interne referentie (key)
        + "     ,  datum van"                                                     // de datum van de service (varieert)
        + "     ,  datum_eind tot"                                                // de datum van de service (varieert)
        + "     ,  'default.asp?internal=1&u='||xmlnode||'&k='||item_key fclturl" // de url naar de details
        + "     ,  xmlnode"
        + "  FROM (" + sql + ")"
        + " ORDER by  xmlnode, datum";

   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: "#000",
                      allDay: false
                    });

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