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

     SUBMIT-form
*/ %>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/save2db.inc" -->
<!-- #include file="../Shared/kenmerk_common.inc"-->
<!-- #include file="alg.inc" -->

<% FCLTHeader.Requires({ plugins:["jQuery"],
                      js: []
                    }) %>
<%
var bld_key = getQParamInt("bld_key");
var loc_key = getFParamInt("locatiekey", -1);

var isNew = (bld_key < 0);

var beginuur = getFParamFloat("bld_beginuur", -2);
if (beginuur == -1)
    beginuur = "";

var einduur = getFParamFloat("bld_einduur", -2);
if (einduur == -1)
    einduur = "";

var onrgoedlvl = "G";
var this_alg = alg.func_enabled(bld_key, onrgoedlvl);
user.auth_required_or_abort(this_alg.writeman || (bld_key > 0 && this_alg.writeuse));

var fields =  [ /* { dbs: "alg_gebouw_getekend",       typ: "date",    frm: "bld_teken" },
                   { dbs: "alg_gebouw_dwgx",           typ: "float",   frm: "bld_dwgx" },
                   { dbs: "alg_gebouw_dwgy",           typ: "float",   frm: "bld_dwgy" },   Deze 3 velden worden nergens meegegeven? */
              ];

if (user.checkAutorisation("WEB_BEZMGT", true))
{
    fields.push({ dbs: "alg_gebouw_toon_telefoon",  typ: "number",  frm: "toon_telefoon", track: L("lcl_estate_gebouw_toon_telefoon") },
                { dbs: "alg_gebouw_toon_email",     typ: "number",  frm: "toon_email",    track: L("lcl_estate_gebouw_toon_email") },
                { dbs: "alg_gebouw_toon_kenteken",  typ: "number",  frm: "toon_kenteken", track: L("lcl_estate_gebouw_toon_kenteken") });
}

if (this_alg.writeman)
{
    fields.push({ dbs: "alg_gebouw_omschrijving",   typ: "varchar", frm: "bld_descr",     track: L("lcl_estate_gebouw_man_descr")  },
                { dbs: "alg_gebouw_naam",           typ: "varchar", frm: "bld_naam",      track: L("lcl_estate_gebouw_man_name") },
                { dbs: "alg_gebouw_code",           typ: "varchar", frm: "bld_code",      track: L("lcl_estate_gebouw_man_code") },
                { dbs: "alg_gebouw_adres",          typ: "varchar", frm: "bld_adres",     track: L("lcl_estate_gebouw_man_adres") },
                { dbs: "alg_gebouw_postcode",       typ: "varchar", frm: "bld_postcode",  track: L("lcl_estate_gebouw_man_postcode") },
                { dbs: "alg_srtgebouw_key",         typ: "key",     frm: "bld_srtkey",    track: L("alg_srtgebouw"), foreign: {tbl: "alg_srtgebouw", key: "alg_srtgebouw_key", desc: "alg_srtgebouw_omschrijving"} },
                { dbs: "alg_gebouw_opmerking",      typ: "varchar", frm: "bld_opmerk",    track: L("lcl_estate_gebouw_man_opmerk") },
                { dbs: "alg_gebouw_groep",          typ: "varchar", frm: "bld_groep",     track: L("lcl_estate_gebouw_groepkenmerk") },
                { dbs: "alg_gebouw_bruto_vloeropp", typ: "float",   frm: "bld_opp",       track: L("lcl_estate_gebouw_man_bruto_vloeropp") },
                { dbs: "alg_gebouw_omtrek",         typ: "float",   frm: "bld_omtrek",    track: L("lcl_estate_gebouw_man_omtrek") },
                { dbs: "alg_gebouw_inhoud",         typ: "float",   frm: "bld_inhoud",    track: L("lcl_estate_gebouw_man_inhoud") },
                { dbs: "alg_gebouw_x",              typ: "float",   frm: "bld_x",         track: L("lcl_geoxcoord") },
                { dbs: "alg_gebouw_y",              typ: "float",   frm: "bld_y",         track: L("lcl_geoycoord") },
                { dbs: "alg_gebouw_ordernr",        typ: "varchar", frm: "bld_ordrnr",    track: L("lcl_estate_gebouw_ordernr") },
                { dbs: "alg_gebouw_email",          typ: "varchar", frm: "bld_email",     track: L("lcl_alg_gebouw_email") },
                { dbs: "alg_gebouw_image",          typ: "varchar", frm: "bld_image",     track: L("lcl_alg_gebouw_image") },
                { dbs: "mld_adres_key",             typ: "key",     frm: "mld_adres",     track: L("lcl_delivery_address"),  foreign: "mld_v_factuuradres" },
                { dbs: "prs_kostenplaats_key",      typ: "key",     frm: "prs_kstpl",     track: L("lcl_prs_dept_kosten"),   foreign: "prs_kostenplaats" },
                { dbs: "mld_dienstniveau_key",      typ: "key",     frm: "dienstniveau",  track: L("lcl_mld_dienst_niveau"), foreign: "mld_dienstniveau" },
                { dbs: "alg_gebouw_bez",            typ: "check",   frm: "bld_bez",       track: L("lcl_estate_gebouw_bez") },
                { dbs: "alg_gebouw_mld",            typ: "check",   frm: "bld_mld",       track: L("lcl_estate_gebouw_mld") },
                { dbs: "alg_gebouw_werkdagen",      typ: "check0",  frm: "bld_werkdagen", track: L("lcl_estate_gebouw_werkdagen") },
                { dbs: "alg_gebouw_vervaldatum",    typ: "date",    frm: "vervaldatum",   track: L("lcl_alg_vervaldatum") },
                { dbs: "bez_actie_groep_key",       typ: "key",     frm: "group",         track: L("bez_actie_groep"), foreign: "bez_actie_groep" },
                { dbs: "mld_vrije_dagen_id",        typ: "varchar", frm: "cal_id",        track: L("lcl_calendar")},
                // De gebouwverantwoordelijke(n) moeten eigenlijk nog een PRS-scope test ondergaan alvorens opgeslagen te worden, maar dat is voor nu teveel eer
                { dbs: "prs_perslid_key_verantw",   typ: "key",     frm: "verantw",       track: L("lcl_alg_verantw"),  foreign: "prs_perslid" },
                { dbs: "prs_perslid_key_verantw2",  typ: "key",     frm: "verantw2",      track: L("lcl_alg_verantw2"), foreign: "prs_perslid" });

    if (beginuur != -2)
        fields.push({ dbs: "alg_gebouw_beginuur",   typ: "float",   val: beginuur,        track: L("lcl_estate_gebouw_beginuur") });
    if (einduur != -2)
        fields.push({ dbs: "alg_gebouw_einduur",    typ: "float",   val: einduur,         track: L("lcl_estate_gebouw_einduur") });

    if (bld_key == -1 && alg.canWriteLocatie(loc_key, this_alg.authparams("WEB_ALGMAN").ALGwritelevel))
        fields.push({ dbs: "alg_locatie_key",       typ: "key",     val: loc_key });
}

