Imports System.Data.SqlClient
Public Class CertificadosDeInversionDAO


    Dim oDAOGeneral As New DAOGeneral

    Private Function SiguienteCodigo(ByVal oCE As CertificadoDeInversionCE) As String
        Dim retorno As String = String.Empty

        retorno = SeriesDAO.SiguienteCodigoInversion(oCE.CodigoEmpresa, oCE.CodigoInstrumentoFinanciero)

        Return retorno
    End Function
    Public Function Nuevo(ByVal oCE As CertificadoDeInversionCE) As Integer

    End Function
    Function Nuevo(ByVal oCE As CertificadoDeInversionCE, DocId As Integer, Tipo As String) As Integer
        Dim objCon As New Conexion
        Dim retorno As Integer = -1
        Dim Transaccion As SqlTransaction
        Dim query As String
        Dim cn As SqlConnection = objCon.Conectar
        If cn.State = ConnectionState.Closed Then
            cn.Open()
        End If
        Dim Tabla As String = ""


        If Tipo = "P" Then
            Tabla = "PBON"
        End If
        If Tipo = "I" Then
            Tabla = "IBON"
        End If


        Dim cmd As SqlCommand = cn.CreateCommand

        Transaccion = cn.BeginTransaction("NuevoBono")
        cmd.Connection = cn
        cmd.Transaction = Transaccion

        query = "INSERT INTO [dbo].[PBON]
           ([DocId]
           ,[CodCasaC]
           ,[ValNomC]
           ,[UltFCupC]
           ,[SigFCupC]
           ,[FLiqC]
           ,[FVencC]
           ,[PorcCupC]
           ,[YMTVencComC]
           ,[YMTVencC]
           ,[PrecVencC]
           ,[PrecioCompra]
           ,[DiasBaseC]
           ,[DiasAcumC]
           ,[DiasVencC]
           ,[PorcIntAcumC]
           ,[IntAcumC]
           ,[PrecioSucioC]
           ,[ValTransC]
           ,[MontoPagarC]
           ,[CostoTransC]
           ,[CodCasaV]
           ,[ValNomV]
           ,[UltFCupV]
           ,[SigFCupV]
           ,[FLiqV]
           ,[FVencV]
           ,[PorcCupV]
           ,[YMTVencComV]
           ,[YMTVencV]
           ,[PrecVencV]
           ,[PrecioVenta]
           ,[DiasBaseV]
           ,[DiasAcumV]
           ,[DiasVencV]
           ,[PorcIntAcumV]
           ,[IntAcumV]
           ,[PrecioSucioV]
           ,[ValTransV]
           ,[MontoPagarV]
           ,[CostoTransV]
           ,[ValNomRO]
           ,[PlazoRO]
           ,[PrecioCompraRO]
           ,[PrecioVentaRO]
           ,[GanPerdCap]
           ,[IngrPorInt]
           ,[CostosTotales]
           ,[GanPerdTot]
           ,[RendGanPerd]
           ,[RendInt]
           ,[RendAntISR]
           ,[RendDespISR])
     VALUES
           (@DocId
           ,@CodCasaC
           ,@ValNomC
           ,@UltFCupC
           ,@SigFCupC
           ,@FLiqC
           ,@FVencC
           ,@PorcCupC
           ,@YMTVencComC
           ,@YMTVencC
           ,@PrecVencC
           ,@PrecioCompra
           ,@DiasBaseC
           ,@DiasAcumC
           ,@DiasVencC
           ,@PorcIntAcumC
           ,@IntAcumC
           ,@PrecioSucioC
           ,@ValTransC
           ,@MontoPagarC
           ,@CostoTransC
           ,@CodCasaV
           ,@ValNomV
           ,@UltFCupV
           ,@SigFCupV
           ,@FLiqV
           ,@FVencV
           ,@PorcCupV
           ,@YMTVencComV
           ,@YMTVencV
           ,@PrecVencV
           ,@PrecioVenta
           ,@DiasBaseV
           ,@DiasAcumV
           ,@DiasVencV
           ,@PorcIntAcumV
           ,@IntAcumV
           ,@PrecioSucioV
           ,@ValTransV
           ,@MontoPagarV
           ,@CostoTransV
           ,@ValNomRO
           ,@PlazoRO
           ,@PrecioCompraRO
           ,@PrecioVentaRO
           ,@GanPerdCap
           ,@IngrPorInt
           ,@CostosTotales
           ,@GanPerdTot
           ,@RendGanPerd
           ,@RendInt
           ,@RendAntISR
           ,@RendDespISR
		   )"

        cmd.CommandText = query

        With cmd.Parameters
            .Add("@DocId", SqlDbType.Int).Value = DocId
            '.Add("@CodCasaC", SqlDbType.VarChar).Value = oBono.CodigoCasaCompra
            .Add("@ValNomC", SqlDbType.Decimal).Value = oCE.ValorNominalCompra
            .Add("@UltFCupC", SqlDbType.DateTime).Value = oCE.UltimaFechaCuponCompra
            .Add("@SigFCupC", SqlDbType.DateTime).Value = oCE.SiguienteFechaCuponCompra
            .Add("@FLiqC", SqlDbType.DateTime).Value = oCE.FechaLiquidacionCompra
            .Add("@FVencC", SqlDbType.DateTime).Value = oCE.FechaVencimientoCompra
            .Add("@PorcCupC", SqlDbType.Decimal).Value = oCE.PorcentajeCuponCompra
            .Add("@YMTVencComC", SqlDbType.Decimal).Value = oCE.YTMAlVencimientoComisionCompra
            .Add("@YMTVencC", SqlDbType.Decimal).Value = oCE.YTMAlVencimientoCompra
            .Add("@PrecVencC", SqlDbType.Decimal).Value = oCE.PrecioAlVencimientoCompra
            .Add("@PrecioCompra", SqlDbType.Decimal).Value = oCE.PrecioCompra
            .Add("@DiasBaseC", SqlDbType.Int).Value = oCE.DiasBaseCompra
            .Add("@DiasAcumC", SqlDbType.Int).Value = oCE.DiasAcumuladosCompra
            .Add("@DiasVencC", SqlDbType.Int).Value = oCE.DiasAlVencimientoCompra
            .Add("@PorcIntAcumC", SqlDbType.Decimal).Value = oCE.PorcentajeInteresAcumuladoCompra
            .Add("@IntAcumC", SqlDbType.Decimal).Value = oCE.InteresAcumuladoCompra
            .Add("@PrecioSucioC", SqlDbType.Decimal).Value = oCE.PrecioSucioCompra
            .Add("@ValTransC", SqlDbType.Decimal).Value = oCE.ValorTransadoCompra
            .Add("@MontoPagarC", SqlDbType.Decimal).Value = oCE.MontoAPagarCompra
            .Add("@CostoTransC", SqlDbType.Decimal).Value = oCE.CostoDeTransferenciaCompra

            '.Add("@CodCasaV", SqlDbType.VarChar).Value = oBono.CodigoCasaVenta
            .Add("@ValNomV", SqlDbType.Decimal).Value = oCE.ValorNominalVenta
            .Add("@UltFCupV", SqlDbType.DateTime).Value = oCE.UltimaFechaCuponVenta
            .Add("@SigFCupV", SqlDbType.DateTime).Value = oCE.SiguienteFechaCuponVenta
            .Add("@FLiqV", SqlDbType.DateTime).Value = oCE.FechaLiquidacionVenta
            .Add("@FVencV", SqlDbType.DateTime).Value = oCE.FechaVencimientoVenta
            .Add("@PorcCupV", SqlDbType.Decimal).Value = oCE.PorcentajeCuponVenta
            .Add("@YMTVencComV", SqlDbType.Decimal).Value = oCE.YTMAlVencimientoComisionVenta
            .Add("@YMTVencV", SqlDbType.Decimal).Value = oCE.YTMAlVencimientoVenta
            .Add("@PrecVencV", SqlDbType.Decimal).Value = oCE.PrecioAlVencimientoVenta
            .Add("@PrecioVenta", SqlDbType.Decimal).Value = oCE.PrecioVenta
            .Add("@DiasBaseV", SqlDbType.Int).Value = oCE.DiasBaseVenta
            .Add("@DiasAcumV", SqlDbType.Int).Value = oCE.DiasAcumuladosVenta
            .Add("@DiasVencV", SqlDbType.Int).Value = oCE.DiasAlVencimientoVenta
            .Add("@PorcIntAcumV", SqlDbType.Decimal).Value = oCE.InteresAcumuladoPorcentajeVenta
            .Add("@IntAcumV", SqlDbType.Decimal).Value = oCE.InteresAcumuladoVenta
            .Add("@PrecioSucioV", SqlDbType.Decimal).Value = oCE.PrecioSucioVenta
            .Add("@ValTransV", SqlDbType.Decimal).Value = oCE.ValorTransadoVenta
            .Add("@MontoPagarV", SqlDbType.Decimal).Value = oCE.MontoARecibirVenta
            .Add("@CostoTransV", SqlDbType.Decimal).Value = oCE.CostoDeTransferenciaVenta
            .Add("@ValNomRO", SqlDbType.Decimal).Value = oCE.ValorNominalRO
            .Add("@PlazoRO", SqlDbType.Decimal).Value = oCE.DiasPlazoRO
            .Add("@PrecioCompraRO", SqlDbType.Decimal).Value = oCE.PrecioCompraRO
            .Add("@PrecioVentaRO", SqlDbType.Decimal).Value = oCE.PrecioVentaRO
            .Add("@GanPerdCap", SqlDbType.Decimal).Value = oCE.GananciaPerdidaDeCapital
            .Add("@IngrPorInt", SqlDbType.Decimal).Value = oCE.IngresoPorInteres
            .Add("@CostosTotales", SqlDbType.Decimal).Value = oCE.CostosTotales
            .Add("@GanPerdTot", SqlDbType.Decimal).Value = oCE.GananciaPerdidaTotal
            .Add("@RendGanPerd", SqlDbType.Decimal).Value = oCE.RendimientoGananciaPerdida
            .Add("@RendInt", SqlDbType.Decimal).Value = oCE.RendimientoDeIntereses
            .Add("@RendAntISR", SqlDbType.Decimal).Value = oCE.RendimientoAntesImpuestos
            .Add("@RendDespISR", SqlDbType.Decimal).Value = oCE.RendimientoDespuesImpuestos
        End With

        Try
            cmd.ExecuteNonQuery()
            Transaccion.Commit()
            retorno = 0
        Catch ex As Exception
            MsgBox("Error al Guardar Bono : " & ex.GetType.ToString)
            MsgBox("Mensaje: " & ex.Message)
            retorno = 1
            Try
                Transaccion.Rollback()
                retorno = 2
            Catch ex2 As Exception
                MsgBox("Error en Rollback: " & ex2.GetType.ToString)
                MsgBox("Mensaje Rollbak: " & ex2.Message)
                retorno = 3
            End Try
        End Try

        cmd.Dispose()
        cn.Dispose()


        Return retorno
    End Function
    Public Sub CargarRegistro(ByVal oCE As CertificadoDeInversionCE, Tipo As String, IdRegistro As Integer)
        Dim objCon As New Conexion
        Dim drd As SqlDataReader
        Dim cmd As SqlCommand
        Dim sql As String
        Dim Tabla As String
        Dim cn As SqlConnection = objCon.Conectar
        If cn.State = ConnectionState.Closed Then
            cn.Open()
        End If
        If Tipo = "P" Then
            Tabla = "PBON"
        End If
        If Tipo = "I" Then
            Tabla = "IBON"
        End If

        sql = "SELECT * FROM [dbo].[" & Tabla & "] T0 WHERE T0.[DocId]=@DocId"


        cmd = New SqlCommand
        cmd.CommandText = sql
        cmd.Parameters.Add("@DocId", SqlDbType.Int).Value = IdRegistro
        cmd.Connection = cn

        drd = cmd.ExecuteReader

        If drd.HasRows Then
            'SE ENCONTRO EL REGISTRO
            If drd.Read Then
                'oBonos.CodigoCasaCompra = drd.Item("CodCasaC")
                oCE.ValorNominalCompra = drd.Item("ValNomC")
                oCE.UltimaFechaCuponCompra = drd.Item("UltFCupC")
                oCE.SiguienteFechaCuponCompra = drd.Item("SigFCupC")
                oCE.FechaLiquidacionCompra = drd.Item("FLiqC")
                oCE.FechaVencimientoCompra = drd.Item("FVencC")
                oCE.PorcentajeCuponCompra = drd.Item("PorcCupC")
                'oBonos.YTMAlVencimientoComisionCompra = drd.Item("YTMVencComC")
                'oBonos.YTMAlVencimientoCompra = drd.Item("YTMVencC")
                oCE.PrecioAlVencimientoCompra = drd.Item("PrecVencC")
                oCE.PrecioCompra = drd.Item("PrecioCompra")
                oCE.DiasBaseCompra = drd.Item("DiasBaseC")
                'oBonos.DiasAcumuladosCompra = drd.Item("DiasAcumC")
                'oBonos.DiasAlVencimientoCompra = drd.Item("DiasVencC")
                'oBonos.PorcentajeInteresAcumuladoCompra = drd.Item("PorcIntAcumC")
                'oBonos.InteresAcumuladoCompra = drd.Item("IntAcumC")
                'oBonos.PrecioSucioCompra = drd.Item("PrecioSucioC")
                'oBonos.ValorTransadoCompra = drd.Item("ValTransC")
                'oBonos.MontoAPagarCompra = drd.Item("MontoPagarC")
                oCE.CostoDeTransferenciaCompra = drd.Item("CostoTransC")

                'oBonos.CodigoCasaVenta = drd.Item("CodCasaV")
                oCE.ValorNominalVenta = drd.Item("ValNomV")
                oCE.UltimaFechaCuponVenta = drd.Item("UltFCupV")
                oCE.SiguienteFechaCuponVenta = drd.Item("SigFCupV")
                oCE.FechaLiquidacionVenta = drd.Item("FLiqV")
                oCE.FechaVencimientoVenta = drd.Item("FVencV")
                oCE.PorcentajeCuponVenta = drd.Item("PorcCupV")
                'oBonos.YTMAlVencimientoComisionVenta = drd.Item("YTMVencComV")
                'oBonos.YTMAlVencimientoVenta = drd.Item("YTMVencV")
                oCE.PrecioAlVencimientoVenta = drd.Item("PrecVencV")
                oCE.PrecioVenta = drd.Item("PrecioVenta")
                oCE.DiasBaseVenta = drd.Item("DiasBaseV")
                'oBonos.DiasAcumuladosVenta = drd.Item("DiasAcumV")
                'oBonos.DiasAlVencimientoVenta = drd.Item("DiasVencV")
                'oBonos.PorcentajeInteresAcumuladoVenta = drd.Item("PorcIntAcumV")
                'oBonos.InteresAcumuladoVenta = drd.Item("IntAcumV")
                'oBonos.PrecioSucioVenta = drd.Item("PrecioSucioV")
                'oBonos.ValorTransadoVenta = drd.Item("ValTransV")
                'oBonos.MontoAPagarVenta = drd.Item("MontoPagarV")
                oCE.CostoDeTransferenciaVenta = drd.Item("CostoTransV")

                'oBonos.ValorNominalRO = drd.Item("ValNomRO")
                'oBonos.PlazoRO = drd.Item("PlazoRO")
                'oBonos.PrecioCompraRO = drd.Item("PrecioCompraRO")
                'oBonos.PrecioVentaRO = drd.Item("PrecioVentaRO")
                'oBonos.GananciaPerdidaDeCapital = drd.Item("GanPerdCap")
                'oBonos.IngresoPorInteres = drd.Item("IngrPorInt")
                'oBonos.CostosTotales = drd.Item("CostosTotales")
                'oBonos.GananciaPerdidaTotal = drd.Item("GanPerdTot")
                'oBonos.RendimientoGananciaPerdida = drd.Item("RendGanPerd")
                'oBonos.RendimientoDeIntereses = drd.Item("RendInt")
                'oBonos.RendimientoAntesImpuestos = drd.Item("RendAntISR")
                'oBonos.RendimientoDespuesImpuestos = drd.Item("RendDespISR")
            End If
        Else
            'NO SE ENCONTRO EL REGISTRO
        End If

        drd.Close()
        cmd.Dispose()
        cn.Dispose()
    End Sub
    Public Function CargarRegistro(ByVal CodigoInversion As String, ByVal CodigoInstrumento As String) As Collection
        Dim objCon As New Conexion
        Dim oCE As CertificadoDeInversionCE
        Dim drd As SqlDataReader
        Dim cmd As SqlCommand
        Dim sql As String
        Dim Tabla As String
        Dim coleccion As New Collection
        Dim cn As SqlConnection = objCon.Conectar
        If cn.State = ConnectionState.Closed Then
            cn.Open()
        End If
        If (CodigoInstrumento = "CINV") Then
            Tabla = "CIN0"
        ElseIf (CodigoInstrumento = "TIT") Then
            Tabla = "TIT"
        ElseIf (CodigoInstrumento = "EURB") Then
            Tabla = "EURB0"
        ElseIf (CodigoInstrumento = "BONO") Then
            Tabla = "BON0"
        Else
            coleccion.Add(False)
            Return coleccion
        End If




        sql = "SELECT * FROM " + Tabla + "  WHERE CodInv=@CodInv"


        cmd = New SqlCommand
        cmd.CommandText = sql
        cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodigoInversion
        cmd.Connection = cn

        Try

            drd = cmd.ExecuteReader



        Catch ex As Exception


            coleccion.Add(False)
            Return coleccion
        End Try

        If drd.HasRows Then
            'SE ENCONTRO EL REGISTRO

            If drd.Read Then
                coleccion.Add(drd.Item("PeriodicC").ToString)
                coleccion.Add(drd.Item("ValNomC").ToString)
                coleccion.Add(drd.Item("UltFCupC").ToString)
                coleccion.Add(drd.Item("SigFCupC").ToString)
                coleccion.Add(drd.Item("FLiqC").ToString)
                coleccion.Add(drd.Item("FVencC").ToString)
                coleccion.Add(drd.Item("PorcCupC").ToString)
                coleccion.Add(drd.Item("PrecVencC").ToString)
                coleccion.Add(drd.Item("PrecioCompra").ToString)
                coleccion.Add(drd.Item("DiasBaseC").ToString)


                coleccion.Add(drd.Item("CostTransC").ToString)




                coleccion.Add(drd.Item("PeriodicV").ToString)
                coleccion.Add(drd.Item("ValNomV").ToString)
                coleccion.Add(drd.Item("UltFCupV").ToString)
                coleccion.Add(drd.Item("SigFCupV").ToString)
                coleccion.Add(drd.Item("FLiqV").ToString)
                coleccion.Add(drd.Item("FVencV").ToString)
                coleccion.Add(drd.Item("PorcCupV").ToString)
                coleccion.Add(drd.Item("PrecVencV").ToString)
                coleccion.Add(drd.Item("PrecioVenta").ToString)
                coleccion.Add(drd.Item("DiasBaseV").ToString)
                'oCE.CostoDeTransferenciaVenta = drd.Item("CostoTransV")
                coleccion.Add(drd.Item("CupRecibidos").ToString)
                coleccion.Add(drd.Item("PorcCupC").ToString)
                coleccion.Add(drd.Item("PorcCupV").ToString)

                coleccion.Add(drd.Item("ComisionPorCompraCasa").ToString)
                coleccion.Add(drd.Item("ComisionPorCompraBolsa").ToString)
                coleccion.Add(drd.Item("ComisionPorVentaCasa").ToString)
                coleccion.Add(drd.Item("ComisionPorVentaBolsa").ToString)
                coleccion.Add(drd.Item("YTMCompra").ToString)
                coleccion.Add(drd.Item("YTMVenta").ToString)


                'Çampos Extras (Calculados)


                coleccion.Add(drd.Item("DiasVenC").ToString)
                coleccion.Add(drd.Item("DiasVenV").ToString)

                coleccion.Add(drd.Item("DiasAcuC").ToString)
                coleccion.Add(drd.Item("DiasAcuV").ToString)


                coleccion.Add(drd.Item("YTMVenC").ToString)
                coleccion.Add(drd.Item("YTMVenV").ToString)


                coleccion.Add(drd.Item("IntPorAcuC").ToString)
                coleccion.Add(drd.Item("IntPorAcuV").ToString)


                coleccion.Add(drd.Item("IntAcuC").ToString)
                coleccion.Add(drd.Item("IntAcuV").ToString)


                coleccion.Add(drd.Item("PrecSucioC").ToString)
                coleccion.Add(drd.Item("PrecSucioV").ToString)


                coleccion.Add(drd.Item("ComisionCasaC").ToString)
                coleccion.Add(drd.Item("ComisionCasaV").ToString)


                coleccion.Add(drd.Item("ComisionBolsaC").ToString)
                coleccion.Add(drd.Item("ComisionBolsaV").ToString)


                coleccion.Add(drd.Item("ValTransC").ToString)
                coleccion.Add(drd.Item("ValTransV").ToString)



                coleccion.Add(drd.Item("MontoPagar").ToString)
                coleccion.Add(drd.Item("MontoRecibir").ToString)



                coleccion.Add(drd.Item("CupRecibidos").ToString)

            Else




                coleccion.Add(False)
                Return coleccion
            End If
        Else
            'NO SE ENCONTRO EL REGISTRO


            coleccion.Add(False)
            Return coleccion
        End If

        drd.Close()
        cmd.Dispose()
        cn.Dispose()

        Return coleccion
    End Function
    Public Function ProcesoDatos(ByVal coleccion As Collection, ByVal Diccionario As Dictionary(Of Integer, Collection), ByVal CodigoInstrumento As String) As Integer
        Dim objCon As New Conexion
        Dim retorno As Integer
        Dim sql As String
        Dim cmd As SqlCommand
        Dim Tabla As String = String.Empty
        Dim TablaIngresos As String = String.Empty


        Dim cn As SqlConnection = objCon.Conectar
        If cn.State = ConnectionState.Closed Then
            cn.Open()
        End If
        Dim myTrans As SqlTransaction
        If (CodigoInstrumento = "CINV") Then
            Tabla = "CIN0"
            TablaIngresos = "CIN1"
        ElseIf (CodigoInstrumento = "TIT") Then
            Tabla = "TIT"
        ElseIf (CodigoInstrumento = "EURB") Then
            Tabla = "EURB0"
            TablaIngresos = "EURB1"
        ElseIf (CodigoInstrumento = "BONO") Then
            Tabla = "BON0"
            TablaIngresos = "BON1"
        Else
            Return 0

        End If


        myTrans = cn.BeginTransaction()
        Try



            sql = "UPDATE " + Tabla + "
   SET [PeriodicC] = @PeriodicC
      ,[ValNomC] = @ValNomC
      ,[UltFCupC] = @UltFCupC
      ,[SigFCupC] = @SigFCupC
      ,[FLiqC] = @FLiqC
      ,[FVencC] = @FVencC
      ,[PorcCupC] = @PorcCupC
      ,[PrecVencC] = @PrecVencC
      ,[PrecioCompra] = @PrecioCompra
      ,[DiasBaseC] = @DiasBaseC
     

      
	  ,[PeriodicV] = @PeriodicV
      ,[ValNomV] = @ValNomV
      ,[UltFCupV] = @UltFCupV
      ,[SigFCupV] = @SigFCupV
      ,[FLiqV] = @FLiqV
      ,[FVencV] = @FVencV
      ,[PorcCupV] = @PorcCupV
      ,[PrecVencV] = @PrecVencV
      ,[PrecioVenta] = @PrecioVenta
      ,[DiasBaseV] = @DiasBaseV

   


      ,[ComisionPorCompraCasa]=@ComisionPorCompraCasa
      ,[ComisionPorCompraBolsa]=@ComisionPorCompraBolsa
      ,[ComisionPorVentaCasa]=@ComisionPorVentaCasa
      ,[ComisionPorVentaBolsa]=@ComisionPorVentaBolsa
      ,[YTMCompra]=@YTMCompra
      ,[YTMVenta]=@YTMVenta





        ,[DiasVenC]=@DiasVenC
        ,[DiasVenV]=@DiasVenV
        ,[DiasAcuC]=@DiasAcuC
        ,[DiasAcuV]=@DiasAcuV
        ,[YTMVenC]=@YTMVenC
        ,[YTMVenV]=@YTMVenV
        ,[IntAcuC]=@IntAcuC
        ,[IntAcuV]=@IntAcuV
        ,[IntPorAcuC]=@IntPorAcuC
        ,[IntPorAcuV]=@IntPorAcuV
        ,[PrecSucioC]=@PrecSucioC
        ,[PrecSucioV]=@PrecSucioV
        ,[ComisionCasaC]=@ComisionCasaC
        ,[ComisionCasaV]=@ComisionCasaV
        ,[ComisionBolsaC]=@ComisionBolsaC
        ,[ComisionBolsaV]=@ComisionBolsaV
        ,[ValTransC]=@ValTransC
        ,[ValTransV]=@ValTransV
        ,[MontoPagar]=@MontoPagar
        ,[MontoRecibir]=@MontoRecibir
        ,[CostTransC]=@CostTransC
        ,[CupRecibidos]=@CupRecibidos
        WHERE [CodInv] = @CodInv
