<%@language = "javascript" %>

<!-- #include file="../scf/scaffolding.inc" -->
<!-- #include file="../api2/model_res_srtartikel_onrgoed.inc" -->

<%
var this_model = new model_res_srtartikel_onrgoed();

this_model.hook_pre_post = function(params, jsondata)
{
    var locatie_key = getFParamInt("locatiekey", getQParamInt("locatiekey", -1));
    var gebouw_key = getFParamInt("gebouwkey", getQParamInt("gebouwkey", -1));
    var verdieping_key = getFParamInt("verdiepingkey", getQParamInt("verdiepingkey", -1));
    var ruimte_key = getFParamInt("ruimtekey");

    if (ruimte_key != -1)
    {   jsondata.level = "R";
        jsondata.ruimtekey = ruimte_key;
    }
    else if (verdieping_key != -1 || gebouw_key != -1) // Als verdieping is geselecteerd, sla dan gebouw op: Niveau V wordt niet ondersteund.
    {   jsondata.level = "G";
        jsondata.ruimtekey = gebouw_key;
    }
    else if (locatie_key != -1)
    {   jsondata.level = "L";
        jsondata.ruimtekey = locatie_key;
    }
}

if (mode == "list")  // mode is een GLOBAL.
{
    var locatie_key = getQParamInt("locatiekey");
    var gebouw_key = getQParamInt("gebouwkey");
    var verdieping_key = getQParamInt("verdiepingkey");
    var ruimte_key = getQParamInt("ruimtekey");

    var onrgoed_key = -1;
    var niveau = "";
    if (ruimte_key > -1)
    {
        niveau = "ruimte";
        onrgoed_key = ruimte_key;
    }
    else if (verdieping_key > -1)
    {
        niveau = "verdieping";
        onrgoed_key = verdieping_key;
    }
    else if (gebouw_key > -1)
    {
        niveau = "gebouw";
        onrgoed_key = gebouw_key;
    }
    else if (locatie_key > -1)
    {
        niveau = "locatie";
        onrgoed_key = locatie_key;
    }

    if (niveau == "locatie") // alg_v_allonroerendgoed.alg_type=='L' is er niet
    {
        this_model.gparams.GET = {
            tables: ["alg_v_allonroerendgoed"],
            wheres: ["res_srtartikel_onrgoed.alg_onrgoed_key = alg_v_allonroerendgoed.alg_onroerendgoed_keys(+)",
                      "res_srtartikel_onrgoed.alg_onrgoed_niveau = alg_v_allonroerendgoed.alg_type(+)",
                      "alg_v_allonroerendgoed.alg_"+niveau+"_key(+) = " + onrgoed_key,
                      "(alg_v_allonroerendgoed.alg_"+niveau+"_key IS NOT NULL OR " +
                                "res_srtartikel_onrgoed.alg_onrgoed_niveau = 'L' AND res_srtartikel_onrgoed.alg_onrgoed_key = " + onrgoed_key + ")"
                    ]
       }
    }
    else if (niveau != "")
    {
        this_model.gparams.GET = {
            tables: ["alg_v_allonroerendgoed"],
            wheres: ["res_srtartikel_onrgoed.alg_onrgoed_key = alg_v_allonroerendgoed.alg_onroerendgoed_keys",
                      "res_srtartikel_onrgoed.alg_onrgoed_niveau = alg_v_allonroerendgoed.alg_type",
                      "alg_v_allonroerendgoed.alg_"+niveau+"_key = " + onrgoed_key
                    ]
       }
    }
}

if (mode == "edit")
{
    var id = getQParamInt("id", -1);
    var locatie_key = getQParamInt("locatiekey", -1);
    var gebouw_key = getQParamInt("gebouwkey", -1);
    var verdieping_key = getQParamInt("verdiepingkey", -1);
    var ruimte_key = getQParamInt("ruimtekey", -1);

    if (id == -1)   // toevoegen
    {
        // Als er een ruimte geselecteerd is wordt tabel res_srtartikel_onrgoed niet gebruikt voor plaatsaanduiding.
        this_model.fields.ruimtekey.foreign.where = "";

        // Waarop gefilterd is alleen tonen
        var onrgoedkeys = [0, locatie_key, gebouw_key, verdieping_key, ruimte_key, -1];
        var ro_level = sharedIndexOf(-1, onrgoedkeys);
        this_model.fields.ruimtekey.foreign.selectorparams.readonlylevel = ro_level;
        this_model.fields.ruimtekey.foreign.selectorparams.locatiekey = locatie_key;
        this_model.fields.ruimtekey.foreign.selectorparams.gebouwkey = gebouw_key;
        this_model.fields.ruimtekey.foreign.selectorparams.verdiepingkey = verdieping_key;
        this_model.fields.ruimtekey.foreign.selectorparams.ruimtekey = ruimte_key;
    }
}


scaffolding(this_model,
    {
        "search": {
            "autosearch": false,
            "filters": [
                "bookingdiscipline",
                "ruimtekey"
            ],
            "transit": [
                "bookingdiscipline",
                "locatiekey",
                "gebouwkey",
                "verdiepingkey",
                "ruimtekey"
            ]
        },
        "list": {
            "columns": [
                "id",
                "level",
                "bookingdiscipline",
                "ruimtekey",
                "startdate",
                "expirationdate"
            ]
        },
        "show": {
            "requires": {
                "js": ["./mgt_tools.js"]
            }
        },
        "edit": {
            "requires": {
                "js": ["./mgt_tools.js"]
            }
        },
        "layout": {
            "miscellaneous": {
                "icon" : "fa-crosshairs"
            }
        }
    });


    function fill_og_niveau_LOV()
    {
        return  "L;"+L("lcl_location")
             + ";G;"+L("lcl_building")
             + ";R;"+L("lcl_room");
    }
%>
<% ASPPAGE_END(); %>
