<%@ Language=VBScript %>
<!--#INCLUDE file="ADOVBS.inc"-->
<%
	dim int_folio, str_proceso
	dim sqlQuery, rs, conn, resultado(50), STR_SALIR

	dsn= application("bd_sieps")

	set conn = server.CreateObject ("ADODB.Connection")
	set rs = server.CreateObject ("ADODB.Recordset")

	conn.Open dsn
	   
	int_folio = Request.QueryString("folio")
	str_proceso = Request.QueryString("proceso")
	
	STR_SALIR= Request.Form("SALIR")

'sendMensajeToConsole("folio: "&int_folio&" proceso: "&str_proceso&" salir: "&str_salir)

	for i=1 to 50
		if i=8 or i=12 or i=15 or i=16 or i=17 or i=18 or i=21 or i=24 or i=27 or i=29 or i=30 or i=31 or i=34 or i=35 or i=36 or i=37 or i=38 or i=40 or i=42 or i=43 or i=45 or i=48 or i=50 then
			resultado(i)=replace(replace(Request.Form("r"&i&"-1"),"'"," "),chr(34)," ")
		else
			int_numero=""
			for j=1 to 5
				if Request.Form("r"&i&"-"&j)="on" then
					int_numero =int_numero & j
				end if
			next
			if int_numero="" then
				int_numero=0
			end if
			resultado(i)=int_numero
		end if
	next

	if str_proceso="alta" then ' si es una alta
		sqlQuery = "SELECT * FROM dat_wonderlic WHERE soli_folio =" & int_folio
		 On Error Resume Next		
		rs.Open sqlQuery, conn,adOpenForwardOnly,adLockReadOnly,1
		handleError(conn)
		IF rs.EOF = true then ' si no existe
			conn.BeginTrans
			sqlQuery = "INSERT INTO dat_wonderlic(soli_folio, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, "_ 
			&" R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46, R47, R48, R49, R50)"_
			&" VALUES(" & int_folio & ",'" &  resultado(1) & "','" &  resultado(2) & "','" &  resultado(3) & "','" &  resultado(4) & "', "_
			&" '" &  resultado(5) & "','" &  resultado(6) & "','" &  resultado(7) & "','" &  resultado(8) & "',"_
			&" '" &  resultado(9) & "','" &  resultado(10) & "','" &  resultado(11) & "','" &  resultado(12) & "', "_
			&" '" &  resultado(13) & "','" &  resultado(14) & "','" &  resultado(15) & "','" &  resultado(16) & "', "_
			&" '" &  resultado(17) & "','" &  resultado(18) & "','" &  resultado(19) & "','" &  resultado(20) & "', "_
			&" '" &  resultado(21) & "','" &  resultado(22) & "','" &  resultado(23) & "','" &  resultado(24) & "', "_
			&" '" &  resultado(25) & "','" &  resultado(26) & "','" &  resultado(27) & "','" &  resultado(28) & "', "_
			&" '" &  resultado(29) & "','" &  resultado(30) & "','" &  resultado(31) & "','" &  resultado(32) & "', "_
			&" '" &  resultado(33) & "','" &  resultado(34) & "','" &  resultado(35) & "','" &  resultado(36) & "', "_
			&" '" &  resultado(37) & "','" &  resultado(38) & "','" &  resultado(39) & "','" &  resultado(40) & "', "_
			&" '" &  resultado(41) & "','" &  resultado(42) & "','" &  resultado(43) & "','" &  resultado(44) & "', "_
			&" '" &  resultado(45) & "','" &  resultado(46) & "','" &  resultado(47) & "','" &  resultado(48) & "', "_
			&" '" &  resultado(49) & "','" &  resultado(50) & "')"

			On Error Resume Next		
			conn.Execute sqlQuery,,adCmdText Or adExecuteNoRecords			
			handleError(conn)
			conn.CommitTrans
		END IF	
	elseif str_proceso="cambio" then  ' si es un cambio
		conn.BeginTrans		
		sqlQuery = "SELECT * FROM dat_wonderlic WHERE soli_folio =" & int_folio
		On Error Resume Next		
		rs.Open sqlQuery, conn,adOpenForwardOnly,adLockReadOnly,1
		handleError(conn)
		IF rs.EOF = false then
			sqlQuery = "UPDATE dat_wonderlic SET R1 ='" & resultado(1) & "', R2 ='" & resultado(2) & "', R3 ='" & resultado(3) & "', R4 ='" & resultado(4) & "',"_
			& " R5 ='" & resultado(5) & "', R6 ='" & resultado(6) & "', R7 ='" & resultado(7) & "', R8 ='" & resultado(8) & "',"_
			& " R9 ='" & resultado(9) & "', R10 ='" & resultado(10) & "', R11 ='" & resultado(11) & "', R12 ='" & resultado(12) & "',"_
			& " R13 ='" & resultado(13) & "', R14 ='" & resultado(14) & "', R15 ='" & resultado(15) & "', R16 ='" & resultado(16) & "' WHERE soli_folio =" & int_folio
			conn.Execute sqlQuery,,1
			
			sqlQuery = "UPDATE dat_wonderlic SET R17 ='" & resultado(17) & "', R18 ='" & resultado(18) & "', R19 ='" & resultado(19) & "', R20 ='" & resultado(20) & "',"_
			& " R21 ='" & resultado(21) & "', R22 ='" & resultado(22) & "', R23 ='" & resultado(23) & "', R24 ='" & resultado(24) & "',"_
			& " R25 ='" & resultado(25) & "', R26 ='" & resultado(26) & "', R27 ='" & resultado(27) & "', R28 ='" & resultado(28) & "',"_
			& " R29 ='" & resultado(29) & "', R30 ='" & resultado(30) & "', R31 ='" & resultado(31) & "', R32 ='" & resultado(32) & "' WHERE soli_folio =" & int_folio
			conn.Execute sqlQuery,,1
			
			sqlQuery = "UPDATE dat_wonderlic SET R33 ='" & resultado(33) & "', R34 ='" & resultado(34) & "', R35 ='" & resultado(35) & "', R36 ='" & resultado(36) & "',"_
			& " R37 ='" & resultado(37) & "', R38 ='" & resultado(38) & "', R39 ='" & resultado(39) & "', R40 ='" & resultado(40) & "',"_
			& " R41 ='" & resultado(41) & "', R42 ='" & resultado(42) & "', R43 ='" & resultado(43) & "', R44 ='" & resultado(44) & "',"_
			& " R45 ='" & resultado(45) & "', R46 ='" & resultado(46) & "', R47 ='" & resultado(47) & "', R48 ='" & resultado(48) & "', R49 ='" & resultado(49) & "', R50 ='" & resultado(50) & "' WHERE soli_folio =" & int_folio
			On Error Resume Next
			conn.Execute sqlQuery,,adCmdText Or adExecuteNoRecords			
			handleError(conn)
			conn.CommitTrans
		END IF	
	end if
	' clean up
	If rs.State = adStateOpen then
		rs.Close
	End If
	If conn.State = adStateOpen then
		conn.Close
	End If
	Set rs = Nothing
	Set conn = Nothing

	IF STR_SALIR ="SALIR" then
		Response.Redirect("aplicacion_termina.asp")
	else
		Response.Redirect("uti_siguiente.asp")
	end if
	
