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

     File:               alg_ruimteafdeling.asp
     Description:        Laat een afdeling aan meerdere ruimtes toevoegen
     Parameters:         ruimte_keys: komma separated lijst met alg_ruimte_keys
     Context:
     Note:

k
*/ %>

<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/iface.inc" -->
<!-- #include file="../Shared/selector.inc" -->
<!-- #include file="../Shared/afdelingselector.inc" -->
<!-- #include file="alg.inc" -->

<%
FCLTHeader.Requires({ plugins:["jQuery"],
                      js: ["./alg_ruimteafdeling.js", "num2curr.js"]
                    });

// TODO: Autorisatie controle "WEB_PRSBOF" op ruimte_keys

var ruimte_key_arr = getQParamIntArray("ruimte_keys");
var submitting = getQParamInt("submit", 0) == 1;
if (submitting)
{
  protectRequest.validateToken();

  FCLTHeader.Generate();

  var nrRows = getFParamInt("nrRows", 0);

  var afdeling_key = -1;
  var bezetting = -1;
  var afdeling_keys = [];
  var bezetting_keys = [];
  for (var i = 0; i < nrRows; i++)
  {
    afdeling_key = getFParamInt("afd" + i, 0);
    bezetting = getFParamFloat("bez" + i, 0);

    if (afdeling_key > 0 && bezetting >= 0)
    {
      afdeling_keys.push(afdeling_key);
      bezetting_keys.push(bezetting);
    }
  }

  for (var j = 0; j < ruimte_key_arr.length; j++)
  { // Verwijderen
    var sql = "DELETE prs_ruimteafdeling"
            + " WHERE alg_ruimte_key = " + ruimte_key_arr[j];
    if (afdeling_keys.length) // 'nieuwe' laten staan, er komt straks wel een update
        sql += "   AND prs_afdeling_key NOT IN (" + afdeling_keys.join(",") + ")";
    Oracle.Execute(sql);
  }

  for (var i = 0; i < afdeling_keys.length; i++)
  {
    for (var j = 0; j < ruimte_key_arr.length; j++)
    {
      var sql = "SELECT prs_ruimteafdeling_key"
              + "  FROM prs_ruimteafdeling"
              + " WHERE alg_ruimte_key = " + ruimte_key_arr[j]
              + "   AND prs_afdeling_key = " + afdeling_keys[i]
              + "   AND prs_ruimteafdeling_verwijder IS NULL";
      oRs = Oracle.Execute(sql);
      if (!oRs.eof)
      { // Update
        var sql = "UPDATE prs_ruimteafdeling SET"
                + "       prs_ruimteafdeling_bezetting = " + bezetting_keys[i]
                + " WHERE prs_ruimteafdeling_key = " + oRs("prs_ruimteafdeling_key").Value;
        Oracle.Execute(sql);
      }
      else
      { // Insert
        var sql = "INSERT INTO prs_ruimteafdeling "
                + "        (alg_ruimte_key, prs_afdeling_key, prs_ruimteafdeling_bezetting)"
                + " VALUES (" + ruimte_key_arr[j] + ","
                +               afdeling_keys[i] + ","
                +               bezetting_keys[i] + ")";
        Oracle.Execute(sql);
      }
    }
  }
%>
  <script type="text/javascript">
    FcltMgr.closeDetail(window, { success: true });
  </script>
<%
}
else
{ %>
  <html>
    <head>
<%    FCLTHeader.Generate(); %>
          <script type="text/javascript">
            setMultiRuimte(<%=ruimte_key_arr.length%>);
          </script>
    </head>

    <body class="modal" id="mod_ruimteafdeling">
      <div id="email">
        <form name="u2" method="post" action="alg_ruimteafdeling.asp?submit=1&ruimte_keys=<%=ruimte_key_arr.join(",")%>">
          <input type="hidden" id="nrRows" name="nrRows" value="0">
<%        BLOCK_START("alg_ruimteafdeling", L("lcl_alg_geselecteerde_ruimten") + ": " + ruimte_key_arr.length);
          // <!-- Toevoegen -->
          FCLTafdelingselector("afdeling_key",
                               "sgDept",
                               { label: L("lcl_dep_name_level2"),
                                 //autlevel: authparams.PRSreadlevel,
                                 whenEmpty: L("lcl_search_generic")  // want filter
                               });
%>
          <tr>
            <td class="label">
              <label for="afdbezettingtable" style="white-space: nowrap"><%=L("lcl_alg_te_koppelen_afd")%>:&nbsp;</label>
            </td>
            <td>
              <table id="afdbezettingtable" cellspacing=0 cellpadding=0 class="rstable">
              <thead>
              <tr>
                <th style='width:15px'></th>
                <th><%=L("lcl_department")%></th>
                <th><%=L("lcl_alg_bezetting_perc")%></th>
<%
                if (ruimte_key_arr.length ==1)
                {
%>
                <th><%=L("lcl_estate_ruimte_bruto_vloeropp")%></th>
<%
                }
%>
              </tr>
              </thead>
              <tbody>
<%
            var sql = "SELECT SUM(alg_ruimte_bruto_vloeropp) oppervlak"
                    + "  FROM alg_ruimte r"
                    + " WHERE r.alg_ruimte_key in (" + ruimte_key_arr.join(",") + ")";
            oRs = Oracle.Execute(sql);
            var tot_oppervlak = oRs("oppervlak").value;

            var sql = "SELECT DISTINCT ra.prs_afdeling_key,"
                    +         S("prs_dep_string") + " prs_afdeling_naam,"
                    + "       prs_ruimteafdeling_bezetting bezetting,"
                    + "       alg_ruimte_bruto_vloeropp oppervlak"
                    + "  FROM prs_ruimteafdeling ra,"
                    + "       prs_v_aanwezigafdeling d,"
                    + "       alg_ruimte r"
                    + " WHERE ra.prs_afdeling_key = d.prs_afdeling_key"
                    + "   AND ra.alg_ruimte_key = r.alg_ruimte_key"
                    + "   AND ra.prs_ruimteafdeling_verwijder IS NULL"
                    + "   AND ra.alg_ruimte_key in (" + ruimte_key_arr.join(",") + ")"
                    + " ORDER BY 2";
              oRs = Oracle.Execute(sql);
                var teller = 0;
                var bezetopp;
                while (!oRs.eof)
                {
                  teller++;
                  var oppervlak = oRs("oppervlak").value;
                  bezetopp = (oRs("bezetting").value * oRs("oppervlak").value)/100;
%>
                  <script type="text/javascript">
                    CreateRow(<%=oRs("prs_afdeling_key").value%>,
                              '<%=safe.jsstring(oRs("prs_afdeling_naam").value)%>',
                              '<%=safe.displayfloat(oRs("bezetting").value, 2)%>',
                              '<%=safe.displayfloat(bezetopp, 2)%>',
                              '<%=safe.displayfloat(oppervlak, 2)%>'
                             );
                  </script>

<%                oRs.MoveNext();
                }
%>
              </tbody>
              </table>
            </td>
          </tr>

<%        BLOCK_END();
          var buttons =  [ {title: L("lcl_add"),    icon: "submit.png", action: "alg_add('"+ safe.displayfloat(tot_oppervlak, 2) +"')" },
                           {title: L("lcl_submit"), icon: "undo.png",   action: "alg_submit()" } ];
          CreateButtons(buttons);
IFACE.FORM_END();
%>
        </form>
      </div>
    </body>
  </html>
<%
}
%>