home *** CD-ROM | disk | FTP | other *** search
/ bombers.k12.ar.us / bombers.k12.ar.us.tar / bombers.k12.ar.us / survey / MoveItemAction.asp < prev    next >
Text File  |  2006-11-29  |  6KB  |  144 lines

  1. <!--#Include File="Include/Top_inc.asp"-->
  2. <%
  3. '***********************************************************************
  4. '   Application: SelectSurveyASP Advanced v8.1.11
  5. '   Author: Aaron Baril for ClassApps.com
  6. '   Page Description: This page works with MoveItem.asp, and processes the
  7. '                     form that allows users to move an item.  After copying 
  8. '                      the item, the user is redirected to the ModifySurvey.asp
  9. '                      page.
  10. '
  11. '   COPYRIGHT NOTICE                                
  12. '
  13. '   See attached Software License Agreement
  14. '
  15. '   (c) Copyright 2002 - 2006 by ClassApps.com.  All rights reserved.
  16. '***********************************************************************
  17. %>
  18. <!--#Include File="Include/Config_inc.asp"-->
  19. <!--#Include File="Include/Utility_inc.asp"-->
  20. <!--#Include File="Include/adovbs_inc.asp"-->
  21. <!--#Include File="Include/CurrentUser_inc.asp"-->
  22. <!--#Include File="Include/SurveySecurity_inc.asp"-->
  23. <!--#Include File="Include/SurveyUtility_inc.asp"-->
  24. <!--#Include File="Include/Constants_inc.asp"-->
  25. <%
  26.     Dim strSQL
  27.     Dim conItem
  28.     Dim rsMove
  29.     Dim lngSurveyID
  30.     Dim lngItemID
  31.     Dim lngOrderNumber
  32.     Dim lngPageNumber
  33.     Dim lngDestinationPageNumber
  34.     Dim lngDestinationMoveBeforeItem
  35.     Dim lngDestinationOrderNumber
  36.     Dim lngItemCount
  37.     
  38.     'Initialization
  39.     Set conItem = Server.CreateObject("ADODB.Connection")
  40.     Set rsMove = Server.CreateObject("ADODB.Recordset")
  41.     conItem.Open SURVEY_APP_CONNECTION
  42.     lngSurveyID = Request.Form("SurveyID")
  43.     lngItemID = Request.Form("ItemID")
  44.     lngOrderNumber = Request.Form("OrderNumber")
  45.     lngPageNumber = Request.Form("PageNumber")
  46.     lngDestinationPageNumber = Request.Form("cboPageNumber")
  47.     lngDestinationMoveBeforeItem = Request.Form("cboMoveBeforeItem")
  48.  
  49.     'Get the number of items on the page that contains the item to be moved
  50.     strSQL = "SELECT count(item_id) As ItemCount " & _
  51.                 "FROM sur_survey_to_item_mapping " & _
  52.                 "WHERE survey_id = " & lngSurveyID & _
  53.                 " AND page_number = " & lngPageNumber
  54.     rsMove.Open ConvertSQL(strSQL), conItem, adOpenForwardOnly, adLockReadOnly, adCmdText
  55.     rsMove.MoveFirst
  56.     lngItemCount = CLng(rsMove("ItemCount"))
  57.     rsMove.Close
  58.  
  59.     'Delete the current record from the mapping table for the item to be moved
  60.     strSQL = "DELETE FROM sur_survey_to_item_mapping " & _
  61.              "WHERE    item_id = " & lngItemID
  62.     conItem.Execute ConvertSQL(strSQL), , adCmdText
  63.     
  64.     'Move all the other items after the one just deleted down one.
  65.     strSQL = "UPDATE sur_survey_to_item_mapping " & _
  66.              "SET order_number = order_number - 1 " & _
  67.              "WHERE order_number > " & lngOrderNumber & _ 
  68.              " AND survey_id = " & lngSurveyID
  69.     conItem.Execute ConvertSQL(strSQL), , adCmdText
  70.     
  71.     'Get the current order number of the destination item.  If the destination is the end of the page, get the
  72.     'order number of the last item on that page
  73.     If CStr(lngDestinationMoveBeforeItem) = CStr(SUR_MOVE_ITEM_TO_END) Then
  74.         strSQL = "SELECT MAX(order_number) + 1 AS OrderNumber " & _
  75.                  "FROM sur_survey_to_item_mapping " & _
  76.                  "WHERE page_number = " & lngDestinationPageNumber & _
  77.                  " AND survey_id = " & lngSurveyID
  78.     Else
  79.         strSQL = "SELECT order_number AS OrderNumber " & _
  80.                  "FROM sur_survey_to_item_mapping " & _
  81.                  "WHERE item_id = " & lngDestinationMoveBeforeItem
  82.     End If
  83.     rsMove.Open ConvertSQL(strSQL), conItem, adOpenForwardOnly, adLockReadOnly, adCmdText
  84.     rsMove.MoveFirst
  85.     lngDestinationOrderNumber = rsMove("OrderNumber")
  86.     rsMove.Close
  87.     Set rsMove = Nothing
  88.  
  89.     'Move all the other items after the place we're going to move this item to up one to create a space for it. 
  90.     strSQL = "UPDATE sur_survey_to_item_mapping " & _
  91.              "SET order_number = order_number + 1 " & _
  92.              "WHERE order_number >= " & lngDestinationOrderNumber & _ 
  93.              " AND survey_id = " & lngSurveyID
  94.     conItem.Execute ConvertSQL(strSQL), , adCmdText
  95.     
  96.     'Insert a record for the new location into the mapping table
  97.     strSQL = "INSERT INTO sur_survey_to_item_mapping(survey_id, item_id, order_number, page_number) " & _
  98.              "VALUES(" & lngSurveyID & ", " & lngItemID & ", " & lngDestinationOrderNumber & ", " & lngDestinationPageNumber & ")"
  99.     conItem.Execute ConvertSQL(strSQL), , adCmdText
  100.  
  101.     'If the item moved was the only item on the page, adjust the page numbers.
  102.     If lngItemCount = 1 Then
  103.         'Delete any page conditions for the page
  104.         strSQL = "DELETE from sur_page_condition " & _
  105.                     "WHERE survey_id = " & lngSurveyID & _
  106.                     " AND page_number = " & lngPageNumber
  107.         conItem.Execute ConvertSQL(strSQL), , adCmdText
  108.  
  109.         'Drop the page number for all page conditions for this survey that are greater than the page just deleted
  110.         strSQL = "UPDATE sur_page_condition " & _
  111.                     "SET page_number = page_number - 1 " & _
  112.                     "WHERE survey_id = " & lngSurveyID & _
  113.                     " AND page_number > " & lngPageNumber
  114.         conItem.Execute ConvertSQL(strSQL), , adCmdText
  115.                         
  116.         'Delete any page property entries
  117.         strSQL = "DELETE from sur_page " & _
  118.                     "WHERE survey_id = " & lngSurveyID & _
  119.                     " AND page_number = " & lngPageNumber
  120.         conItem.Execute ConvertSQL(strSQL), , adCmdText
  121.  
  122.         'Drop the page number for all page property entries for this survey that are greater than the page just deleted
  123.         strSQL = "UPDATE sur_page " & _
  124.                     "SET page_number = page_number - 1 " & _
  125.                     "WHERE survey_id = " & lngSurveyID & _
  126.                     " AND page_number > " & lngPageNumber
  127.         conItem.Execute ConvertSQL(strSQL), , adCmdText
  128.  
  129.         'Move all the items below the ones on the page just deleted up.  These items should be moved up the same number of 
  130.         'positions as the number of items deleted
  131.         strSQL = "UPDATE sur_survey_to_item_mapping SET page_number = page_number - " & lngItemCount & _
  132.                     " WHERE survey_id = " & lngSurveyID & _
  133.                     " AND page_number > " & lngPageNumber
  134.         conItem.Execute ConvertSQL(strSQL), , adCmdText
  135.     End If
  136.  
  137.     'Clean up
  138.     conItem.Close
  139.     Set conItem = Nothing
  140.  
  141.     'Redirect back to the ModifySurvey.asp page.
  142.     Response.Redirect "ModifySurvey.asp?SurveyID=" & lngSurveyID & "&#ItemID" & lngItemID
  143. %>
  144.