var warning = "";
if (bld_key > 0)
{
    var algUpd = buildTrackingUpdate("alg_gebouw", " alg_gebouw_key = " + bld_key, fields);
    var err = Oracle.Execute(algUpd.sql, true);
    if (err.friendlyMsg)
        warning = err.friendlyMsg;
}
else
{
    fields.push({ dbs: "alg_gebouw_key",            typ: "key",     seq: "alg_s_alg_onroerendgoed_keys" });
    var regIns = buildInsert("alg_gebouw", fields);
    var bld_key = regIns.sequences["alg_gebouw_key"];

    sql = regIns.sql;
    var err = Oracle.Execute(sql, true);
    if (err.friendlyMsg)
        warning = err.friendlyMsg;
}

var flextrack = [];
if (!warning)
{
    currentKenmerkenSQL = "SELECT k.alg_kenmerk_key"
                        + "     , ok.alg_onrgoedkenmerk_waarde"
                        + "     , k.alg_kenmerk_toonbaar"
                        + "     , k.fac_functie_key"
                        + "  FROM alg_onrgoedkenmerk ok"
                        + "     , alg_kenmerk k"
                        + " WHERE k.alg_kenmerk_key = ok.alg_kenmerk_key"
                        + "   AND alg_onrgoedkenmerk_verwijder IS NULL"
                        + "   AND alg_onrgoed_niveau = 'G'"
                        + "   AND alg_onrgoed_key = " + bld_key;

    allKenmerkenSQL     = "SELECT " + lcl.xsql('k.alg_kenmerk_omschrijving', 'k.alg_kenmerk_key') + " kenmerk_omschrijving"
                        + "     , k.alg_kenmerk_kenmerktype kenmerk_kenmerktype"
                        + "     , k.alg_kenmerk_systeem     kenmerk_systeem"
                        + "     , k.alg_kenmerk_toonbaar    kenmerk_readonly"
                        + "     , k.alg_kenmerk_uniek       kenmerk_uniek"
                        + "     , fac_kenmerkdomein_key"
                        + "  FROM alg_kenmerk k"
                        + " WHERE k.alg_kenmerk_key = "; /* wordt in saveFlexkenmerken uitgebreid */

    flextrack = saveFlexKenmerken(bld_key,
                      { kenmerkTable: "alg_onrgoedkenmerk",
                        kenmerkParentKey : "alg_onrgoed_key",
                        kenmerkWaarde: "alg_onrgoedkenmerk_waarde",
                        kenmerkKey: "alg_kenmerk_key",
                        kenmerkToonbaar: "alg_kenmerk_toonbaar",
                        currentKenmerkenSQL: currentKenmerkenSQL,
                        allKenmerkenSQL: allKenmerkenSQL,
                        requestQF: Request.Form,
                        flexPath: "ALG/G",
                        module: "ALG",
                        tracking: true,
                        moduleName: "alg_onrgoed_niveau",
                        moduleVal: "G",
                        isNew: isNew
                      });

    if (!isNew)
    {
      if (flextrack && flextrack.length)
      {
        if (algUpd && algUpd.trackarray.length)
          algUpd.trackarray = algUpd.trackarray.concat(flextrack);
        else
          algUpd.trackarray = flextrack;
      }
      if (algUpd && algUpd.trackarray.length)
          shared.trackaction("ALGGUP", bld_key, algUpd.trackarray.join("\n"));
    }
    else
      shared.trackaction("ALGGNE", bld_key);

}
%>

<html>
  <head>
    <%  FCLTHeader.Generate() %>
    <script>
        $(function ()
        {
          FcltMgr.closeDetail(window, { bld_key: <%=bld_key%>,
                                        warning: "<%=safe.jsstring(warning)%>",
                                        keepForm: <%=warning?"true":"false"%>
                                      });
        });
    </script>
  </head>
  <body>
  </body>
</html>
<% ASPPAGE_END(); %>
