Imports System.Data.SqlClient Public Class FondoInversionDAO Dim Operaciones As New Operaciones Public Function ProcesoDatos(ByVal Coleccion As Collection, ByVal Codigo As String, ByVal Diccionario As Dictionary(Of String, Collection), ByVal Estado As String) Dim objCon As New Conexion Dim retorno As Integer Dim sql As String Dim cmd As SqlCommand Dim myTrans As SqlTransaction Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If myTrans = cn.BeginTransaction() Try If Estado = "Nuevo" Then sql = "INSERT INTO [dbo].[FINV] ([CodInv] ,[ValNominal] ,[CuoPart] ,[ValPart] ,[PorcComisionCasa] ,[PorcComisionBolsa] ,[ComisionCasa] ,[ComisionBolsa] ,[ValTrans] ,[FechaOpe] ,[FechaLiq] ,[FechaVen] ,[DiasLiq] ,[RendOfre] ,[Periodicidad] ,[Base] ,[Plazo] ,[Dividendo] ,[TipCalBase] ) VALUES (@CodInv ,@ValNominal ,@CuoPart ,@ValPart ,@PorcComisionCasa ,@PorcComisionBolsa ,@ComisionCasa ,@ComisionBolsa ,@ValTrans ,@FechaOpe ,@FechaLiq ,@FechaVen ,@DiasLiq ,@RendOfre ,@Periodicidad ,@Base ,@Plazo ,@Dividendo ,@TipCalBase )" Else sql = "UPDATE [dbo].[FINV] SET [ValNominal]=@ValNominal ,[CuoPart]=@CuoPart ,[ValPart]=@ValPart ,[PorcComisionCasa]=@PorcComisionCasa ,[PorcComisionBolsa]=@PorcComisionBolsa ,[ComisionCasa]=@ComisionCasa ,[ComisionBolsa]=@ComisionBolsa ,[ValTrans]=@ValTrans ,[FechaOpe]=@FechaOpe ,[FechaLiq]=@FechaLiq ,[FechaVen]=@FechaVen ,[DiasLiq]=@DiasLiq ,[RendOfre]=@RendOfre ,[Periodicidad]= @Periodicidad ,[Base]=@Base ,[Plazo]=@Plazo ,[Dividendo]=@Dividendo ,[TipCalBase]=@TipCalBase where [CodInv]=@CodInv " End If cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans With cmd.Parameters .Add("@CodInv", SqlDbType.VarChar).Value = Codigo .Add("@ValNominal", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(1).ToString) .Add("@CuoPart", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(2).ToString) .Add("@ValPart", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(3).ToString) .Add("@PorcComisionCasa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(4).ToString) .Add("@PorcComisionBolsa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(5).ToString) .Add("@ComisionCasa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(6).ToString) .Add("@ComisionBolsa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(7).ToString) .Add("@ValTrans", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(8).ToString) .Add("@FechaOpe", SqlDbType.Date).Value = Operaciones.ConvertirFechaBaseDatos(Coleccion(9).ToString) .Add("@FechaLiq", SqlDbType.Date).Value = Operaciones.ConvertirFechaBaseDatos(Coleccion(10).ToString) .Add("@FechaVen", SqlDbType.Date).Value = Operaciones.ConvertirFechaBaseDatos(Coleccion(11).ToString) .Add("@DiasLiq", SqlDbType.Int).Value = Operaciones.ConvertirEntero(Coleccion(12).ToString) .Add("@RendOfre", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(13).ToString) .Add("@Periodicidad", SqlDbType.VarChar).Value = Coleccion(14).ToString .Add("@Base", SqlDbType.Int).Value = Operaciones.ConvertirEntero(Coleccion(15).ToString) .Add("@Plazo", SqlDbType.Int).Value = Operaciones.ConvertirEntero(Coleccion(16).ToString) .Add("@Dividendo", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(17).ToString) .Add("TipCalBase", SqlDbType.VarChar).Value = Coleccion(18).ToString End With retorno = cmd.ExecuteNonQuery sql = "DELETE FROM [dbo].[FINV1] WHERE [CodInv]=@CodInv " cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo retorno = cmd.ExecuteNonQuery If Not Diccionario Is Nothing Then For Each DatosDiccionario In Diccionario Dim Coleccion2 As Collection = DatosDiccionario.Value sql = "INSERT INTO [dbo].[FINV1] ([CodInv] ,[NumDiv] ,[Fecha] ,[Dias] ,[Dividendo] ,[Ingreso] ,[Rend] ) VALUES (@CodInv ,@NumDiv ,@Fecha ,@Dias ,@Dividendo ,@Ingreso ,@Rend )" cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans With cmd.Parameters .Add("@CodInv", SqlDbType.VarChar).Value = Codigo .Add("@NumDiv", SqlDbType.Int).Value = Operaciones.ConvertirEntero(Coleccion2(1).ToString) .Add("@Fecha", SqlDbType.Date).Value = Operaciones.ConvertirFechaBaseDatos(Coleccion2(2).ToString) .Add("@Dias", SqlDbType.Int).Value = Operaciones.ConvertirEntero(Coleccion2(3).ToString) .Add("@Dividendo", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion2(4).ToString) .Add("@Ingreso", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion2(5).ToString) .Add("@Rend", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion2(6).ToString) End With retorno = cmd.ExecuteNonQuery Next End If '''''''''''''''' myTrans.Commit() MsgBox("Datos Ingresados") Catch ex As Exception myTrans.Rollback() MsgBox(ex.Message) End Try cn.Close() Return retorno End Function Public Function Cargar(ByVal CodInv As String) Dim objCon As New Conexion Dim sql As String Dim cmd As SqlCommand Dim Coleccion As New Collection Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If sql = "SELECT * FROM [dbo].[FINV] WHERE CodInv=@CodInv" cmd = New SqlCommand cmd.CommandText = sql cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodInv cmd.Connection = cn ' Dim Datos = cmd.ExecuteScalar Dim Datos = cmd.ExecuteReader If Datos.HasRows Then 'SE ENCONTRO EL REGISTRO If Datos.Read Then Coleccion.Add(Operaciones.ConvertirDecimal(Datos("ValNominal").ToString)) Coleccion.Add(Operaciones.ConvertirDecimal(Datos("CuoPart").ToString)) Coleccion.Add(Operaciones.ConvertirDecimal(Datos("ValPart").ToString)) Coleccion.Add(Operaciones.ConvertirDecimal(Datos("PorcComisionCasa").ToString)) Coleccion.Add(Operaciones.ConvertirDecimal(Datos("PorcComisionBolsa").ToString)) Coleccion.Add(Operaciones.ConvertirDecimal(Datos("ComisionCasa").ToString)) Coleccion.Add(Operaciones.ConvertirDecimal(Datos("ComisionBolsa").ToString)) Coleccion.Add(Operaciones.ConvertirDecimal(Datos("ValTrans").ToString)) Coleccion.Add(Operaciones.ConvertirFecha(Datos("FechaOpe").ToString)) Coleccion.Add(Operaciones.ConvertirFecha(Datos("FechaLiq").ToString)) Coleccion.Add(Operaciones.ConvertirFecha(Datos("FechaVen").ToString)) Coleccion.Add(Operaciones.ConvertirEntero(Datos("DiasLiq").ToString)) Coleccion.Add(Operaciones.ConvertirDecimal(Datos("RendOfre").ToString)) Coleccion.Add(Datos("Periodicidad").ToString) Coleccion.Add(Operaciones.ConvertirEntero(Datos("Base").ToString)) Coleccion.Add(Operaciones.ConvertirEntero(Datos("Plazo").ToString)) Coleccion.Add(Operaciones.ConvertirDecimal(Datos("Dividendo").ToString)) Coleccion.Add(Datos("TipCalBase").ToString) Return Coleccion End If End If cn.Close() Return Coleccion End Function Public Function CargarFilas(ByVal codigo As String) Dim objCon As New Conexion Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If Dim sql = "select * from FINV1 where CodInv='" + codigo + "'" Dim cmd As New SqlCommand(sql, cn) Dim dr As SqlDataReader Dim Tabla As New DataTable dr = cmd.ExecuteReader Tabla.Load(dr) cn.Close() Return Tabla End Function Public Sub Eliminar(ByVal CodInv As String) Dim objCon As New Conexion Dim retorno As Integer Dim sql As String Dim cmd As SqlCommand Dim myTrans As SqlTransaction Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If myTrans = cn.BeginTransaction() Try sql = "DELETE FROM [dbo].[FINV] WHERE [CodInv]=@CodInv" cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodInv retorno = cmd.ExecuteNonQuery sql = "DELETE FROM [dbo].[FINV1] WHERE [CodInv]=@CodInv" cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodInv retorno = cmd.ExecuteNonQuery myTrans.Commit() MsgBox("Datos Eliminados") Catch ex As Exception myTrans.Rollback() MsgBox(ex.Message) End Try cn.Close() End Sub Public Sub EliminarIngreso(ByVal Codigo As String, ByVal NumDiv As Integer) Dim objCon As New Conexion Dim sql As String Dim cmd As SqlCommand Dim res As Integer Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If sql = "DELETE FROM FINV1 WHERE [CodInv]=@CodInv AND [NumDiv]=@NumDiv" cmd = New SqlCommand cmd.CommandText = sql cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo cmd.Parameters.Add("@NumDiv", SqlDbType.Int).Value = NumDiv cmd.Connection = cn res = cmd.ExecuteNonQuery cn.Close() End Sub End Class