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

     File:               CAD/req_move_save.asp
     Description:        Verplaats een prs_werkplek naar een andere ruimte.
                         Wordt aangeroepen door req_move2.pas en req_move3.pas.
     Parameters:         prswp_key: de huidige prs_werkplek_key
                         room_key: alg_ruimte_key waarop gedropt
     Note:
*/ %>

<%
var JSON_Result = true;
%>

<!--#include file="../Shared/common.inc"-->
<!--#include file="../Shared/WPFunctions.inc"-->

<%
protectRequest.validateToken();
/***** Get webform parameters *****/
var prswp_key = getFParamInt("prswp_key");
var room_key = getFParamInt("room_key");
var prs_key = getFParamInt("prs_key");
var wp_key = getFParamInt("wp_key");
var domove = getFParam("domove");
/***** End get webform parameters *****/

function moveWP(roomkey, wpkey) // Werkplek verplaatsen?
{
  var wp_key = getFParamInt("wp_key");
  sql = "UPDATE prs_werkplek"
      + "   SET prs_alg_ruimte_key = " + roomkey
      + " WHERE prs_werkplek_key = " + wpkey;
  try
  {
    Oracle.Execute(sql);
  }
  catch (e) // Neem aan dat volgnummer niet goed was, anders snappen we het niet
  {
    sql = "SELECT MIN (prs_werkplek_volgnr + 1) "
        + "  FROM prs_werkplek pw "
        + " WHERE prs_alg_ruimte_key = " + roomkey
        + "   AND NOT EXISTS ( "
        + "          SELECT * "
        + "            FROM prs_werkplek pw2 "
        + "           WHERE prs_alg_ruimte_key = " + roomkey
        + "             AND pw2.prs_werkplek_volgnr = pw.prs_werkplek_volgnr + 1)"
    oRs = Oracle.Execute(sql);
    var nextvolg = oRs(0).value;
    sql = "UPDATE prs_werkplek"
        + "   SET prs_alg_ruimte_key = " + roomkey
        + "      ,prs_werkplek_volgnr = " + nextvolg
        + " WHERE prs_werkplek_key = " + wpkey;
    oRs = Oracle.Execute(sql);
  }
}

function movePWP(wpkey, prswpkey) // Perslidwerkplek verplaatsen?
{ // We hebben alleen werkplekken aangeboden met voldoende ruimte dus dat
  // hoeven we niet meer te controleren
  var wp_key = getFParamInt("wp_key");
  sql = "UPDATE prs_perslidwerkplek"
      + "   SET prs_werkplek_key = " + wpkey
      + " WHERE prs_perslidwerkplek_key = " + prswpkey;
  Oracle.Execute(sql);
}

var message = "";
var autfunction = "WEB_PRSBOF";
var authparams = user.checkAutorisation(autfunction);

// Mag ik schijven in de doelruimte?
if (authparams.ALGwritelevel > -1)
{
  var sql = "SELECT alg_ruimte_key"
          + "  FROM fac_v_my_rooms"
          + " WHERE prs_perslid_key =" + user_key
          + "   AND alg_ruimte_key = " + room_key
          + "   AND niveau=" + authparams.ALGwritelevel;
  oRs = Oracle.Execute(sql);
  user.auth_required_or_abort(!oRs.Eof);
  oRs.Close();
}

switch (domove)
{
  case "movewpr": WPMove_PRS_PERSLIDWERKPLEK(prswp_key, room_key);
                  break;
  case "placewp": WPPlace_PRS_PERSLID(prs_key, room_key);
                  break;
  case "movewp":  moveWP(room_key, wp_key);
                  break;
  case "movepwp": movePWP(wp_key, prswp_key);
                  break;
}

var result = {message: message, success: true };
Response.Write(JSON.stringify(result));
Response.End;
%>
<% ASPPAGE_END(); %> 
