Files
Facilitor/APPL/CAD/wp_create.asp
Jos Groot Lipman f135ff0707 FSN#26953 Combinatie Impliciet/flexwerkplekken beter ondersteunen
svn path=/Website/trunk/; revision=18968
2013-09-03 09:17:28 +00:00

91 lines
2.9 KiB
Plaintext

<%@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 }));
%>