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

    File:               prs_edit_dienstlocs.asp
    Description:        (Modal)dialoog om aan een bedrijf en dienst een scope (locaties en/of gebouwen) te koppelen
    Globalen:
        bedrijf_key     Bedrijf key
        dienst_key      Dienst key
    Context:
    Note:
*/
%>

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

<%
FCLTHeader.Requires({ plugins: ["jQuery"] })

var bedrijf_key = getQParamInt("bedrijf_key");  // bedrijf key
var dienst_key = getQParamInt("dienst_key");  // bedrijf key
%>
<html>
  <head>
<%  FCLTHeader.Generate();

    var submitting = getQParamInt("submit", 0) == 1;
    if (submitting)
    {
      var locs = getFParamIntArray("locExist", []);
      var gebs = getFParamIntArray("gebExist", []);
      // Verwijderen alle oude waarden.
      sql = "DELETE prs_bedrijfdienstlocatie"
          + " WHERE prs_bedrijf_key = " + bedrijf_key
          + "   AND prs_dienst_key = " + dienst_key;
      Oracle.Execute(sql);

      if (locs.length > 0 || gebs.length > 0)
      { // Er zijn locaties en/of gebouwen geselecteerd.
        for (i in locs)
        {
          var loc_key = locs[i];
          var sql = "INSERT INTO prs_bedrijfdienstlocatie (prs_bedrijf_key, prs_dienst_key, alg_locatie_key)"
                  + " VALUES (" +  bedrijf_key + ", " + dienst_key + ", " + loc_key + ")";
          Oracle.Execute(sql);
        }

        for (i in gebs)
        {
          var bld_key = gebs[i];
          var sql = "INSERT INTO prs_bedrijfdienstlocatie (prs_bedrijf_key, prs_dienst_key, alg_gebouw_key)"
                  + " VALUES (" +  bedrijf_key + ", " + dienst_key + ", " + bld_key + ")";
          Oracle.Execute(sql);
        }
      }
      else
      { // Er zijn geen locaties of gebouwen geselecteerd. Dan nemen we 'Alle'. Anders moet je maar de gehele dienst(locatie) verwijderen.
        var sql = "INSERT INTO prs_bedrijfdienstlocatie (prs_bedrijf_key, prs_dienst_key)"
                + " VALUES (" +  bedrijf_key + ", " + dienst_key + ")";
        Oracle.Execute(sql);
      }

      %><script>FcltMgr.closeDetail(window, { refresh: true } );</script><%
      Response.End;
    }

    //
    // Einde submit, nu de gewone dialoog
    //
%>
    <script>
      function moveRightLoc(obj)
      {
        if ($("#locPossible option:selected")[0])
        {
          // Toevoegen
          $("#locPossible option:selected").clone().prependTo("#locExist");
          $("#locPossible option:selected").remove();
        }
      }

      function moveRightGeb(obj)
      {
        $("#gebPossible option:selected").each(function(i, selected)
                                               {
                                                 // Als de locatie van dit gebouw geselecteerd is, moet deze verwijderd worden in de geselecteerde locaties lijst.
                                                 var loc_key = $(selected)[0].alg_locatie_key;
                                                 $("#locExist option").each(function(i, selected2)
                                                                            {
                                                                              if (loc_key == $(selected2).val())
                                                                              {
                                                                              	$(this).clone().prependTo("#locPossible");
                                                                                $(this).remove();
                                                                              }
                                                                            });
                                               })

        // Toevoegen
        $("#gebPossible option:selected").clone().prependTo("#gebExist");
        $("#gebPossible option:selected").remove();
      }

      function removeLoc(obj)
      {
        $("#locExist option:selected").clone().prependTo("#locPossible");
        $("#locExist option:selected").remove();
      }

      function removeGeb(obj)
      {
        $("#gebExist option:selected").clone().prependTo("#gebPossible");
        $("#gebExist option:selected").remove();
      }

      function bdl_submit()
      {
        $("#gebExist>option").prop("selected", true); // alles submitten
        $("#locExist>option").prop("selected", true); // alles submitten
        document.forms.u2.submit();
      }
    </script>
  </head>
  <body id="editbody">
