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

    File:               wp_create.asp
    Description:        Maak een nieuwe werkplek aan op een locatie (XY).
    Parameters:         locKey
                        mode
                        OF: room_key OF: wp_key
                        dwgX, dwgY
    Context:            default.asp/Ajax.Updater
    Result:             X-JSON header
    Note:               Vooralsnog *moet* in een ruimte gegooid worden of op een werkpleksymbool.
                        XY is wel optioneel.
                        TODO: op een werkplek droppen kopieert die werkplek zijn objecten?
    Result:             X-JSON header
*/
JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/WPFunctions.inc" -->
<!-- #include file="FGII.inc" -->

<%
protectRequest.validateToken();
var inoutMode = getQParamInt("mode");

var scenario_key = getQParamInt("scenario_key"); // current scenario.
var vKey = getQParamInt("vKey");

if (scenario_key == 0 && !WPCanWrite(vKey))
{
    abort_with_warning(L("lcl_fg_obj_noedit"))
}

var wp_key = getQParamInt("wp_key", -1);
if (wp_key != -1) // Kopie ondersteunen we nog niet
{
    abort_with_warning(L("lcl_wp_no_copy"))
  // merk op: als we het gaan toestaan dan moet er een controle op met WPCanWrite
  //          en zou het misschien leuk zijn de inventaris mee te kopieren (compositie)
}

if (Request.QueryString("dwgX").Count == 0)
{
  var newX = "NULL"; // Droppen met ctrlKey ingedrukt liet XY achterwege
  var newY = "NULL";
}
else
{
  var newX = parseFloat(getQParam("dwgX"));
  var newY = parseFloat(getQParam("dwgY"));
}

var roomKey = getQParamInt("room_key"); // Die moet er zijn
var locKey = getQParamInt("loc_key");

if (scenario_key == 0)
{
  wp_key = WPMake_WP(roomKey);

  sql = "UPDATE prs_werkplek"
      + "   SET prs_werkplek_dwgx = " + newX + ","
      + "       prs_werkplek_dwgy = " + newY + ","
      + "       prs_werkplek_dwgrotatie = 0,"
      + "       prs_werkplek_dwgschaal = 1.0,"
      + "       prs_werkplek_type = " + (S("prs_werkplek_implicit") == 1?1:0) // Impliciet altijd een 'Flex', Expliciet altijd een 'Vast'
      + " WHERE prs_werkplek_key = " + wp_key
  Oracle.Execute(sql);
}
else
{
  sql = "DECLARE"
      + "    werkplekkey   prj_werkplek.prj_werkplek_key%TYPE;"
      + "BEGIN"
      + "     werkplekkey := prj.find_or_create_free_werkplek (" + roomKey + ", 101);" // Door 101 krijgen we altijd een nieuwe
      + "     UPDATE prj_werkplek"
      + "       SET prj_werkplek_dwgx = " + newX + ","
      + "           prj_werkplek_dwgy = " + newY + ","
      + "           prj_werkplek_dwgrotatie = 0,"
      + "           prj_werkplek_dwgschaal = 1.0"
      + "     WHERE prj_werkplek_key = werkplekkey;"
      + "END;"
  Oracle.Execute(sql);
}

Response.Write(JSON.stringify({ success: true }));
%>
