Imports System.Data.SqlClient Public Class SeleccionTitulosReportosDAO Dim da As SqlDataAdapter Dim Operaciones As New Operaciones Public Function ProcesoDatos(ByVal Coleccion As Collection) Dim objCon As New Conexion Dim cn As SqlConnection = objCon.Conectar Dim retorno As Integer Dim sql As String Dim cmd As SqlCommand Dim myTrans As SqlTransaction If cn Is Nothing Then cn = objCon.Conectar End If If cn.State = ConnectionState.Open Then cn.Close() cn.Dispose() cn = objCon.Conectar cn.Open() Else cn = objCon.Conectar cn.Open() End If myTrans = cn.BeginTransaction() Try Dim PosicionCreacion As Integer = 0 For Each DicRegistros As Dictionary(Of String, Object) In Coleccion PosicionCreacion += 1 Dim CodigoAsociado = Function() If DicRegistros.ContainsKey("CodigoAsociado") Then Return DicRegistros.Item("CodigoAsociado") Else Return String.Empty End If End Function Dim NombreInstrumento = Function() If DicRegistros.ContainsKey("NombreInstrumento") Then Return DicRegistros.Item("NombreInstrumento") Else Return String.Empty End If End Function Dim NombreEmpresa = Function() If DicRegistros.ContainsKey("NombreEmpresa") Then Return DicRegistros.Item("NombreEmpresa") Else Return String.Empty End If End Function Dim TipoAsignacion = Function() If DicRegistros.ContainsKey("TipoAsignacion") Then Return DicRegistros.Item("TipoAsignacion") Else Return String.Empty End If End Function Dim MontoInicial = Function() If DicRegistros.ContainsKey("MontoInicial") Then Return DicRegistros.Item("MontoInicial") Else Return 0 End If End Function Dim MontoTotalUsado = Function() If DicRegistros.ContainsKey("MontoTotalUsado") Then Return DicRegistros.Item("MontoTotalUsado") Else Return 0 End If End Function Dim PorcentajeRestante = Function() If DicRegistros.ContainsKey("PorcentajeRestante") Then Return DicRegistros.Item("PorcentajeRestante") Else Return 0 End If End Function Dim PorcentajeMontoUsado = Function() If DicRegistros.ContainsKey("PorcentajeMontoUsado") Then Return DicRegistros.Item("PorcentajeMontoUsado") Else Return 0 End If End Function Dim MontoDisponible = Function() If DicRegistros.ContainsKey("MontoDisponible") Then Return DicRegistros.Item("MontoDisponible") Else Return 0 End If End Function Dim MontoUsado = Function() If DicRegistros.ContainsKey("MontoUsado") Then Return DicRegistros.Item("MontoUsado") Else Return 0 End If End Function Dim MontoTitulo = Function() If DicRegistros.ContainsKey("MontoTitulo") Then Return DicRegistros.Item("MontoTitulo") Else Return 0 End If End Function Dim MontoNoUsado = Function() If DicRegistros.ContainsKey("MontoNoUsado") Then Return DicRegistros.Item("MontoNoUsado") Else Return 0 End If End Function Dim FechaCreado = Function() If DicRegistros.ContainsKey("FechaCreado") Then Return DicRegistros.Item("FechaCreado") Else Return Date.Now.Date End If End Function Dim EstadoProceso = Function() If DicRegistros.ContainsKey("EstadoProceso") Then Return DicRegistros.Item("EstadoProceso") Else Return String.Empty End If End Function Dim Asociado = Function() If DicRegistros.ContainsKey("Asociado") Then Return DicRegistros.Item("Asociado") Else Return "No" End If End Function Dim CodigoReporto = Function() If DicRegistros.ContainsKey("CodigoReporto") Then Return DicRegistros.Item("CodigoReporto") Else Return String.Empty End If End Function Dim IdFlujo = Function() If DicRegistros.ContainsKey("IdFlujo") Then Return DicRegistros.Item("IdFlujo") Else Return 0 End If End Function Dim ValorCodigoAsociado As String = CodigoAsociado().ToString Dim ValorNombreInstrumento As String = NombreInstrumento().ToString Dim ValorNombreEmpresa As String = NombreEmpresa().ToString Dim ValorTipoAsignacion As String = TipoAsignacion().ToString Dim ValorMontoInicial As Double = Operaciones.ConvertirDecimal(MontoInicial().ToString) Dim ValorMontoTotalUsado As Double = Operaciones.ConvertirDecimal(MontoTotalUsado().ToString) Dim ValorPorcentajeRestante As Double = Operaciones.ConvertirDecimal(PorcentajeRestante().ToString) / 100 Dim ValorPorcentajeMontoUsado As Double = Operaciones.ConvertirDecimal(PorcentajeMontoUsado().ToString) / 100 Dim ValorMontoDisponible As Double = Operaciones.ConvertirDecimal(MontoDisponible().ToString) Dim ValorMontoUsado As Double = Operaciones.ConvertirDecimal(MontoUsado().ToString) Dim ValorMontoTitulo As Double = Operaciones.ConvertirDecimal(MontoTitulo().ToString) Dim ValorMontoNoUsado As Double = Operaciones.ConvertirDecimal(MontoNoUsado().ToString) Dim ValorFechaCreado As Date = Operaciones.ConvertirFecha(FechaCreado().ToString) Dim ValorEstadoProceso As String = EstadoProceso().ToString Dim ValorAsociado As String = Asociado().ToString Dim ValorCodigoReporto As String = CodigoReporto().ToString Dim ValorIdFlujo As Integer = IdFlujo() sql = "INSERT INTO EspCreTit( [CodigoAsociado] ,[CodigoReporto] ,[Titulo] ,[Empresa] ,[Instrumento] ,[CodigoEstado] ,[Nombre] ,[Descrip] ,[IdFlujo] ,[PosicionCreacion] ,[TipoAsignacion] ,[MontoInicial] ,[MontoAplicadoPorcentajeCasa] ,[PorcentajeRestante] ,[PorcentajeGarantia] ,[MontoDisponible] ,[MontoUsado] ,[SaldoAplicadoTitulo] ,[SaldoValorTitulo] ,[FechaCreado] ,[EstadoProceso] )VALUES( @CodigoAsociado ,@CodigoReporto ,@Titulo ,@Empresa ,@Instrumento ,@CodigoEstado ,@Nombre ,@Descrip ,@IdFlujo ,@PosicionCreacion ,@TipoAsignacion ,@MontoInicial ,@MontoAplicadoPorcentajeCasa ,@PorcentajeRestante ,@PorcentajeGarantia ,@MontoDisponible ,@MontoUsado ,@SaldoAplicadoTitulo ,@SaldoValorTitulo ,@FechaCreado ,@EstadoProceso )" cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans cmd.Parameters.Add("@CodigoAsociado", SqlDbType.VarChar).Value = ValorCodigoAsociado cmd.Parameters.Add("@CodigoReporto", SqlDbType.VarChar).Value = ValorCodigoReporto cmd.Parameters.Add("@Titulo", SqlDbType.VarChar).Value = ValorNombreInstrumento cmd.Parameters.Add("@Empresa", SqlDbType.VarChar).Value = ValorNombreEmpresa cmd.Parameters.Add("@Instrumento", SqlDbType.VarChar).Value = ValorNombreInstrumento cmd.Parameters.Add("@CodigoEstado", SqlDbType.VarChar).Value = "TA" cmd.Parameters.Add("@Nombre", SqlDbType.VarChar).Value = "Titulos Asignados" cmd.Parameters.Add("@Descrip", SqlDbType.VarChar).Value = "Titulos Asignados(En Espera de ser Generados)" cmd.Parameters.Add("@IdFlujo", SqlDbType.Int).Value = ValorIdFlujo cmd.Parameters.Add("@PosicionCreacion", SqlDbType.Int).Value = PosicionCreacion cmd.Parameters.Add("@TipoAsignacion", SqlDbType.VarChar).Value = ValorTipoAsignacion cmd.Parameters.Add("@MontoInicial", SqlDbType.Float).Value = ValorMontoInicial cmd.Parameters.Add("@MontoAplicadoPorcentajeCasa", SqlDbType.Float).Value = ValorMontoTotalUsado cmd.Parameters.Add("@PorcentajeRestante", SqlDbType.Float).Value = ValorPorcentajeRestante cmd.Parameters.Add("@PorcentajeGarantia", SqlDbType.Float).Value = ValorPorcentajeMontoUsado cmd.Parameters.Add("@MontoDisponible", SqlDbType.Float).Value = ValorMontoDisponible cmd.Parameters.Add("@MontoUsado", SqlDbType.Float).Value = ValorMontoUsado cmd.Parameters.Add("@SaldoAplicadoTitulo", SqlDbType.Float).Value = ValorMontoTitulo cmd.Parameters.Add("@SaldoValorTitulo", SqlDbType.Float).Value = ValorMontoNoUsado cmd.Parameters.Add("@FechaCreado", SqlDbType.Date).Value = ValorFechaCreado cmd.Parameters.Add("@EstadoProceso", SqlDbType.VarChar).Value = ValorEstadoProceso retorno = cmd.ExecuteNonQuery Next '''''''''''''''''' myTrans.Commit() MsgBox("Datos Ingresados") Catch ex As Exception myTrans.Rollback() MsgBox(ex.Message) End Try cn.Close() Return retorno End Function End Class