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

    File:               get_prs_info_ajax.asp
    Description:        Ophalen van allerlei info om client-side data te hebben
    Parameters:         req_info:   "prs_perslid"    --> requires "prs_perslid_key"
                                            dan prs_werkplek=1 om werkplekinfo toe te voegen
                                            dan prs_aflever=1 om afleverinfo toe te voegen
                                    "prs_afdeling"   --> requires "prs_afdeling_key" // Nog niet ondersteund
    Context:
    Note:

*/ %>
<%
var JSON_Result = true;
%>
<!--#include file="../Shared/common.inc"-->
<!--#include file="./prs.inc" -->

<%
    var req_info = getQParam("req_info");
    var filtercode = getQParam("", "");
    var init_key = getQParamInt("init_key", -1);
    var parent_key = getQParamInt("parent_key", -1);
    switch (req_info)
    {
        case "prs_perslid":
        {
            var withWP = getQParamInt("prs_werkplek", 0) == 1;
            var onlyBezoekbaar = getQParamInt("bezoekbaar", 0) == 1; // Alleen de bezoekbare gebouwen met zijn werkplekken meenemen.
            var withAflever = getQParamInt("prs_aflever", 0) == 1;
            var withProfiel_fordisc = getQParamInt("prs_profiel", -1);
            var prs_perslid_key = getQParamInt("prs_perslid_key");
            result = prs.prs_perslid(prs_perslid_key,
                                        { withWP: withWP,
                                          onlyBezoekbaar: onlyBezoekbaar,
                                          withAflever: withAflever,
                                          withProfiel_fordisc: withProfiel_fordisc });
            result.setmandaat = getQParamInt("setmandaat", 0) == 1;
            break;
        }
        case "prs_afdeling":
        {
            var prs_perslid_key = getQParamInt("prs_perslid_key");
            var prs_person = new Perslid(prs_perslid_key);
            var afd_key = prs_person.prs_afdeling_key();
            var prs_afdeling = new Afdeling(afd_key);

            result = { "prs_afdeling_key": afd_key, "prs_afdeling_naam": prs_afdeling.naam() };
            break;
        }
        case "kpn_groep":
        {
            var sql = "SELECT k.prs_kostenplaats_key kpkey"
                    + "     , " + S("prs_kpn_string") + " kpstring"
                    + "  FROM prs_v_aanwezigkostenplaats k"
                    + " WHERE (k.prs_kostenplaats_eind IS NULL OR k.prs_kostenplaats_eind > SYSDATE)"
                    + ( parent_key > -1
                      ? " AND k.prs_kostenplaatsgrp_key = " + parent_key
                      : "")
                    + ( filtercode == "B" // Waar ik kostenplaatsverantwoordelijke ben
                      ? " AND k.prs_perslid_key = " + user_key
                      : "")
                    + " ORDER BY UPPER(" + S("prs_kpn_string") + ")";
            var new_lov = [];
            var oRs = Oracle.Execute(sql);
            while(!oRs.eof)
            {
                var sel_key = (parent_key > -1 && new_lov.length == 0 ? oRs("kpkey").Value : init_key);
                new_lov.push({ key: oRs("kpkey").Value
                             , oms: oRs("kpstring").Value
                             , sel: (oRs("kpkey").Value == sel_key)
                             });
                oRs.MoveNext();
            }
            oRs.Close();
            result = { parent_key: parent_key, lov: new_lov };
            break;
        }
        case "prs_uitvoerende":
            var prs_uitvoerende_key = getQParamInt("uitvoerende_key");
            var sql = "SELECT prs_bedrijf_naam"
                    + "     , prs_bedrijf_opmerking"
                    + "  FROM prs_bedrijf"
                    + " WHERE prs_bedrijf_key = " + prs_uitvoerende_key
                    + " UNION ALL "
                    + " SELECT " + S("prs_pers_string") + " uitv_naam"
                    + "      , NULL"
                    + "   FROM prs_perslid p"
                    + "  WHERE p.prs_perslid_key = " + prs_uitvoerende_key;
            var oRs = Oracle.Execute(sql);
            if (!oRs.EOF)
            {
                result = { naam: oRs("prs_bedrijf_naam").Value
                         , opmerking: oRs("prs_bedrijf_opmerking").Value
                         }
            }
            oRs.Close();
            break;
    }

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