home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
bombers.k12.ar.us
/
bombers.k12.ar.us.tar
/
bombers.k12.ar.us
/
survey_unconfigured
/
MoveItemAction.asp
< prev
next >
Wrap
Text File
|
2006-10-25
|
6KB
|
144 lines
<!--#Include File="Include/Top_inc.asp"-->
<%
'***********************************************************************
' Application: SelectSurveyASP Advanced v8.1.11
' Author: Aaron Baril for ClassApps.com
' Page Description: This page works with MoveItem.asp, and processes the
' form that allows users to move an item. After copying
' the item, the user is redirected to the ModifySurvey.asp
' page.
'
' COPYRIGHT NOTICE
'
' See attached Software License Agreement
'
' (c) Copyright 2002 - 2006 by ClassApps.com. All rights reserved.
'***********************************************************************
%>
<!--#Include File="Include/Config_inc.asp"-->
<!--#Include File="Include/Utility_inc.asp"-->
<!--#Include File="Include/adovbs_inc.asp"-->
<!--#Include File="Include/CurrentUser_inc.asp"-->
<!--#Include File="Include/SurveySecurity_inc.asp"-->
<!--#Include File="Include/SurveyUtility_inc.asp"-->
<!--#Include File="Include/Constants_inc.asp"-->
<%
Dim strSQL
Dim conItem
Dim rsMove
Dim lngSurveyID
Dim lngItemID
Dim lngOrderNumber
Dim lngPageNumber
Dim lngDestinationPageNumber
Dim lngDestinationMoveBeforeItem
Dim lngDestinationOrderNumber
Dim lngItemCount
'Initialization
Set conItem = Server.CreateObject("ADODB.Connection")
Set rsMove = Server.CreateObject("ADODB.Recordset")
conItem.Open SURVEY_APP_CONNECTION
lngSurveyID = Request.Form("SurveyID")
lngItemID = Request.Form("ItemID")
lngOrderNumber = Request.Form("OrderNumber")
lngPageNumber = Request.Form("PageNumber")
lngDestinationPageNumber = Request.Form("cboPageNumber")
lngDestinationMoveBeforeItem = Request.Form("cboMoveBeforeItem")
'Get the number of items on the page that contains the item to be moved
strSQL = "SELECT count(item_id) As ItemCount " & _
"FROM sur_survey_to_item_mapping " & _
"WHERE survey_id = " & lngSurveyID & _
" AND page_number = " & lngPageNumber
rsMove.Open ConvertSQL(strSQL), conItem, adOpenForwardOnly, adLockReadOnly, adCmdText
rsMove.MoveFirst
lngItemCount = CLng(rsMove("ItemCount"))
rsMove.Close
'Delete the current record from the mapping table for the item to be moved
strSQL = "DELETE FROM sur_survey_to_item_mapping " & _
"WHERE item_id = " & lngItemID
conItem.Execute ConvertSQL(strSQL), , adCmdText
'Move all the other items after the one just deleted down one.
strSQL = "UPDATE sur_survey_to_item_mapping " & _
"SET order_number = order_number - 1 " & _
"WHERE order_number > " & lngOrderNumber & _
" AND survey_id = " & lngSurveyID
conItem.Execute ConvertSQL(strSQL), , adCmdText
'Get the current order number of the destination item. If the destination is the end of the page, get the
'order number of the last item on that page
If CStr(lngDestinationMoveBeforeItem) = CStr(SUR_MOVE_ITEM_TO_END) Then
strSQL = "SELECT MAX(order_number) + 1 AS OrderNumber " & _
"FROM sur_survey_to_item_mapping " & _
"WHERE page_number = " & lngDestinationPageNumber & _
" AND survey_id = " & lngSurveyID
Else
strSQL = "SELECT order_number AS OrderNumber " & _
"FROM sur_survey_to_item_mapping " & _
"WHERE item_id = " & lngDestinationMoveBeforeItem
End If
rsMove.Open ConvertSQL(strSQL), conItem, adOpenForwardOnly, adLockReadOnly, adCmdText
rsMove.MoveFirst
lngDestinationOrderNumber = rsMove("OrderNumber")
rsMove.Close
Set rsMove = Nothing
'Move all the other items after the place we're going to move this item to up one to create a space for it.
strSQL = "UPDATE sur_survey_to_item_mapping " & _
"SET order_number = order_number + 1 " & _
"WHERE order_number >= " & lngDestinationOrderNumber & _
" AND survey_id = " & lngSurveyID
conItem.Execute ConvertSQL(strSQL), , adCmdText
'Insert a record for the new location into the mapping table
strSQL = "INSERT INTO sur_survey_to_item_mapping(survey_id, item_id, order_number, page_number) " & _
"VALUES(" & lngSurveyID & ", " & lngItemID & ", " & lngDestinationOrderNumber & ", " & lngDestinationPageNumber & ")"
conItem.Execute ConvertSQL(strSQL), , adCmdText
'If the item moved was the only item on the page, adjust the page numbers.
If lngItemCount = 1 Then
'Delete any page conditions for the page
strSQL = "DELETE from sur_page_condition " & _
"WHERE survey_id = " & lngSurveyID & _
" AND page_number = " & lngPageNumber
conItem.Execute ConvertSQL(strSQL), , adCmdText
'Drop the page number for all page conditions for this survey that are greater than the page just deleted
strSQL = "UPDATE sur_page_condition " & _
"SET page_number = page_number - 1 " & _
"WHERE survey_id = " & lngSurveyID & _
" AND page_number > " & lngPageNumber
conItem.Execute ConvertSQL(strSQL), , adCmdText
'Delete any page property entries
strSQL = "DELETE from sur_page " & _
"WHERE survey_id = " & lngSurveyID & _
" AND page_number = " & lngPageNumber
conItem.Execute ConvertSQL(strSQL), , adCmdText
'Drop the page number for all page property entries for this survey that are greater than the page just deleted
strSQL = "UPDATE sur_page " & _
"SET page_number = page_number - 1 " & _
"WHERE survey_id = " & lngSurveyID & _
" AND page_number > " & lngPageNumber
conItem.Execute ConvertSQL(strSQL), , adCmdText
'Move all the items below the ones on the page just deleted up. These items should be moved up the same number of
'positions as the number of items deleted
strSQL = "UPDATE sur_survey_to_item_mapping SET page_number = page_number - " & lngItemCount & _
" WHERE survey_id = " & lngSurveyID & _
" AND page_number > " & lngPageNumber
conItem.Execute ConvertSQL(strSQL), , adCmdText
End If
'Clean up
conItem.Close
Set conItem = Nothing
'Redirect back to the ModifySurvey.asp page.
Response.Redirect "ModifySurvey.asp?SurveyID=" & lngSurveyID & "ItemID" & lngItemID
%>