"

            cmd = New SqlCommand
            cmd.CommandText = sql
            cmd.Connection = cn
            cmd.Transaction = myTrans



            With cmd.Parameters
                .Add("@PeriodicC", SqlDbType.VarChar).Value = coleccion(1).ToString()
                .Add("@ValNomC", SqlDbType.Float).Value = CDec(coleccion(2).ToString().TrimEnd("%"))
                .Add("@UltFCupC", SqlDbType.Date).Value = coleccion(3)
                .Add("@SigFCupC", SqlDbType.Date).Value = coleccion(4)
                .Add("@FLiqC", SqlDbType.Date).Value = coleccion(5)
                .Add("@FVencC", SqlDbType.Date).Value = coleccion(6)
                .Add("@PorcCupC", SqlDbType.Float).Value = CDec(coleccion(7).ToString().TrimEnd("%"))
                .Add("@PrecVencC", SqlDbType.Float).Value = CDec(coleccion(8).ToString().TrimEnd("%"))
                .Add("@PrecioCompra", SqlDbType.Float).Value = CDec(coleccion(9).ToString().TrimEnd("%"))
                .Add("@DiasBaseC", SqlDbType.Int).Value = CInt(coleccion(10).ToString().TrimEnd("%"))
                .Add("@PeriodicV", SqlDbType.VarChar).Value = coleccion(12).ToString()
                .Add("@ValNomV", SqlDbType.Float).Value = CDec(coleccion(13).ToString().TrimEnd("%"))
                .Add("@UltFCupV", SqlDbType.Date).Value = coleccion(14)
                .Add("@SigFCupV", SqlDbType.Date).Value = coleccion(15)
                .Add("@FLiqV", SqlDbType.Date).Value = coleccion(16)
                .Add("@FVencV", SqlDbType.Date).Value = coleccion(17)
                .Add("@PorcCupV", SqlDbType.Float).Value = CDec(coleccion(18).ToString().TrimEnd("%"))
                .Add("@PrecVencV", SqlDbType.Float).Value = CDec(coleccion(19).ToString().TrimEnd("%"))
                .Add("@PrecioVenta", SqlDbType.Float).Value = CDec(coleccion(20).ToString().TrimEnd("%"))
                .Add("@DiasBaseV", SqlDbType.Int).Value = CInt(coleccion(21).ToString().TrimEnd("%"))
                .Add("@CodInv", SqlDbType.VarChar).Value = coleccion(23).ToString()

                .Add("@ComisionPorCompraCasa", SqlDbType.Float).Value = coleccion(26).ToString()
                .Add("@ComisionPorCompraBolsa", SqlDbType.Float).Value = coleccion(27).ToString()
                .Add("@ComisionPorVentaCasa", SqlDbType.Float).Value = coleccion(28).ToString()
                .Add("@ComisionPorVentaBolsa", SqlDbType.Float).Value = coleccion(29).ToString()

                .Add("@YTMCompra", SqlDbType.Float).Value = coleccion(30).ToString()
                .Add("@YTMVenta", SqlDbType.Float).Value = coleccion(31).ToString()




                .Add("DiasVenC", SqlDbType.Int).Value = coleccion(32)
                .Add("@DiasVenV", SqlDbType.Int).Value = coleccion(33)
                .Add("@DiasAcuC", SqlDbType.Int).Value = coleccion(34)
                .Add("@DiasAcuV", SqlDbType.Int).Value = coleccion(35)
                .Add("@YTMVenC", SqlDbType.Float).Value = coleccion(36)
                .Add("@YTMVenV", SqlDbType.Float).Value = coleccion(37)
                .Add("@IntAcuC", SqlDbType.Float).Value = coleccion(38)
                .Add("@IntAcuV", SqlDbType.Float).Value = coleccion(39)
                .Add("@IntPorAcuC", SqlDbType.Float).Value = coleccion(40)
                .Add("@IntPorAcuV", SqlDbType.Float).Value = coleccion(41)
                .Add("@PrecSucioC", SqlDbType.Float).Value = coleccion(42)
                .Add("@PrecSucioV", SqlDbType.Float).Value = coleccion(43)
                .Add("@ComisionCasaC", SqlDbType.Float).Value = coleccion(44)
                .Add("@ComisionCasaV", SqlDbType.Float).Value = coleccion(45)
                .Add("@ComisionBolsaC", SqlDbType.Float).Value = coleccion(46)
                .Add("@ComisionBolsaV", SqlDbType.Float).Value = coleccion(47)
                .Add("@ValTransC", SqlDbType.Float).Value = coleccion(48)
                .Add("@ValTransV", SqlDbType.Float).Value = coleccion(49)
                .Add("@MontoPagar", SqlDbType.Float).Value = coleccion(50)
                .Add("@MontoRecibir", SqlDbType.Float).Value = coleccion(51)
                .Add("@CostTransC", SqlDbType.Float).Value = coleccion(52)
                .Add("@CupRecibidos", SqlDbType.Float).Value = coleccion(53)

            End With
            retorno = cmd.ExecuteNonQuery



            If Not Diccionario Is Nothing And Not Diccionario.Count = 0 Then
                If Not String.IsNullOrEmpty(TablaIngresos) Then




                    sql = "DELETE FROM " + TablaIngresos + "
            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













                    For Each DatosDiccionario In Diccionario
                        Dim Coleccion2 As Collection = DatosDiccionario.Value
                        sql = "INSERT INTO " + TablaIngresos + "(
           [CodInv]
           ,[NumCupon]
           ,[FechaCupon]
           ,[Dias]
           ,[Ingreso]
           ,[PorcImpuesto]
           ,[MontoImpuesto]
           ,[Liquido]
) VALUES(
           @CodInv
           ,@NumCupon
           ,@FechaCupon
           ,@Dias
           ,@Ingreso
           ,@PorcImpuesto
           ,@MontoImpuesto
           ,@Liquido
)
    "


                        cmd = New SqlCommand
                        cmd.CommandText = sql
                        cmd.Connection = cn
                        cmd.Transaction = myTrans

                        With cmd.Parameters
                            .Add("@CodInv", SqlDbType.VarChar).Value = Codigo
                            .Add("@NumCupon", SqlDbType.VarChar).Value = Coleccion2(1)
                            .Add("@FechaCupon", SqlDbType.DateTime).Value = Coleccion2(2)
                            .Add("@Dias", SqlDbType.Int).Value = Coleccion2(3)
                            .Add("@Ingreso", SqlDbType.Float).Value = Coleccion2(4)
                            .Add("@PorcImpuesto", SqlDbType.Float).Value = Coleccion2(5)
                            .Add("@MontoImpuesto", SqlDbType.Float).Value = Coleccion2(6)
                            .Add("@Liquido", SqlDbType.Float).Value = Coleccion2(7)
                        End With

                        retorno = cmd.ExecuteNonQuery
                    Next
                End If
            End If


            myTrans.Commit()
            MsgBox("Datos Actualizados")
        Catch ex As Exception
            myTrans.Rollback()
            MsgBox(ex.Message)
        End Try
        'cn.Close()


        cn.Close()
        Return retorno
    End Function

    Public Function Nuevo(ByVal coleccion As Collection, ByVal CodigoInstrumento As String) As Integer

        Dim objCon As New Conexion
        Dim retorno As Integer
        Dim sql As String
        Dim cmd As SqlCommand
        Dim Tabla As String = String.Empty
        Dim cn As SqlConnection = objCon.Conectar
        If cn.State = ConnectionState.Closed Then
            cn.Open()
        End If
        If (CodigoInstrumento = "CINV") Then
            Tabla = "CIN0"
        ElseIf (CodigoInstrumento = "TIT") Then
            Tabla = "TIT"

        ElseIf (CodigoInstrumento = "EURB") Then
            Tabla = "EURB0"
        ElseIf (CodigoInstrumento = "BONO") Then
            Tabla = "BON0"

        End If


        If (Not String.IsNullOrEmpty(Tabla.ToString)) Then


            sql = "INSERT INTO " + Tabla + "
      ([CodInv]   
      ,[PeriodicC]
      ,[ValNomC]
      ,[UltFCupC]
      ,[SigFCupC]
      ,[FLiqC]
      ,[FVencC]
      ,[PorcCupC]
      ,[PrecVencC]
      ,[PrecioCompra]
      ,[DiasBaseC]
     
      
	  ,[PeriodicV]
      ,[ValNomV]
      ,[UltFCupV]
      ,[SigFCupV]
      ,[FLiqV]
      ,[FVencV]
      ,[PorcCupV]
      ,[PrecVencV]
      ,[PrecioVenta]
      ,[DiasBaseV]
   

      ,[ComisionPorCompraCasa]
      ,[ComisionPorCompraBolsa]
      ,[ComisionPorVentaCasa]
      ,[ComisionPorVentaBolsa]
      ,[YTMCompra]
      ,[YTMVenta]
        ,[DiasVenC]
        ,[DiasVenV]
        ,[DiasAcuC]
        ,[DiasAcuV]
        ,[YTMVenC]
        ,[YTMVenV]
        ,[IntAcuC]
        ,[IntAcuV]
        ,[IntPorAcuC]
        ,[IntPorAcuV]
        ,[PrecSucioC]
        ,[PrecSucioV]
        ,[ComisionCasaC]
        ,[ComisionCasaV]
        ,[ComisionBolsaC]
        ,[ComisionBolsaV]
        ,[ValTransC]
        ,[ValTransV]
        ,[MontoPagar]
        ,[MontoRecibir]
        ,[CostTransC]
        ,[CupRecibidos]

)
      VALUES(
       @CodInv
      ,@PeriodicC
      ,@ValNomC
      ,@UltFCupC
      ,@SigFCupC
      ,@FLiqC
      ,@FVencC
      ,@PorcCupC
      ,@PrecVencC
      ,@PrecioCompra
      ,@DiasBaseC
      
	  ,@PeriodicV
      ,@ValNomV
      ,@UltFCupV
      ,@SigFCupV
      ,@FLiqV
      ,@FVencV
      ,@PorcCupV
      ,@PrecVencV
      ,@PrecioVenta
      ,@DiasBaseV


      ,@ComisionPorCompraCasa
      ,@ComisionPorCompraBolsa
      ,@ComisionPorVentaCasa
      ,@ComisionPorVentaBolsa
      ,@YTMCompra
      ,@YTMVenta     



        ,@DiasVenC
        ,@DiasVenV
        ,@DiasAcuC
        ,@DiasAcuV
        ,@YTMVenC
        ,@YTMVenV
        ,@IntAcuC
        ,@IntAcuV
        ,@IntPorAcuC
        ,@IntPorAcuV
        ,@PrecSucioC
        ,@PrecSucioV
        ,@ComisionCasaC
        ,@ComisionCasaV
        ,@ComisionBolsaC
        ,@ComisionBolsaV
        ,@ValTransC
        ,@ValTransV
        ,@MontoPagar
        ,@MontoRecibir
        ,@CostTransC
        ,@CupRecibidos

)


 
"







            cmd = New SqlCommand
            cmd.CommandText = sql
            'Try

            With cmd.Parameters
                If (coleccion(1) Is Nothing) Then
                    .Add("@PeriodicC", SqlDbType.VarChar).Value = "M"
                Else
                    .Add("@PeriodicC", SqlDbType.VarChar).Value = coleccion(1).ToString()
                End If

                .Add("@ValNomC", SqlDbType.Float).Value = CDec(coleccion(2).ToString.Trim("%"))
                .Add("@UltFCupC", SqlDbType.Date).Value = coleccion(3)
                .Add("@SigFCupC", SqlDbType.Date).Value = coleccion(4)
                .Add("@FLiqC", SqlDbType.Date).Value = coleccion(5)
                .Add("@FVencC", SqlDbType.Date).Value = coleccion(6)
                .Add("@PorcCupC", SqlDbType.Float).Value = CDec(coleccion(7).ToString.Trim("%"))
                .Add("@PrecVencC", SqlDbType.Float).Value = CDec(coleccion(8).ToString.Trim("%"))
                .Add("@PrecioCompra", SqlDbType.Float).Value = CDec(coleccion(9).ToString.Trim("%"))

                If (coleccion(10) Is Nothing) Then
                    .Add("@DiasBaseC", SqlDbType.Int).Value = 365
                Else
                    .Add("@DiasBaseC", SqlDbType.Int).Value = CInt(coleccion(10).ToString.Trim("%"))
                End If


                '.Add("@CostoTransC", SqlDbType.Float).Value = Trim(CDec(coleccion(11)))


                If (coleccion(12) Is Nothing) Then
                    .Add("@PeriodicV", SqlDbType.VarChar).Value = "M"
                Else
                    .Add("@PeriodicV", SqlDbType.VarChar).Value = coleccion(12).ToString()
                End If



                .Add("@ValNomV", SqlDbType.Float).Value = CDec(coleccion(13).ToString.Trim("%"))
                .Add("@UltFCupV", SqlDbType.Date).Value = coleccion(14)
                .Add("@SigFCupV", SqlDbType.Date).Value = coleccion(15)
                .Add("@FLiqV", SqlDbType.Date).Value = coleccion(16)
                .Add("@FVencV", SqlDbType.Date).Value = coleccion(17)
                .Add("@PorcCupV", SqlDbType.Float).Value = CDec(coleccion(18).ToString.Trim("%"))
                .Add("@PrecVencV", SqlDbType.Float).Value = CDec(coleccion(19).ToString.Trim("%"))
                .Add("@PrecioVenta", SqlDbType.Float).Value = CDec(coleccion(20).ToString.Trim("%"))
                If (coleccion(21) Is Nothing) Then
                    .Add("@DiasBaseV", SqlDbType.Int).Value = 365
                Else
                    .Add("@DiasBaseV", SqlDbType.Int).Value = CInt(coleccion(21).ToString.Trim("%"))
                End If

                '.Add("@CostoTransV", SqlDbType.Float).Value = CDec(coleccion(22).ToString.Trim("%"))
                .Add("@CodInv", SqlDbType.VarChar).Value = coleccion(23).ToString()

                .Add("@ComisionPorCompraCasa", SqlDbType.Float).Value = coleccion(26).ToString()
                .Add("@ComisionPorCompraBolsa", SqlDbType.Float).Value = coleccion(27).ToString()
                .Add("@ComisionPorVentaCasa", SqlDbType.Float).Value = coleccion(28).ToString()
                .Add("@ComisionPorVentaBolsa", SqlDbType.Float).Value = coleccion(29).ToString()

                .Add("@YTMCompra", SqlDbType.Float).Value = coleccion(30).ToString()
                .Add("@YTMVenta", SqlDbType.Float).Value = coleccion(31).ToString()




                .Add("@DiasVenC", SqlDbType.Int).Value = coleccion(32)
                .Add("@DiasVenV", SqlDbType.Int).Value = coleccion(33)
                .Add("@DiasAcuC", SqlDbType.Int).Value = coleccion(34)
                .Add("@DiasAcuV", SqlDbType.Int).Value = coleccion(35)
                .Add("@YTMVenC", SqlDbType.Float).Value = coleccion(36)
                .Add("@YTMVenV", SqlDbType.Float).Value = coleccion(37)
                .Add("@IntAcuC", SqlDbType.Float).Value = coleccion(38)
                .Add("@IntAcuV", SqlDbType.Float).Value = coleccion(39)
                .Add("@IntPorAcuC", SqlDbType.Float).Value = coleccion(40)
                .Add("@IntPorAcuV", SqlDbType.Float).Value = coleccion(41)
                .Add("@PrecSucioC", SqlDbType.Float).Value = coleccion(42)
                .Add("@PrecSucioV", SqlDbType.Float).Value = coleccion(43)
                .Add("@ComisionCasaC", SqlDbType.Float).Value = coleccion(44)
                .Add("@ComisionCasaV", SqlDbType.Float).Value = coleccion(45)
                .Add("@ComisionBolsaC", SqlDbType.Float).Value = coleccion(46)
                .Add("@ComisionBolsaV", SqlDbType.Float).Value = coleccion(47)
                .Add("@ValTransC", SqlDbType.Float).Value = coleccion(48)
                .Add("@ValTransV", SqlDbType.Float).Value = coleccion(49)
                .Add("@MontoPagar", SqlDbType.Float).Value = coleccion(50)
                .Add("@MontoRecibir", SqlDbType.Float).Value = coleccion(51)
                .Add("@CostTransC", SqlDbType.Float).Value = coleccion(52)
                .Add("@CupRecibidos", SqlDbType.Float).Value = coleccion(53)
            End With

            cmd.Connection = cn

            retorno = cmd.ExecuteNonQuery
            MsgBox("Registro creado éxitosmente")
            'Catch ex As Exception
            '    MsgBox("No se pudo ingresar los datos")
            'End Try
        Else
            MsgBox("No se pudo ingresar los datos")
            retorno = 0
        End If

        cn.Close()
        Return retorno
    End Function

    Public Sub Eliminar(ByVal Eliminar As String, ByVal CodigoInstrumento As String)
        Dim objCon As New Conexion
        Dim res As Integer
        Dim Tabla As String = String.Empty
        Dim TablaIngresos As String = String.Empty
        Dim TablaTIT1 As String = String.Empty
        Dim TablaTIT2 As String = String.Empty
        If (CodigoInstrumento = "CINV") Then
            Tabla = "CIN0"
            TablaIngresos = "CIN1"
        ElseIf (CodigoInstrumento = "TIT") Then
            Tabla = "TIT"
            TablaIngresos = "TIT0_0"
            TablaTIT1 = "TIT0"
            TablaTIT2 = "TIT2"
        ElseIf (CodigoInstrumento = "BONO") Then
            Tabla = "BON0"
            TablaIngresos = "BON1"
        ElseIf (CodigoInstrumento = "EURB") Then
            Tabla = "EURB0"
            TablaIngresos = "EURB1"

        End If


        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 " + Tabla + "
      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



            sql = "DELETE FROM " + TablaIngresos + "
      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 (CodigoInstrumento = "TIT") Then
                sql = "DELETE FROM " + TablaTIT1 + "
      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


                sql = "DELETE FROM " + TablaTIT2 + "
      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
            End If




            myTrans.Commit()
            MsgBox("Datos Eliminados")
        Catch ex As Exception
            myTrans.Rollback()
            MsgBox(ex.Message)
        End Try
        cn.Close()


    End Sub



    Public Function GuardarIngreso(ByVal CodInversion As String, ByVal fecha As Date, ByVal Porcentaje As Double)


        Dim objCon As New Conexion
        Dim cn As SqlConnection = objCon.Conectar
        If cn.State = ConnectionState.Closed Then
            cn.Open()
        End If
        Dim numero = CInt(Numeracion())
        Dim sql = "INSERT INTO CIN1([CodInv],[NumCupon],[FechaCupon],[PorcImpuesto]) values(@cod,@num,@fecha,@PorcImpuesto)"


        Dim comando = New SqlCommand()
        comando.CommandText = sql

        With comando.Parameters
            .Add("@cod", SqlDbType.VarChar).Value = CodInversion
            .Add("@num", SqlDbType.Int).Value = numero
            .Add("@fecha", SqlDbType.DateTime).Value = fecha
            .Add("@PorcImpuesto", SqlDbType.Float).Value = Porcentaje
        End With
        comando.Connection = cn
        Dim i As Integer = comando.ExecuteNonQuery()
        cn.Close()
        If (i > 0) Then
            Return True
        Else
            Return False
        End If
    End Function

    Public Function CargarData()

        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 CIN1"

        Dim cmd As New SqlCommand(sql, cn)
        Dim dr As SqlDataReader
        dr = cmd.ExecuteReader

        Return dr
    End Function

    Public Function Numeracion()

        Dim objCon As New Conexion
        Dim sql = "select MAX(NumCupon) from CIN1"
        Dim cn As SqlConnection = objCon.Conectar
        If cn.State = ConnectionState.Closed Then
            cn.Open()
        End If
        Dim cmd As New SqlCommand(sql, cn)
        Dim numero = cmd.ExecuteScalar
        If (String.IsNullOrEmpty(numero.ToString)) Then
            numero = 0
        Else
            numero = numero + 1
        End If
        cn.Close()
        Return numero
    End Function













    Private Sub GuardarIngresos(ByVal CodInversion As String, ByVal dt As DataTable)
        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 [dbo].[CIN1]
      WHERE [CodInv]=@CodInv"



        cmd = New SqlCommand
        cmd.CommandText = sql
        cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodInversion
        cmd.Connection = cn

        res = cmd.ExecuteNonQuery

        sql = String.Empty
        If dt.Rows.Count > 0 Then
            For Each dr In dt.Rows
                cmd = New SqlCommand
                sql = "INSERT INTO [dbo].[CIN1]
    ([CodInv]
    ,[NumCupon]
    ,[FechaCupon]
    ,[Dias]
    ,[Ingreso]
    ,[PorcImpuesto]
    ,[MontoImpuesto]
    ,[Liquido]
)
VALUES
    (@CodInv
    ,@NumCupon
    ,@FechaCupon
    ,@Dias
    ,@Ingreso
    ,@PorcImpuesto
    ,@MontoImpuesto
    ,@Liquido
)
"
                cmd.CommandText = sql
                cmd.Parameters.AddWithValue("@CodInv", CodInversion)
                cmd.Parameters.AddWithValue("@NumCupon", dr("NumCupon"))
                cmd.Parameters.AddWithValue("@FechaCupon", dr("FechaCupon"))
                cmd.Parameters.AddWithValue("@Dias", dr("Dias"))
                cmd.Parameters.AddWithValue("@Ingreso", dr("Ingreso"))
                cmd.Parameters.AddWithValue("@PorcImpuesto", dr("PorcImpuesto"))
                cmd.Parameters.AddWithValue("@MontoImpuesto", dr("MontoImpuesto"))
                cmd.Parameters.AddWithValue("@Liquido", dr("MontoImpuesto"))
                cmd.Connection = cn
                res = cmd.ExecuteNonQuery

            Next
        End If
        cn.Close()
    End Sub
    Private Sub GuardarImpuestosYComisiones(ByVal CodInversion As String, ByVal dt As DataTable)
        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 [dbo].[CIN2]
      WHERE [CodInv]=@CodInv"


        cmd = New SqlCommand
        cmd.CommandText = sql
        cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodInversion
        cmd.Connection = cn

        res = cmd.ExecuteNonQuery

        sql = String.Empty
        If dt.Rows.Count > 0 Then
            For Each dr In dt.Rows
                cmd = New SqlCommand
                sql = "INSERT INTO [dbo].[CIN2]
           ([CodInv]
           ,[TipoOper]
           ,[CodImp]
           ,[PorcImp]
           ,[MontoImp]
           ,[MontoSujeto])
     VALUES
           (@CodInv
           ,@TipoOper
           ,@CodImp
           ,@PorcImp
           ,@MontoImp
           ,@MontoSujeto)"
                cmd.CommandText = sql
                cmd.Parameters.AddWithValue("@CodInv", CodInversion)
                cmd.Parameters.AddWithValue("@TipoOper", dr("TipoOper"))
                cmd.Parameters.AddWithValue("@CodImp", dr("CodImp"))
                cmd.Parameters.AddWithValue("@PorcImp", dr("PorcImp"))
                cmd.Parameters.AddWithValue("@MontoImp", dr("MontoImp"))
                cmd.Parameters.AddWithValue("@MontoSujeto", dr("MontoSujeto"))
                cmd.Connection = cn
                res = cmd.ExecuteNonQuery
            Next
        End If
        cn.Close()
    End Sub
End Class


