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

     File:               CAD/req_move.asp
     Description:        Verplaats een prs_perslidwerkplek
                         Biedt een werkplek met voldoende ruimte aan of
                         laat huidige werkplek meenemen.
                         We genereren geen nieuwe werkplekken, hooguit een nieuw volgnummer!
     Parameters:         prswp_key: de huidige prs_perslidwerkplek_key
                         room_key: alg_ruimte_key waarop gedropt of W:prs_werkplek_key
     Context:            Modal na droppen van een prs_perslid op de tekening
     Result:             true als daadwerkelijk iets verplaats (dan moet je waarschijnlijk
                         ergens beeld refreshen)
     Note:

*/ %>
<!--#include file="fgii.inc"-->
<!--#include file="../Shared/common.inc"-->
<!--#include file="../Shared/WPFunctions.inc" -->
<!--#include file="../Shared/iface.inc" -->
<!--#include file="../Shared/json2.js" -->
<html>
<head>
<%
    FCLTHeader.Generate();
    var autfunction = "WEB_PRSBOF";
    var authparams = user.checkAutorisation(autfunction);

    var oRs,i;
    var sql="";
    i=0;

    var prswp_key = getQParamInt("prswp_key"); // perslidwerkplek_key
    var room_key = getQParam( "room_key"); // Nieuwe ruimte, kan ook W:12344 bevatten voor werkplek of R:12345 voor ruimte
    var TransitParams = "prswp_key="+prswp_key+"&room_key="+room_key;

    if (room_key.match(/^W:/)) // Op werkplek gedropt
    {
        var wp_key = parseInt(room_key.substring(2), 10);
        sql = "UPDATE PRS_PERSLIDWERKPLEK"
            + "   SET PRS_WERKPLEK_KEY = " + wp_key
            + " WHERE PRS_PERSLIDWERKPLEK_KEY = " + prswp_key;
        Oracle.Execute(sql);
        %><script type="text/javascript">FcltMgr.closeDetail(window);</script><%
        Response.End;
    }

    room_key = parseInt(room_key.substr(2),10); // room_key moet nu echt een integer zijn.
    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();
    }

    // Let op: alg_ruimte zoeken we met de doel-ruimte, niet herkomst. Beetje lui...
    var sql = "SELECT " + S("prs_pers_string") + " naam, ar.alg_ruimte_nr,"
           + "       prs_perslidwerkplek_bezetting, prs_werkplek_omschrijving, "
           + "       pwp.prs_werkplek_key"
           + "  FROM prs_v_perslid_gegevens p, prs_perslidwerkplek pwp, "
           + "       prs_werkplek pw, alg_ruimte ar"
           + " WHERE p.prs_perslid_key = pwp.prs_perslid_key"
           + "   AND pwp.prs_werkplek_key = pw.prs_werkplek_key"
           + "   AND ar.alg_ruimte_key = " + room_key
           + "   AND pwp.prs_perslidwerkplek_key = " + prswp_key
    oRs = Oracle.Execute(sql);
    var bez = oRs("prs_perslidwerkplek_bezetting").Value;
    var orgwp_key = oRs("prs_werkplek_key").Value;

%>
<script type="text/javascript">
    function movePWPToWP( wp_key )
    {
        var data = { prswp_key : <%=prswp_key%>
                   , room_key : -1
                   , prs_key : -1
                   , wp_key : wp_key
                   , domove : "movepwp"
                   };
        <% protectRequest.dataToken("data"); %>
        $.post("req_move_save.asp",
               data,
               FcltCallbackClose,
               "json");
    }
    function moveWPtoRoom( )
    {
        var data = { prswp_key : -1
                   , room_key : <%=room_key%>
                   , prs_key : -1
                   , wp_key : <%=wp_key%>
                   , domove : "movewp"
                   };
        <% protectRequest.dataToken("data"); %>
        $.post("req_move_save.asp",
               data,
               FcltCallbackClose,
               "json");
    }
</script>
</head>

<body class="modal" id="mod_req_move">
<% BLOCK_START("req_move", "");
%>
    <tr><td class='label'><label><%=L("lcl_fg_domove")%>: </label></td><td><%=safe.html(oRs("naam").Value)%></td></tr>
    <tr><td class='label'><label><%=L("lcl_fg_domovedest")%>: </label></td><td><%=safe.html(oRs("alg_ruimte_nr").Value)%></td></tr>
<% if (0) { /* Functionaliteit niet 100% uitgekristaliseerd dus uitschakelen */ %>
    <tr><td>Laat de gebruiker zijn eigen werkplek <b><%=oRs("prs_werkplek_omschrijving")%> (<%=bez%>%)</b> <input type=button onClick="moveWPtoRoom()" value='meenemen'></td></tr>
<% } %>
<%  BLOCK_END();
    var sql = "SELECT pw.prs_werkplek_key, prs_werkplek_omschrijving, "
           + " SUM(NVL(prs_perslidwerkplek_bezetting,0)) bezet"
           + " FROM prs_perslidwerkplek pwp, prs_werkplek pw"
           + " WHERE pw.prs_werkplek_key = pwp.prs_werkplek_key(+)"
           + "   AND pw.prs_alg_ruimte_key = " + room_key
           + " GROUP BY pw.prs_werkplek_key, prs_werkplek_omschrijving "
// Dit staan we tegenwoordig toe           + "HAVING SUM(NVL(prs_perslidwerkplek_bezetting,0)) + " + bez + " <= 100"
    oRs = Oracle.Execute(sql);
%>

<form name="u2" method="post">
<%     BLOCK_START("req_move", ""); %>
        <THEAD>
            <tr>
            <th><%=L("lcl_workplace")%></th>
            <th><%=L("lcl_occupation_perc")%></th>
            </tr>
        </THEAD>
        <%
        var count=0;
        while( !oRs.eof) {
            count++;
            var action="movePWPToWP(" + oRs("prs_werkplek_key").Value + ")"
        %>

        <tr id='row<%=count%>' onclick='javascript:<%=action%>' >
            <TD VAlign=top class="selectable" ><%=safe.html(oRs("prs_werkplek_omschrijving").Value)%></TD>
            <TD VAlign=top class="selectable" ><%=oRs("bezet").Value%></TD>
        </tr>
        <%
           oRs.MoveNext();
        }
        oRs.close();

  BLOCK_END();
    CreateButtons([ { title: L("lcl_cancel"), action: "FcltMgr.closeDetail(window, { cancel: true } )"} ]);
%>
</form>
</body>
</html>
