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

    File:               get_mld_info_ajax.asp
    Description:        Ophalen van allerlei info om client-side data te hebben
    Parameters:         req_info:   "mld_stdmelding"    --> requires "mld_stdmelding_key"

    Context:
    Note:
    Sample:             appl/mld/get_mld_info_ajax.asp?req_info=mld_stdmelding&mld_stdmelding_key=1

*/ %>

<%
var JSON_Result = true;
%>

<!-- #include file="../Shared/common.inc"-->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="./mld.inc" -->
<!-- #include file="../prs/prs.inc" -->
<!-- #include file="../ins/ins.inc" -->
<!-- #include file="../Shared/get_objecten_sql.inc" -->
<%
var req_info = getQParam("req_info");
var result = {};
switch (req_info)
{
    case "mld_status":
    {
        var mld_key = getQParamInt("mld_key", -1, true); // Als niet meegegeven doen we unlink.
        var sql = "SELECT m.mld_melding_status FROM mld_melding m WHERE mld_melding_key = " + mld_key;
        var oRs = Oracle.Execute(sql);
        if (oRs.eof)
          result = null;
        else
          result.mld_status = oRs("mld_melding_status").Value;
        break;
    }
    case "mld_discipline":
    {
        var mld_ins_discipline_key = getQParamInt("mld_ins_discipline_key");
        result = ins.ins_disciplineinfo(mld_ins_discipline_key);
        break;
    }
    case "mld_stdmelding":
    {
        var mld_stdmelding_key = getQParamInt("mld_stdmelding_key");
        result = mld.mld_stdmeldinginfo(mld_stdmelding_key);

        var caller_key = getQParamInt("caller_key");
        var caller_kpn_key = -1;
        var caller_kpn_string = "";
        var caller_kpn_module = "";
        if (caller_key && caller_key > 0)
        {
          var prs_info = new prs.prs_perslid(caller_key);
          result.caller_kpn_key = prs_info.kostenplaats_key;
          result.caller_kpn_string = prs_info.kpn_string;
          result.caller_kpn_module = prs_info.kpn_module
        }
        break;
    }
    case "alg_key":
    {
        var alg_key = getQParamInt("alg_key");
        var alg_niveau = getQParam("alg_niveau");
        var prs_key = getQParamInt("prs_key");
        var stdmld_key = getQParamInt("stdmld_key");

        var sql = get_objecten_sql(alg_key, alg_niveau, prs_key, null, stdmld_key);
        var oRs = Oracle.Execute(sql);
        var result = [];
        var first = true;
        while(!oRs.eof)
        {
          if (first)
          {
            result.push({ key: oRs("ins_deel_key").Value,
                          omschrijving: oRs("deel").Value,
                          alg_ruimte_key: oRs("ins_alg_ruimte_key").Value,
                          alg_ruimte_type: oRs("ins_alg_ruimte_type").Value,
                          alg_ruimte_nr: oRs("alg_ruimte_nr").Value,
                          changelevel: alg_niveau,
                          uitvoertijd: oRs("uitvoertijd").Value
                        });
            first = false
          }
          else // Dan is alleen de key voldoende
            result.push({ key: oRs("ins_deel_key").Value });
          oRs.MoveNext();
        }
        oRs.Close();
        break;
    }
    case "calc_einddatum":
    {   // Einddatum van melding bepalen.
        var startdatum = getQParamDate("startdatum", new Date());
        var stdm_key = getQParamInt("stdm_key");
        var prio = getQParamInt("prio", 3);
        var geb_key = getQParamInt("geb_key", -1);
        var rui_key = getQParamInt("rui_key", -1);
        var ins_key = getQParamInt("ins_key", -1);
        var einddatum = mld.geteinddatum(startdatum, stdm_key, prio, geb_key, rui_key, ins_key);
        result = { einddatum: einddatum.getTime() };
        break;
    }
    case "calc_opdrachteinddatum":
    {   // Einddatum van opdracht bepalen.
        var mld_key = getQParamInt("mld_key");
        var uitv_key = getQParamInt("uitv_key");
        var startdatum = getQParamDate("startdatum", new Date());
        var mld_info = mld.mld_melding_info(mld_key);
        result = { uitvoertijd: null, mld_uitvoertijd_eenheid: mld_info.uitvoertijd_eenheid };
        if (uitv_key > 0)
          result.uitvoertijd = mld.getbedrijfuitvoertijd(uitv_key);
        var einddatum = mld.geteinddatumopdracht(mld_key, result.uitvoertijd, startdatum);
        result.einddatum = einddatum.getTime();
        break;
    }
    case "ggd":
    {
        var obj_keys = getQParamIntArray("obj_keys");
        if (obj_keys.length > 0)
        {
          var insGGD = ins.getGGD(obj_keys);
          result = insGGD;
        }
        break;
    }
}

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