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

    File:        mld_melding_tag_worker.asp
    Description: Levert JSON op voor een shared/fullcalendar.asp
                 met mijn mijlpalen
    Parameters:  date-from/date-to
                fullinterval: optioneel om de hele periode te tonen ipv de mijlpaaleinddag
                              omdat de begindatum doorgaans arbitrair is, is de default 1 dag
    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);

  var srtdisc_key   = getQParamInt("srtdisc", -1);
  var mldgroep_key  = getQParamInt("mldgroep", -1);
  var fullinterval  = getQParamInt("fullinterval", -1);

  var autfunction = ["WEB_MLDTAG", "WEB_MLDBOF", "WEB_MLDFOF"];  // Formeel heb je MLDTAG nodig, maar voor deze kalender voelt dat andere ook wel logisch
  var authparams = user.checkAutorisation(autfunction, false);

  function fnNodeColor(oRs)
  {
    return (oRs("mld_stdmeldinggroep_color").value ? oRs("mld_stdmeldinggroep_color").value : "#ccc");
  }

  var result = [];

    sql = "SELECT mld_melding_tag_naam"                   // de naam
        + "     , mld_melding_tag_oms"                    // toelichting
        + "     , mld_melding_tag_key key"                // de interne referentie (key)
        + ", " + (fullinterval > 0 ? "mld_melding_tag_datum_van" : "mld_melding_tag_datum_tot")+" van"  // de begindatum
        + "     , mld_melding_tag_datum_acc acc "         // de acceptatiedatum (releases candidate, start testfase)
        + "     , mld_melding_tag_datum_tot tot "         // de einddatum
        + "     , 'appl/mld/mld_search.asp?urole=bo&chkall=1&autosearch=1&tag_key='||mld_melding_tag_key fclturl"   // de url naar de details
        + "     , mld_stdmeldinggroep_color "             // te gebruiken voor styling
        + "     , ins_srtdiscipline_key"                  // te gebruiken voor styling
        + "  FROM mld_melding_tag mmt, mld_stdmeldinggroep smg"
        + " WHERE mmt.mld_melding_tag_verwijder IS NULL"
        + "   AND mmt.mld_melding_tag_verwijder IS NULL"
        + "   AND mmt.mld_stdmeldinggroep_key = smg.mld_stdmeldinggroep_key (+)"
        + (srtdisc_key > -1 ? " AND ins_srtdiscipline_key = " + srtdisc_key : "")
        + (mldgroep_key > -1 ? " AND mld_mmt.stdmeldinggroep_key = " + mldgroep_key : "")
        + "   AND ins_srtdiscipline_key IN"
        + " (SELECT di.ins_srtdiscipline_key FROM fac_v_webgebruiker fw, mld_discipline di"
        + "   WHERE fac_gebruiker_alg_level_read < 9"
        + "     AND fac_gebruiker_prs_level_read < 9"
        + "     AND fac_functie_key IN (SELECT fac_functie_key FROM fac_functie WHERE fac_functie_code IN ('WEB_MLDFOF', 'WEB_MLDBOF', 'WEB_MLTAG'))"
        + "     AND di.ins_discipline_module = 'MLD'"
        + "     AND prs_perslid_key = " + user_key
        + "     AND di.ins_discipline_key = fw.ins_discipline_key)"
        + "ORDER BY mld_melding_tag_datum_tot,  mld_melding_tag_naam";

    oRs = Oracle.Execute(sql);

    while (!oRs.Eof)
    {
        result.push({ title:     oRs("mld_melding_tag_naam").Value + " " + (oRs("mld_melding_tag_oms").value||""),
                      start:     new Date(oRs("van").Value).getTime() / 1000,
                      end:       new Date(oRs("tot").Value).getTime() / 1000,
                      fclturl:   oRs("fclturl").Value,
                      fclturltitle: oRs("mld_melding_tag_naam").Value + " " + (oRs("mld_melding_tag_oms").value||""),
                      color:     fnNodeColor(oRs),
                      allDay: true
                    });

        if (oRs("acc").Value != null) // testperiode van acc - tot
        {
            result.push({ title:     oRs("mld_melding_tag_naam").Value + " " + L("mld_melding_tag_accmark") + " " +(oRs("mld_melding_tag_oms").value||""),
                          start:     new Date(oRs("acc").Value).getTime() / 1000,
                          end:       new Date(oRs("tot").Value).getTime() / 1000,
                          fclturl:   oRs("fclturl").Value,
                          fclturltitle: oRs("mld_melding_tag_naam").Value + " " + (oRs("mld_melding_tag_oms").value||""),
                          color:     fnNodeColor(oRs),
                          allDay: true
                        });
        }
        oRs.MoveNext();
    }
    oRs.Close();

  Response.Write(JSON.stringify(result));
%>
<% ASPPAGE_END(); %>