sub handleError(connectionRef)
	dim objErr
	dim str_c
	dim strrr, flag
	flag = 0

	if connectionRef.Errors.Count <> 0 Then
		str_c = str_c & "Count: " 
		str_c = str_c & connectionRef.Errors.Count
		for each objErr in connectionRef.Errors
			if objErr.Number <> 0 then ' Number = 0 el error es meramente informativo
				str_c = str_c & " Number: "
				str_c = str_c & objErr.Number			
				
				str_c = str_c & " Description: "
				str_c = str_c & objErr.Description  
			  
				str_c=str_c&" Native error: "
				str_c=str_c&objErr.NativeError 
				  
				str_c=str_c&" SQL state: "
				str_c=str_c&objErr.SQLState
				flag = 1
			end if
		next		
		if flag <> 0 then
			' clean up		
			if conn.State = adStateOpen then
				conn.Close
			end if
			
			set rs = Nothing
			set conn = Nothing
			set connectionRef = nothing
			
			strrr = "uti_console.asp?mensaje=" & "Error: " & str_c 
			Response.Redirect(strrr)
		end if		
	end if	
end sub

sub sendMensajeToConsole(mensaje)
	dim strrr
	strrr="uti_console.asp?mensaje=" & mensaje
	Response.Redirect(strrr)
end sub
%>