<%  var buttons = [{title: L("lcl_submit"), icon: "opslaan.png", action: "bdl_submit()"},
                   {title: L("lcl_cancel"), icon: "undo.png", action: "FcltMgr.closeDetail(window, { cancel: true })"}];
    IFRAMER_HEADER(L("lcl_prs_locbld_select"), buttons);

  %>
    <form name="u2" action="prs_edit_dienstlocs.asp?submit=1&bedrijf_key=<%=bedrijf_key%>&dienst_key=<%=dienst_key%>" method="post">
      <table>
      <tr>
        <td>
          <label><%=L("lcl_location")%>:</label><br>
<%
          var existing_loc_sql =
                "SELECT dl.alg_locatie_key"
              + "     , l.alg_locatie_omschrijving"
              + "     , 'L' locorgeb"
              + "  FROM prs_bedrijfdienstlocatie dl"
              + "     , alg_locatie l"
              + " WHERE dl.alg_locatie_key = l.alg_locatie_key"
              + "   AND dl.prs_dienst_key = " + dienst_key
              + "   AND dl.prs_bedrijf_key = " + bedrijf_key
              + "   AND dl.alg_locatie_key IS NOT NULL";

          var loc_sql =
                "SELECT l.alg_locatie_key"
              + "     , l.alg_locatie_omschrijving"
              + "     , 'L' locorgeb"
              + "  FROM alg_v_aanweziglocatie l";

          FCLTselector("locPossible", loc_sql + " MINUS " + existing_loc_sql + " ORDER BY 2",
                  {   startmulti: true,
                      size: 10,
                      extraParamValue: "locorgeb"
                  } );
%>
        </td>
        <td>
          <div class="mv r" onclick="moveRightLoc()"><%=L("lcl_add")%>&gt;&gt;</div>
          <div class="mv l" onclick="removeLoc()">&lt;&lt;<%=L("lcl_delete")%></div>
        </td>
        <td>
          <label><%=L("lcl_prs_loc_selected") + ':'%></label><br/>
<%        FCLTselector("locExist", existing_loc_sql+ " ORDER BY 2" ,
                {   startmulti: true,
                    size: 10,
                    extraParamValue: "locorgeb"
                }); %>
        </td>
      </tr>
      <tr>
        <td>
<%        var existing_geb_sql = "SELECT dl.alg_gebouw_key"
                               + "     , l.alg_locatie_code||'-'||g.alg_gebouw_omschrijving"
                               + "     , 'G' locorgeb"
                               + "     , l.alg_locatie_key"
                               + "  FROM prs_bedrijfdienstlocatie dl"
                               + "     , alg_gebouw g"
                               + "     , alg_locatie l"
                               + " WHERE dl.alg_gebouw_key = g.alg_gebouw_key"
                               + "   AND g.alg_locatie_key = l.alg_locatie_key"
                               + "   AND dl.prs_dienst_key = " + dienst_key
                               + "   AND dl.prs_bedrijf_key = " + bedrijf_key
                               + "   AND dl.alg_gebouw_key IS NOT NULL";

          var geb_sql = "SELECT g.alg_gebouw_key"
                      + "     , l.alg_locatie_code||'-'||g.alg_gebouw_omschrijving"
                      + "     , 'G' locorgeb"
                      + "     , l.alg_locatie_key"
                      + "  FROM alg_v_aanweziggebouw g,"
                      + "       alg_locatie l"
                      + " WHERE l.alg_locatie_key = g.alg_locatie_key";

%>        <br><label><%=L("lcl_building")%>:</label><br>
<%        FCLTselector("gebPossible", geb_sql + " MINUS " + existing_geb_sql + " ORDER BY 2",
                       { startmulti: true,
                         size: 10,
                         extraParamValue: "alg_locatie_key"
                       });
%>
        </td>
        <td>
          <div class="mv r" onclick="moveRightGeb()"><%=L("lcl_add")%>&gt;&gt;</div>
          <div class="mv l" onclick="removeGeb()">&lt;&lt;<%=L("lcl_delete")%></div>
        </td>
        <td>
          <br><label><%=L("lcl_prs_bld_selected") + ':'%></label><br><%
          FCLTselector("gebExist", existing_geb_sql+ " ORDER BY 2" ,
                       { startmulti: true,
                         size: 10,
                         extraParamValue: "alg_locatie_key"
                       }); %>
        </td>
      </tr>
      </table>
<% IFACE.FORM_END(); %>
    </form>
  </body>
</html>
