<%@ Language=VBScript %>
<!--#INCLUDE file="ADOVBS.inc"-->
<%
	dim int_folio, str_proceso
	dim sqlQuery, rs, conn, resultado(126), 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")

	for i=1 to 14
		int_numero=0
		for j=1 to 2
			if Request.Form("r"&i&"-"&j)="on" then
				int_numero =J	
			end if
		next
		resultado(i)=int_numero
	next
	i=14
	int_numero=0
	for j=1 to 3
		if Request.Form("r"&i&"-"&j)="on" then
			int_numero =J	
		end if
	next
	resultado(i)=int_numero

	for i=15 to 16
		int_numero=0
		for j=1 to 2
			if Request.Form("r"&i&"-"&j)="on" then
				int_numero =J	
			end if
		next
		resultado(i)=int_numero
	next

	i=17
	int_numero=0
	for j=1 to 3
		if Request.Form("r"&i&"-"&j)="on" then
			int_numero =J	
		end if
	next
	resultado(i)=int_numero

	for i=18 to 77
		int_numero=0
		for j=1 to 2
			if Request.Form("r"&i&"-"&j)="on" then
				int_numero =J	
			end if
		next
		resultado(i)=int_numero
	next

	i=78
	int_numero=0
	for j=1 to 3
		if Request.Form("r"&i&"-"&j)="on" then
			int_numero =J	
		end if
	next
	resultado(i)=int_numero

	for i=79 to 80
		int_numero=0
		for j=1 to 2
			if Request.Form("r"&i&"-"&j)="on" then
				int_numero =J	
			end if
		next
		resultado(i)=int_numero
	next

	i=81
	int_numero=0
	for j=1 to 3
		if Request.Form("r"&i&"-"&j)="on" then
			int_numero =J	
		end if
	next
	resultado(i)=int_numero

	for i=82 to 92
		int_numero=0
		for j=1 to 2
			if Request.Form("r"&i&"-"&j)="on" then
				int_numero =J	
			end if
		next
		resultado(i)=int_numero
	next

	i=93
	int_numero=0
	for j=1 to 3
		if Request.Form("r"&i&"-"&j)="on" then
			int_numero =J	
		end if
	next
	resultado(i)=int_numero

	for i=94 to 110
		int_numero=0
		for j=1 to 2
			if Request.Form("r"&i&"-"&j)="on" then
				int_numero =J	
			end if
		next
		resultado(i)=int_numero
	next

	i=111
	int_numero=0
	for j=1 to 3
		if Request.Form("r"&i&"-"&j)="on" then
			int_numero =J	
		end if
	next
	resultado(i)=int_numero

	for i=112 to 115
		int_numero=0
		for j=1 to 2
			if Request.Form("r"&i&"-"&j)="on" then
				int_numero =J	
			end if
		next
		resultado(i)=int_numero
	next

	i=116
	int_numero=0
	for j=1 to 3
		if Request.Form("r"&i&"-"&j)="on" then
			int_numero =J	
		end if
	next
	resultado(i)=int_numero

	for i=117 to 122
		int_numero=0
		for j=1 to 2
			if Request.Form("r"&i&"-"&j)="on" then
				int_numero =J	
			end if
		next
		resultado(i)=int_numero
	next

	for i=123 to 124
		int_numero=0
		for j=1 to 3
			if Request.Form("r"&i&"-"&j)="on" then
				int_numero =J	
			end if
		next
		resultado(i)=int_numero
	next

	for i=125 to 126
		int_numero=0
		for j=1 to 2
			if Request.Form("r"&i&"-"&j)="on" then
				int_numero =J	
			end if
		next
		resultado(i)=int_numero
	next


	if str_proceso="alta" then ' si es una alta
		sqlQuery = "SELECT * FROM dat_invtipo 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_invtipo (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, R51, R52, R53, R54, R55, R56, R57, R58, R59, R60, "_
			&" R61, R62, R63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R77, R78, R79, R80, R81, R82, R83, R84, R85, R86, R87, R88, R89, R90, R91, R92, R93, R94, "_
			&" R95, R96, R97, R98, R99, R100, R101, R102, R103, R104, R105, R106, R107, R108, R109, R110, R111, R112, R113, R114, R115, R116, R117, R118, R119, R120, R121, R122, R123, R124, R125, R126)"_   
			&" 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) & ", "_
			&" " &  resultado(51) & "," &  resultado(52) & "," &  resultado(53) & "," &  resultado(54) & ", "_
			&" " &  resultado(55) & "," &  resultado(56) & "," &  resultado(57) & "," &  resultado(58) & ", "_
			&" " &  resultado(59) & "," &  resultado(60) & "," &  resultado(61) & "," &  resultado(62) & ", "_
			&" " &  resultado(63) & "," &  resultado(64) & "," &  resultado(65) & "," &  resultado(66) & ", "_
			&" " &  resultado(67) & "," &  resultado(68) & "," &  resultado(69) & "," &  resultado(70) & ", "_
			&" " &  resultado(71) & "," &  resultado(72) & "," &  resultado(73) & "," &  resultado(74) & ", "_
			&" " &  resultado(75) & "," &  resultado(76) & "," &  resultado(77) & "," &  resultado(78) & ", "_
			&" " &  resultado(79) & "," &  resultado(80) & "," &  resultado(81) & "," &  resultado(82) & ", "_
			&" " &  resultado(83) & "," &  resultado(84) & "," &  resultado(85) & "," &  resultado(86) & ", "_
			&" " &  resultado(87) & "," &  resultado(88) & "," &  resultado(89) & "," &  resultado(90) & ", "_
			&" " &  resultado(91) & "," &  resultado(92) & "," &  resultado(93) & "," &  resultado(94) & ", "_
			&" " &  resultado(95) & "," &  resultado(96) & "," &  resultado(97) & "," &  resultado(98) & ", "_
			&" " &  resultado(99) & "," &  resultado(100) & "," &  resultado(101) & "," &  resultado(102) & ", "_
			&" " &  resultado(103) & "," &  resultado(104) & "," &  resultado(105) & "," &  resultado(106) & ", "_
			&" " &  resultado(107) & "," &  resultado(108) & "," &  resultado(109) & "," &  resultado(110) & ", "_
			&" " &  resultado(111) & "," &  resultado(112) & "," &  resultado(113) & "," &  resultado(114) & ", "_
			&" " &  resultado(115) & "," &  resultado(116) & "," &  resultado(117) & "," &  resultado(118) & ", "_
			&" " &  resultado(119) & "," &  resultado(120) & "," &  resultado(121) & "," &  resultado(122) & ", "_
			&" " &  resultado(123) & "," &  resultado(124) & "," &  resultado(125) & "," &  resultado(126) & ")"
			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
		
		sqlQuery = "SELECT * FROM dat_invtipo WHERE soli_folio =" & int_folio
		
		On Error Resume Next
		rs.Open sqlQuery, conn,adOpenForwardOnly,adLockReadOnly,1
		handleError(conn)
		
		IF rs.EOF = false then
			conn.BeginTrans
			sqlQuery = "UPDATE dat_invtipo 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) & ","_
			& " 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) & ","_
			& " 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) & ", R51 =" & resultado(51) & ", R52 =" & resultado(52) & ","_
			& " R53 =" & resultado(53) & ", R54 =" & resultado(54) & ", R55 =" & resultado(55) & ", R56 =" & resultado(56) & ","_
			& " R57 =" & resultado(57) & ", R58 =" & resultado(58) & ", R59 =" & resultado(59) & " WHERE soli_folio =" & int_folio
			On Error Resume Next
			conn.Execute sqlQuery,,adCmdText Or adExecuteNoRecords			
			handleError(conn)			
			
			sqlQuery = "UPDATE dat_invtipo SET R60 =" & resultado(60) & ", R61 =" & resultado(61) & ", R62 =" & resultado(62) & ", R63 =" & resultado(63) & ","_
			& " R64 =" & resultado(64) & ", R65 =" & resultado(65) & ", R66 =" & resultado(66) & ", R67 =" & resultado(67) & ","_
			& " R68 =" & resultado(68) & ", R69 =" & resultado(69) & ", R70 =" & resultado(70) & ", R71 =" & resultado(71) & ","_
			& " R72 =" & resultado(72) & ", R73 =" & resultado(73) & ", R74 =" & resultado(74) & ", R75 =" & resultado(75) & ","_
			& " R76 =" & resultado(76) & ", R77 =" & resultado(77) & ", R78 =" & resultado(78) & ", R79 =" & resultado(79) & ","_
			& " R80 =" & resultado(80) & ", R81 =" & resultado(81) & ", R82 =" & resultado(82) & ", R83 =" & resultado(83) & ","_
			& " R84 =" & resultado(84) & ", R85 =" & resultado(85) & ", R86 =" & resultado(86) & ", R87 =" & resultado(87) & ","_
			& " R88 =" & resultado(88) & ", R89 =" & resultado(89) & ", R90 =" & resultado(90) & ", R91 =" & resultado(91) & ","_
			& " R92 =" & resultado(92) & ", R93 =" & resultado(93) & ", R94 =" & resultado(94) & ", R95 =" & resultado(95) & ","_
			& " R96 =" & resultado(96) & ", R97 =" & resultado(97) & ", R98 =" & resultado(98) & ", R99 =" & resultado(99) & ","_
			& " R100 =" & resultado(100) & ", R101 =" & resultado(101) & ", R102 =" & resultado(102) & ", R103 =" & resultado(103) & ","_
			& " R104 =" & resultado(104) & ", R105 =" & resultado(105) & ", R106 =" & resultado(106) & ", R107 =" & resultado(107) & ","_
			& " R108 =" & resultado(108) & ", R109 =" & resultado(109) & ", R110 =" & resultado(110) & ", R111 =" & resultado(111) & ","_
			& " R112 =" & resultado(112) & ", R113 =" & resultado(113) & ", R114 =" & resultado(114) & ", R115 =" & resultado(115) & ","_
			& " R116 =" & resultado(116) & ", R117 =" & resultado(117) & ", R118 =" & resultado(118) & ", R119 =" & resultado(119) & ","_
			& " R120 =" & resultado(120) & ", R121 =" & resultado(121) & ", R122 =" & resultado(122) & ", R123 =" & resultado(123) & ","_
			& " R124 =" & resultado(124) & ", R125 =" & resultado(125) & ", R126 =" & resultado(126) & " 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
%>