Public Class frmTitularizacion
    Dim oCEBonos As BonosCE
    Dim oDAOBonos As BonosDAO
    Dim oDAOGeneral As New DAOGeneral
    Dim TotalValorCupones As Double

    Private _Modo As String
    Private _IdDocumento As Integer
    Private _TipoDocumento As String

    'PROPIEDADES EMISION DEL TITULO
    Private _EmisionTotal As Double
    Private _FechaEmision As Date
    Private _TasaEmision As Double
    Private _PeriodicidadEmision As Integer
    Private _NumeroPeriodosEmision As Integer = 0
    Private _MontoCompraEmision As Double
    Private _MontoCompraPrimario As Double
    Private _CesionFlujo1 As Double







    Public Property Modo As String
        Get
            Return _Modo
        End Get
        Set(value As String)
            _Modo = value
        End Set
    End Property
    Private Property IdDocumento As Integer
        Get
            Return _IdDocumento
        End Get
        Set(value As Integer)
            _IdDocumento = value
        End Set
    End Property
    Private Property TipoDocumento As String
        Get
            Return _TipoDocumento
        End Get
        Set(value As String)
            _TipoDocumento = value
        End Set
    End Property

    'PROPIEDADES EMISION DEL TITULO
    Private Property EmisionTotal As Double
        Get
            Return _EmisionTotal
        End Get
        Set(value As Double)
            _EmisionTotal = value
        End Set
    End Property

    Private Property FechaEmision As Date
        Get
            Return _FechaEmision
        End Get
        Set(value As Date)
            _FechaEmision = value
        End Set
    End Property
    Private Property TasaEmision As Double
        Get
            Return _TasaEmision
        End Get
        Set(value As Double)
            _TasaEmision = value / 100
        End Set
    End Property
    Private Property PeriodicidadEmision As Integer
        Get
            Return _PeriodicidadEmision
        End Get
        Set(value As Integer)
            _PeriodicidadEmision = value
        End Set
    End Property
    Private Property NumeroPeriodosEmision As Integer
        Get
            Return _NumeroPeriodosEmision
        End Get
        Set(value As Integer)
            _NumeroPeriodosEmision = value
        End Set
    End Property
    Private Property MontoCompraEmision As Double
        Get
            Return _MontoCompraEmision
        End Get
        Set(value As Double)
            _MontoCompraEmision = value
        End Set
    End Property
    Private Property MontoCompraPrimario As Double
        Get
            Return _MontoCompraPrimario
        End Get
        Set(value As Double)
            _MontoCompraPrimario = value
        End Set
    End Property
    Private Property CesionFlujo1 As Double
        Get
            Return _CesionFlujo1
        End Get
        Set(value As Double)
            _CesionFlujo1 = value
        End Set
    End Property







    Private Sub frmBonos_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Call CargarCasas()
        Call CargarPeriodos()

        'VARIOS
        FechaEmision = dtpFechaEmision.Value.Date
    End Sub


    'GETS COMPRA
    Function GetValorNominalCompra() As Double
        Dim valor As Double

        If Me.txtValorNominalCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtValorNominalCompra.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function

    Function GetUltimaFechaCuponCompra() As Date
        Dim valor As Date

        valor = Me.dtpUltimaFechaCuponCompra.Value.Date

        Return valor
    End Function

    Function GetSiguienteFechaCuponCompra() As Date
        Dim valor As Date

        valor = Me.dtpSiguienteFechaCuponCompra.Value.Date

        Return valor
    End Function

    Function GetFechaLiquidacionCompra() As Date
        Dim valor As Date

        valor = Me.dtpFechaLiquidacionCompra.Value.Date

        Return valor
    End Function

    Function GetFechaVencimientoCompra() As Date
        Dim valor As Date

        valor = Me.dtpFechaVencimientoCompra.Value.Date

        Return valor
    End Function

    Function GetPorcentajeCuponCompra() As Double
        Dim valor As Double

        If Me.txtPorcentajeCuponCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPorcentajeCuponCompra.Text
                valor = valor / 100
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function

    Function GetYTMAlVencimientoCompra() As Double
        Dim valor As Double

        If Me.txtYTMAlVencimientoCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtYTMAlVencimientoCompra.Text
                valor = valor / 100
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function

    Function GetComisionCasaCompra() As Double
        Dim valor As Double

        If Me.txtComisionCasaCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtComisionCasaCompra.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetDiasAlVencimientoCompra() As Double
        Dim valor As Double

        If Me.txtDiasAlVencimientoCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtDiasAlVencimientoCompra.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function

    Function GetComisionBolsaCompra() As Double
        Dim valor As Double

        If Me.txtComisionBolsaCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtComisionBolsaCompra.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetDiasAcumuladosCompra() As Integer
        Dim valor As Integer

        If Me.txtDiasAcumuladosCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtDiasAcumuladosCompra.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetInteresAcumuladoCompra() As Double
        Dim valor As Double

        If Me.txtInteresAcumuladoCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtInteresAcumuladoCompra.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPrecioCompra() As Double
        Dim valor As Double

        If Me.txtPrecioCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPrecioCompra.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPorcentajeInteresAcumuladoCompra() As Double
        Dim valor As Double

        If Me.txtPorcentajeInteresAcumuladoCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPorcentajeInteresAcumuladoCompra.Text
                valor = valor / 100
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPorcentajeComisionCasaCompra() As Double
        Dim valor As Double

        If Me.txtPorcentajeComisionCasaCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPorcentajeComisionCasaCompra.Text
                valor = valor / 100
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetValorTransadoCompra() As Double
        Dim valor As Double

        If Me.txtValorTransadoCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtValorTransadoCompra.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPorcentajeComisionBolsaCompra() As Double
        Dim valor As Double

        If Me.txtPorcentajeComisionBolsaCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPorcentajeComisionBolsaCompra.Text
                valor = valor / 100
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetCostoTransferenciaCompra() As Double
        Dim valor As Double

        If Me.txtCostoTransferenciaCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtCostoTransferenciaCompra.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetCasaCompra() As String
        Dim valor As String

        If Me.cboCasa_C.SelectedIndex = -1 Then
            valor = ""
        Else
            valor = Me.cboCasa_C.SelectedValue
        End If

        Return valor
    End Function
    Function GetYTMAlVencimientoComisionCompra() As Double
        Dim valor As Double

        If Me.txtYTMAlVencimientoComisionCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtYTMAlVencimientoComisionCompra.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPrecioAlVencimientoCompra() As Double
        Dim valor As Double

        If Me.txtPrecioAlVencimientoCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPrecioAlVencimientoCompra.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetDiasBaseCompra() As Integer
        Dim valor As Integer

        If Me.cboAnioBaseC.SelectedIndex = -1 Then
            valor = 0
        Else
            Try
                valor = Me.cboAnioBaseC.SelectedItem
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPrecioSucioCompra() As Double
        Dim valor As Double

        If Me.txtPrecioSucioCompra.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPrecioSucioCompra.Text
                valor = valor / 100
            Catch ex As Exception
                valor = 0
            End Try

        End If

        Return valor
    End Function
    Function GetMontoAPagarCompra() As Double
        Dim valor As Double

        If Me.txtMontoAPagar.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtMontoAPagar.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPeriodicidadCompra() As String
        Dim valor As String

        If Me.cboPeriodosC.SelectedIndex = -1 Then
            valor = "NA"
        Else
            valor = Me.cboPeriodosC.SelectedValue.ToString
        End If

        Return valor
    End Function



    'CALCULOS COMPRA
    Function CalcularSiguienteFechaCuponCompra() As Date
        Dim valor As Date
        Dim vUltimaFechCupon As Date = GetUltimaFechaCuponCompra()
        Dim vPeriodicidad As String = GetPeriodicidadCompra()
        Dim vDiasPeriodo As Integer = Utilidades.DiasDeUnPeriodo(vPeriodicidad)

        valor = vUltimaFechCupon.AddDays(vDiasPeriodo + 1)

        Return valor
    End Function
    Function CalcularYTMAlVencimientoCompra() As Double
        Dim valor As Double



        Return valor
    End Function

    Function CalcularYTMAlVencimientoComisionCompra() As Double
        Dim valor As Double
        Dim vYTMAlVencimiento As Double = GetYTMAlVencimientoCompra()
        Dim vComisionCasa As Double = GetPorcentajeComisionCasaCompra()
        Dim vAnioBase As Integer = GetDiasBaseCompra()
        Dim vDiasAlVencimiento As Integer = GetDiasAlVencimientoCompra()
        Dim vComisionBolsa As Double = GetPorcentajeComisionBolsaCompra()

        Try
            valor = vYTMAlVencimiento - (vComisionBolsa * vAnioBase / vDiasAlVencimiento) - (vComisionBolsa * vAnioBase / vDiasAlVencimiento)
            valor = valor * 100
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function

    Function CalcularDiasAcumuladosCompra() As Integer
        Dim valor As Integer
        Dim vUltimaFechaCupon As DateTime = GetUltimaFechaCuponCompra()
        Dim vFechaLiquidacion As DateTime = GetFechaLiquidacionCompra()

        valor = Utilidades.Days360(vUltimaFechaCupon, vFechaLiquidacion)

        Return valor
    End Function
    Function CalcularDiasAlVencimientoCompra() As Integer
        Dim valor As Integer
        Dim vFechaVencimiento As DateTime = GetFechaVencimientoCompra()
        Dim vFechaLiquidacion As DateTime = GetFechaLiquidacionCompra()

        If GetDiasBaseCompra() = 360 Then
            valor = Utilidades.Days360(vFechaLiquidacion, vFechaVencimiento)
        Else
            valor = DateDiff(DateInterval.Day, vFechaLiquidacion, vFechaVencimiento)
        End If

        Return valor
    End Function

    Function CalcularInteresAcumuladoCompra() As Double
        Dim valor As Double
        Dim vValorNominal As Double = GetValorNominalCompra()
        Dim vPorcentajeCupon As Double = GetPorcentajeCuponCompra()
        Dim vDiasAcumulados As Integer = GetDiasAcumuladosCompra()
        Dim vAnioBase As Integer = GetDiasBaseCompra()

        Try
            valor = vValorNominal * vPorcentajeCupon * vDiasAcumulados / vAnioBase

        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function

    Function CalcularPorcentajeInteresAcumuladoCompra() As Double
        Dim valor As Double
        Dim vInteresAcumulado As Double = GetInteresAcumuladoCompra()
        Dim vValorNominal As Double = GetValorNominalCompra()
        Dim vAnioBase As Integer = GetDiasBaseCompra()
        Dim vPeriodididad As String = GetPeriodicidadCompra()
        Dim vDiasPeriodo As Integer = Utilidades.DiasDeUnPeriodo(vPeriodididad)
        Try
            valor = vInteresAcumulado / vValorNominal * vAnioBase / vDiasPeriodo
            valor = valor * 100
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function
    Function CalcularPrecioSucioCompra() As Double
        Dim valor As Double
        Dim vPrecioCompra As Double = GetPrecioCompra()
        Dim vPorcentajeInteresAcumuladoCompra As Double = GetPorcentajeInteresAcumuladoCompra()

        Try
            valor = vPrecioCompra * 0.01 + vPorcentajeInteresAcumuladoCompra
            valor = valor * 100
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function
    Function CalcularValorTransadoCompra() As Double
        Dim valor As Double
        Dim vPrecioCompra As Double = GetPrecioCompra()
        Dim vValorNominal As Double = GetValorNominalCompra()

        valor = (vPrecioCompra / 100) * vValorNominal

        Return valor
    End Function
    Function CalcularComisionCasaCompra() As Double
        Dim valor As Double
        Dim vPorcentajeComisionCasa As Double = GetPorcentajeComisionCasaCompra()
        Dim vValorTransado As Double = GetValorTransadoCompra()

        Try
            valor = vPorcentajeComisionCasa * vValorTransado
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function
    Function CalcularComisionBolsaCompra() As Double
        Dim valor As Double
        Dim vPorcentajeComisionBolsa As Double = GetPorcentajeComisionBolsaCompra()
        Dim vValorTransado As Double = GetValorTransadoCompra()

        Try
            valor = vPorcentajeComisionBolsa * vValorTransado
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function
    Function CalcularMontoAPagarCompra() As Double
        Dim valor As Double
        Dim vValorTransado As Double = GetValorTransadoCompra()
        Dim vComisionCasa As Double = GetComisionCasaCompra()
        Dim vComisionBolsa As Double = GetComisionBolsaCompra()
        Dim vInteresAcumulado As Double = GetInteresAcumuladoCompra()
        Dim vCostoTransferencia As Double = GetCostoTransferenciaCompra()

        Try
            valor = vValorTransado + vComisionCasa + vComisionBolsa + vInteresAcumulado + vCostoTransferencia
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function

    'GETS VENTA
    Function GetFechaLiquidacionVenta() As Date
        Dim valor As Date

        valor = dtpFechaLiquidacionVenta.Value.Date

        Return valor
    End Function
    Function GetFechaVencimientoVenta() As Date
        Dim valor As Date

        valor = Me.dtpFechaVencimientoVenta.Value.Date

        Return valor
    End Function
    Function GetUltimaFechaCuponVenta() As Date
        Dim valor As Date

        valor = Me.dtpUltimaFechaCuponVenta.Value.Date

        Return valor
    End Function
    Function GetYTMAlVencimientoVenta() As Double
        Dim valor As Double

        If Me.txtYTMAlVencimientoVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtYTMAlVencimientoVenta.Text
                valor = valor / 100
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPorcentajeComisionCasaVenta() As Double
        Dim valor As Double

        If Me.txtPorcentajeComisionCasaVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPorcentajeComisionCasaVenta.Text
                valor = valor / 100
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetDiasAlVencimientoVenta() As Integer
        Dim valor As Integer

        If Me.txtDiasAlVencimientoVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtDiasAlVencimientoVenta.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPorcentajeComisionBolsaVenta() As Double
        Dim valor As Double

        If Me.txtPorcentajeComisionBolsaVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPorcentajeComisionBolsaVenta.Text
                valor = valor / 100
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPorcentajeCuponVenta() As Double
        Dim valor As Double

        If Me.txtPorcentajeCuponVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPorcentajeCuponVenta.Text
                valor = valor / 100
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPrecioVenta() As Double
        Dim valor As Double

        If Me.txtPrecioVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPrecioVenta.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPrecioAlVencimientoVenta() As Double
        Dim valor As Double

        If Me.txtPrecioAlVencimientoVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPrecioAlVencimientoVenta.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetValorNominalVenta() As Double
        Dim valor As Double

        If Me.txtValorNominalVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtValorNominalVenta.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetSiguienteFechaCuponVenta() As Date
        Dim valor As Date

        valor = dtpSiguienteFechaCuponVenta.Value.Date

        Return valor
    End Function
    Function GetYTMAlVencimientoComisionVenta() As Double
        Dim valor As Double

        If Me.txtYTMAlVencimientoComisionVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtYTMAlVencimientoComisionVenta.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetDiasBaseVenta() As Integer
        Dim valor As Integer

        If Me.cboAnioBaseV.SelectedIndex = -1 Then
            valor = 0
        Else
            Try
                valor = Me.cboAnioBaseV.SelectedItem
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetDiasAcumuladosVenta() As Integer
        Dim valor As Integer

        If Me.txtDiasAcumuladosVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtDiasAcumuladosVenta.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPorcentajeInteresAcumuladoVenta() As Double
        Dim valor As Double

        If Me.txtPorcentajeInteresAcumuladoVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPorcentajeInteresAcumuladoVenta.Text
                valor = valor / 100
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetInteresAcumuladoVenta() As Double
        Dim valor As Double

        If Me.txtInteresAcumuladoVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtInteresAcumuladoVenta.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPrecioSucioVenta() As Double
        Dim valor As Double

        If Me.txtPrecioSucioVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPrecioSucioVenta.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetValorTransadoVenta() As Double
        Dim valor As Double

        If Me.txtValorTransadoVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtValorTransadoVenta.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetMontoAPagarVenta() As Double
        Dim valor As Double

        If Me.txtMontoARecibir.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtMontoARecibir.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetCostoTransferenciaVenta() As Double
        Dim valor As Double

        If Me.txtCostoTransferenciaVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtCostoTransferenciaVenta.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetComisionBolsaVenta() As Double
        Dim valor As Double

        If Me.txtComisionBolsaVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtComisionBolsaVenta.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetComisionCasaVenta() As Double
        Dim valor As Double

        If Me.txtComisionCasaVenta.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtComisionCasaVenta.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPeriodicidadVenta() As String
        Dim valor As String

        If Me.cboPeriodosV.SelectedIndex = -1 Then
            valor = "NA"
        Else
            Try
                valor = Me.cboPeriodosV.SelectedValue
            Catch ex As Exception
                valor = ""
            End Try

        End If

        Return valor
    End Function


    'GETS RO
    Function GetValorNominalRO() As Double
        Dim valor As Double

        If Me.txtValorNominal_Op.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtValorNominal_Op.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPlazoRO() As Double
        Dim valor As Double

        If Me.txtPlazo_Op.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPlazo_Op.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPrecioCompraRO() As Double
        Dim valor As Double

        If Me.txtPrecioCompra_Op.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPrecioCompra_Op.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetPrecioVentaRO() As Double
        Dim valor As Double

        If Me.txtPrecioVenta_Op.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtPrecioVenta_Op.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetGananciaPerdidaDeCapital() As Double
        Dim valor As Double

        If Me.txtGananciaPerdidaCapital_Op.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtGananciaPerdidaCapital_Op.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetIngresoPorInteres() As Double
        Dim valor As Double

        If Me.txtIngresosPorIntereses_Op.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtIngresosPorIntereses_Op.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetCostosTotales() As Double
        Dim valor As Double

        If Me.txtCostosTotales_Op.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtCostosTotales_Op.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetGananciaPerdidaTotal() As Double
        Dim valor As Double

        If Me.txtGananciaPerdidaTotal_Op.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtGananciaPerdidaTotal_Op.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetRendimientoGananciaPerdida() As Double
        Dim valor As Double

        If Me.txtRendimientoGananciaPerdida_Op.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtRendimientoGananciaPerdida_Op.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetRendimientoDeIntereses() As Double
        Dim valor As Double

        If Me.txtRendimientoIntereses_Op.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtRendimientoIntereses_Op.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetRendimientoAntesImpuestos() As Double
        Dim valor As Double

        If Me.txtRendimientoAntesISR_Op.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtRendimientoAntesISR_Op.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function
    Function GetRendimientoDespuesImpuestos() As Double
        Dim valor As Double

        If Me.txtRendimientoDespuesISR_Op.Text.Length = 0 Then
            valor = 0
        Else
            Try
                valor = Me.txtRendimientoDespuesISR_Op.Text
            Catch ex As Exception
                valor = 0
            End Try
        End If

        Return valor
    End Function



    'CALCULOS VENTA
    Function CalcularPeriodicidadVenta() As String
        Dim valor As String
        If Me.cboPeriodosC.SelectedIndex = -1 Then
            valor = ""
        Else
            Try
                valor = cboPeriodosC.SelectedValue
            Catch ex As Exception
                valor = ""
            End Try
        End If


        Return valor
    End Function
    Function CalcularUltimaFechaCuponVenta() As Date
        Dim valor As Date
        Dim vSiguienteFechaCupon As Date = GetSiguienteFechaCuponCompra()
        Dim vPeriodicidad As String = GetPeriodicidadVenta()
        Dim vDiasPeriodo As Integer = Utilidades.DiasDeUnPeriodo(vPeriodicidad)

        Try
            vSiguienteFechaCupon.AddDays(vDiasPeriodo + 1)
            valor = vSiguienteFechaCupon
        Catch ex As Exception
            valor = Date.Now.Date
        End Try

        Return valor
    End Function
    Function CalcularSiguienteFechaCuponVenta() As Date
        Dim valor As Date
        Dim vUltimaFechaCupon As DateTime = GetUltimaFechaCuponVenta()
        Dim vPeriodicidad As String = GetPeriodicidadVenta()
        Dim vDiasPeriodo As Integer = Utilidades.DiasDeUnPeriodo(vPeriodicidad)

        valor = vUltimaFechaCupon.AddDays(vDiasPeriodo + 1)

        Return valor
    End Function
    Function CalcularFechaLiquidacionVenta() As Date
        Dim valor As Date

        valor = DateTime.Now.Date + DateTime.Now.AddDays(3)

        Return valor
    End Function
    Function CalcularYTMAlVencimientoComisionVenta() As Double
        Dim valor As Double
        Dim vYTMAlVencimiento As Double = GetYTMAlVencimientoVenta()
        Dim vPorcentajeComisionCasa As Double = GetPorcentajeComisionCasaVenta()
        Dim vAnioBase As Integer = GetDiasBaseVenta()
        Dim vDiasAlVencimiento As Integer = GetDiasAlVencimientoVenta()
        Dim vPorcentajeComisionBolsa As Double = GetPorcentajeComisionBolsaVenta()

        Try
            valor = vYTMAlVencimiento - (vPorcentajeComisionCasa * vAnioBase / vDiasAlVencimiento) - (vPorcentajeComisionBolsa * vAnioBase / vDiasAlVencimiento)
            valor = valor * 100
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function
    Function CalcularYTMAlVencimientoVenta() As Double
        Dim valor As Double
        Dim vFechaLiquidacion As DateTime = GetFechaLiquidacionVenta()
        Dim vFechaVencimiento As DateTime = GetFechaVencimientoVenta()
        Dim vPorcentajeCupon As Double = GetPorcentajeCuponVenta()
        Dim vPrecioVenta As Double = GetPrecioVenta()
        Dim vPrecioAlVencimiento As Double = GetPrecioAlVencimientoVenta()

        'FALTA CALCULO
        valor = 0

        Return valor
    End Function
    Function CalcularDiasAcumuladosVenta() As Integer
        Dim valor As Integer
        Dim vUltimaFechaCupon As Date
        Dim vFechaLiquidacion As Date
        Dim vAnioBase As Integer = GetDiasBaseVenta()
        vUltimaFechaCupon = GetUltimaFechaCuponVenta()
        vFechaLiquidacion = GetFechaLiquidacionVenta()

        If vAnioBase = 360 Then
            valor = Utilidades.Days360(vUltimaFechaCupon, vFechaLiquidacion)
        Else
            valor = DateDiff(DateInterval.Day, vUltimaFechaCupon, vFechaLiquidacion)
        End If


        Return valor
    End Function
    Function CalcularDiasAlVencimientoVenta() As Integer
        Dim valor As Integer
        Dim vFechaLiquidacion As Date
        Dim vFechaVencimiento As Date
        Dim vAnioBase As Integer = GetDiasBaseVenta()

        vFechaLiquidacion = GetFechaLiquidacionVenta()
        vFechaVencimiento = GetFechaVencimientoVenta()
        If vAnioBase = 360 Then
            valor = Utilidades.Days360(vFechaLiquidacion, vFechaVencimiento)
        Else
            valor = DateDiff(DateInterval.Day, vFechaLiquidacion, vFechaVencimiento)
        End If


        Return valor
    End Function
    Function CalcularInteresAcumuladoVenta() As Double
        Dim valor As Double
        Dim vValorNominal As Double
        Dim vPorcentajeCupon As Double
        Dim vDiasAcumulados As Integer
        Dim vDiasBase As Integer = GetDiasBaseVenta()

        vValorNominal = GetValorNominalVenta()
        vPorcentajeCupon = GetPorcentajeCuponVenta()
        vDiasAcumulados = GetDiasAcumuladosVenta()

        Try
            valor = vValorNominal * vPorcentajeCupon * vDiasAcumulados / vDiasBase
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function
    Function CalcularInteresAcumuladoPorcentajeVenta() As Double
        Dim valor As Double
        Dim vInteresAcumulado As Double
        Dim vValorNominal As Double
        Dim vDiasBase As Integer = GetDiasBaseVenta()
        Dim vPeriodicidad As String = GetPeriodicidadVenta()
        Dim vDiasPeriodo As Integer = Utilidades.DiasDeUnPeriodo(vPeriodicidad)

        vInteresAcumulado = GetInteresAcumuladoVenta()
        vValorNominal = GetValorNominalVenta()

        Try
            valor = vInteresAcumulado / vValorNominal * vDiasBase / vDiasPeriodo
            valor = valor * 100
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function
    Function CalcularPrecioSucioVenta() As Double
        Dim valor As Double
        Dim vPrecioVenta As Double
        Dim vNumero As Double
        Dim vPorcentajeInteresAcumulado As Double

        vPrecioVenta = GetPrecioVenta()
        vNumero = 0.01
        vPorcentajeInteresAcumulado = GetPorcentajeInteresAcumuladoVenta()

        Try
            valor = vPrecioVenta * vNumero + vPorcentajeInteresAcumulado
            valor = valor * 100
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function
    Function CalcularValorTransadoVenta() As Double
        Dim valor As Double
        Dim vPrecioVenta As Double
        Dim vValorNominal As Double

        vPrecioVenta = GetPrecioVenta()
        vValorNominal = GetValorNominalVenta()

        Try
            valor = (vPrecioVenta / 100) * vValorNominal
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function
    Function CalcularComisionCasaVenta() As Double
        Dim valor As Double
        Dim vPorcentajeComisionCasa As Double
        Dim vValorTransado As Double

        vPorcentajeComisionCasa = GetPorcentajeComisionCasaVenta()
        vValorTransado = GetValorTransadoVenta()

        Try
            valor = vPorcentajeComisionCasa * vValorTransado
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function
    Function CalcularComisionBolsaVenta() As Double
        Dim valor As Double
        Dim vPorcentajeComisionBolsa As Double
        Dim vValorTransado As Double

        vPorcentajeComisionBolsa = GetPorcentajeComisionBolsaVenta()
        vValorTransado = GetValorTransadoVenta()

        Try
            valor = vPorcentajeComisionBolsa * vValorTransado
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function
    Function CalcularMontoARecibirVenta() As Double
        Dim valor As Double
        Dim vValorTransado As Double
        Dim vComisionBolsa As Double
        Dim vComisionCasa As Double
        Dim vInteresAcumulado As Double

        vValorTransado = GetValorTransadoVenta()
        vComisionBolsa = GetComisionBolsaVenta()
        vComisionCasa = GetComisionCasaVenta()
        vInteresAcumulado = GetInteresAcumuladoVenta()

        Try
            valor = vValorTransado - vComisionBolsa - vComisionCasa + vInteresAcumulado
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function

    'CALCULOS RO
    Function CalcularDiasPlazoRO() As Integer
        Dim valor As Integer
        Dim vFechaLiquidacionCompra As Date = GetFechaLiquidacionCompra()
        Dim vFechaLiquidacionVenta As Date = GetFechaLiquidacionVenta()
        Dim vAnioBase As Integer = GetDiasBaseCompra()

        If vAnioBase = 360 Then
            valor = Utilidades.Days360(vFechaLiquidacionCompra, vFechaLiquidacionVenta)
        Else
            valor = DateDiff(DateInterval.Day, vFechaLiquidacionCompra, vFechaLiquidacionVenta)
        End If

        Return valor
    End Function
    Function CalcularGananciaDeCapital() As Double
        Dim valor As Double
        Dim vValorTransadoVenta As Double = GetValorTransadoVenta()
        Dim vValorTransadoCompra As Double = GetValorTransadoCompra()

        valor = vValorTransadoVenta - vValorTransadoCompra

        Return valor
    End Function
    Function CalcularGananciaDeIntereses() As Double
        Dim valor As Double
        'Dim vCuponesPagados As Double = 0 'FALTA VALOR
        'Dim vInteresAcumulado As Double = GetInteresAcumuladoCompra()

        'valor = vCuponesPagados + vInteresAcumulado
        valor = TotalValorCupones

        Return valor
    End Function
    Function CalcularGananciaTotal() As Double
        Dim valor As Double
        Dim vGananciaDeCapital As Double = GetGananciaPerdidaDeCapital()
        Dim vGananciaDeIntereses As Double = GetIngresoPorInteres()

        valor = vGananciaDeCapital + vGananciaDeIntereses

        Return valor
    End Function
    Function CalcularRentabilidadPorGananciaDeCapital() As Double
        Dim valor As Double
        Dim vGananciaDeCapital As Double = GetGananciaPerdidaDeCapital()
        Dim vValorTransadoCompra As Double = GetValorTransadoCompra()
        Dim vDiasPLazo As Integer = GetPlazoRO()
        Dim vAnioBase As Integer = GetDiasBaseCompra()

        Try
            valor = vGananciaDeCapital / vValorTransadoCompra * vAnioBase / vDiasPLazo
            valor = valor * 100
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function
    Function CalcularRentabilidadPorIntereses() As Double
        Dim valor As Double
        Dim vGananciaPorIntereses As Double = GetIngresoPorInteres()
        Dim vValorTransadoCompra As Double = GetValorTransadoCompra()
        Dim vAnioBase As Integer = GetDiasBaseCompra()
        Dim vDiasPlazo As Integer = GetPlazoRO()

        Try
            valor = vGananciaPorIntereses / vValorTransadoCompra * vAnioBase / vDiasPlazo
            valor = valor * 100
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function
    Function CalcularRentabilidadTotal() As Double
        Dim valor As Double
        Dim vGAnanciaTotal As Double = GetGananciaPerdidaTotal()
        Dim vValorTransadoCompra As Double = GetValorTransadoCompra()
        Dim vAnioBase As Integer = GetDiasBaseCompra()
        Dim vDiasPlazo As Integer = GetPlazoRO()

        Try
            valor = vGAnanciaTotal / vValorTransadoCompra * vAnioBase / vDiasPlazo
            valor = valor * 100
        Catch ex As Exception
            valor = 0
        End Try

        Return valor
    End Function

    'REFRESCAR
    Sub RefrescarSiguienteFechaCuponCompra()
        Me.dtpSiguienteFechaCuponCompra.Value = CalcularSiguienteFechaCuponCompra()
    End Sub
    Sub RefrescarYTMAlVencimientoComisionCompra()
        Me.txtYTMAlVencimientoComisionCompra.Text = CalcularYTMAlVencimientoComisionCompra().ToString
    End Sub
    Sub RefrescarYTMAlVencimientoCompra()
        'Me.txtYTMAlVencimientoCompra.Text = CalcularYTMAlVencimientoCompra().ToString

        'ACTIVAR DESPUES DE ENCONTRAR FORMULA
    End Sub
    Sub RefrescarDiasAcumuladosCompra()
        Me.txtDiasAcumuladosCompra.Text = CalcularDiasAcumuladosCompra().ToString
    End Sub
    Sub RefrescarDiasAlVencimientoCompra()
        Me.txtDiasAlVencimientoCompra.Text = CalcularDiasAlVencimientoCompra().ToString
    End Sub
    Sub RefrescarInteresAcumuladoCompra()
        Me.txtInteresAcumuladoCompra.Text = CalcularInteresAcumuladoCompra().ToString
    End Sub
    Sub RefrescarPorcentajeInteresAcumuladoCompra()
        Me.txtPorcentajeInteresAcumuladoCompra.Text = CalcularPorcentajeInteresAcumuladoCompra().ToString
    End Sub
    Sub RefrescarPorcentajePrecioSucioCompra()
        Me.txtPrecioSucioCompra.Text = CalcularPrecioSucioCompra().ToString
    End Sub
    Sub RefrescarValorTransadoCompra()
        Me.txtValorTransadoCompra.Text = CalcularValorTransadoCompra().ToString
    End Sub
    Sub RefrescarComisionCasaCompra()
        Me.txtComisionCasaCompra.Text = CalcularComisionCasaCompra().ToString
    End Sub
    Sub RefrescarComisionBolsaCompra()
        Me.txtComisionBolsaCompra.Text = CalcularComisionBolsaCompra().ToString
    End Sub
    Sub RefrescarMontoAPagarCompra()
        Me.txtMontoAPagar.Text = CalcularMontoAPagarCompra().ToString
    End Sub

    'VENTA
    Sub RefrescarPeriodicidadVenta()
        Me.cboPeriodosV.SelectedValue = CalcularPeriodicidadVenta()
    End Sub
    Sub RefrescarUltimaFechaCuponVenta()
        Me.dtpUltimaFechaCuponVenta.Value = CalcularUltimaFechaCuponVenta()
    End Sub
    Sub RefrescarSiguienteFechaCuponVenta()
        Me.dtpSiguienteFechaCuponVenta.Value = CalcularSiguienteFechaCuponVenta()
    End Sub
    Sub RefrescarFechaLiquidacionVenta()
        Me.dtpFechaLiquidacionVenta.Value = CalcularFechaLiquidacionVenta()
    End Sub
    Sub RefrescarFechaVencimientoVenta()
        Me.dtpFechaVencimientoVenta.Value = Me.dtpFechaVencimientoCompra.Value
    End Sub
    Sub RefrescarPorcentajeCuponVenta()
        Me.txtPorcentajeCuponVenta.Text = Me.txtPorcentajeCuponCompra.Text
    End Sub
    Sub RefrescarYTMAlVencimientoComisionVenta()
        Me.txtYTMAlVencimientoComisionVenta.Text = CalcularYTMAlVencimientoComisionVenta().ToString
    End Sub
    Sub RefrescarYTMAlVencimientoVenta()
        'Me.txtYTMAlVencimientoVenta.Text = CalcularYTMAlVencimientoVenta().ToString
    End Sub
    Sub RefrescarDiasAcumuladosVenta()
        Me.txtDiasAcumuladosVenta.Text = CalcularDiasAcumuladosVenta().ToString
    End Sub
    Sub RefrescarDiasAlVencimientoVenta()
        Me.txtDiasAlVencimientoVenta.Text = CalcularDiasAlVencimientoVenta().ToString
    End Sub
    Sub RefrescarInteresAcumuladoVenta()
        Me.txtInteresAcumuladoVenta.Text = CalcularInteresAcumuladoVenta().ToString
    End Sub
    Sub RefrescarPorcentajeInteresAcumuladoVenta()
        Me.txtPorcentajeInteresAcumuladoVenta.Text = CalcularInteresAcumuladoPorcentajeVenta().ToString
    End Sub
    Sub RefrescarPrecioSucioVenta()
        Me.txtPrecioSucioVenta.Text = CalcularPrecioSucioVenta().ToString
    End Sub
    Sub RefrescarValorTransadoVenta()
        Me.txtValorTransadoVenta.Text = CalcularValorTransadoVenta().ToString
    End Sub
    Sub RefrescarComisionCasaVenta()
        Me.txtComisionCasaVenta.Text = CalcularComisionCasaVenta().ToString
    End Sub
    Sub RefrescarComisionBolsaVenta()
        Me.txtComisionBolsaVenta.Text = CalcularComisionBolsaVenta().ToString
    End Sub
    Sub RefrescarMontoARecibirVenta()
        Me.txtMontoARecibir.Text = CalcularMontoARecibirVenta()
    End Sub
    Sub RefrescarValorNominalVenta()
        Me.txtValorNominalVenta.Text = GetValorNominalCompra()

    End Sub
    Sub RefrescarPorcentajeComisionCasaVenta()
        Me.txtPorcentajeComisionCasaVenta.Text = GetPorcentajeComisionCasaCompra().ToString
    End Sub
    Sub RefrescarPorcentajeComisionBolsaVenta()
        Me.txtPorcentajeComisionBolsaVenta.Text = GetPorcentajeComisionBolsaCompra().ToString
    End Sub

    'RO
    Sub RefrescarValorNominalRO()
        Me.txtValorNominal_Op.Text = GetValorNominalCompra.ToString
    End Sub
    Sub RefrescarPLazoRO()
        Me.txtPlazo_Op.Text = CalcularDiasPlazoRO()

    End Sub
    Sub RefrescarPrecioCompraRO()
        Me.txtPrecioCompra_Op.Text = GetPrecioCompra()
    End Sub
    Sub RefrescarPrecioVentaRO()
        Me.txtPrecioVenta_Op.Text = GetPrecioVenta()

    End Sub
    Sub RefrescarGananciaDeCapital()
        Me.txtGananciaPerdidaCapital_Op.Text = CalcularGananciaDeCapital()

    End Sub
    Sub RefrescarGananciaDeIntereses()
        Me.txtIngresosPorIntereses_Op.Text = CalcularGananciaDeIntereses()
    End Sub
    Sub RefrescarGananciaTotal()
        Me.txtGananciaPerdidaTotal_Op.Text = CalcularGananciaTotal()

    End Sub
    Sub RefrescarRentabilidadPorGananciaDeCapital()
        Me.txtRendimientoGananciaPerdida_Op.Text = CalcularRentabilidadPorGananciaDeCapital()
    End Sub
    Sub RefrescarRentabilidadPorIntereses()
        Me.txtRendimientoIntereses_Op.Text = CalcularRentabilidadPorIntereses()
    End Sub
    Sub RefrescarRentabilidadTotal()
        Me.txtRendimientoDespuesISR_Op.Text = CalcularRentabilidadTotal()
    End Sub





    Sub CargarCasas()
        Me.cboCasa_C.DataSource = oDAOGeneral.ListaCasasCorredoras.Tables("CasasCorredoras")
        Me.cboCasa_C.DisplayMember = "Descripcion"
        Me.cboCasa_C.ValueMember = "Codigo"
        Me.cboCasa_C.SelectedValue = -1

        Me.cboCasa_V.DataSource = oDAOGeneral.ListaCasasCorredoras.Tables("CasasCorredoras")
        Me.cboCasa_V.DisplayMember = "Descripcion"
        Me.cboCasa_V.ValueMember = "Codigo"
        Me.cboCasa_V.SelectedValue = -1

    End Sub


    Private Sub btnAceptar_Click(sender As Object, e As EventArgs) Handles btnAceptar.Click
        oCEBonos = New BonosCE

        'oCEBonos.CodigoCasaCompra = Me.GetCasaCompra
        oCEBonos.ValorNominalCompra = Me.GetValorNominalCompra
        oCEBonos.UltimaFechaCuponCompra = Me.GetUltimaFechaCuponCompra
        oCEBonos.SiguienteFechaCuponCompra = Me.GetSiguienteFechaCuponCompra
        oCEBonos.FechaLiquidacionCompra = Me.GetFechaLiquidacionCompra
        oCEBonos.FechaVencimientoCompra = Me.GetFechaVencimientoCompra
        oCEBonos.PorcentajeCuponCompra = Me.GetPorcentajeCuponCompra
        'oCEBonos.YTMAlVencimientoComisionCompra = Me.GetYTMAlVencimientoComisionCompra
        'oCEBonos.YTMAlVencimientoCompra = GetYTMAlVencimientoCompra()
        oCEBonos.PrecioAlVencimientoCompra = GetPrecioAlVencimientoCompra()
        oCEBonos.PrecioCompra = GetPrecioCompra()
        oCEBonos.DiasBaseCompra = GetDiasBaseCompra()
        'oCEBonos.DiasAcumuladosCompra = GetDiasAcumuladosCompra()
        'oCEBonos.DiasAlVencimientoCompra = GetDiasAlVencimientoCompra()
        'oCEBonos.PorcentajeInteresAcumuladoCompra = GetPorcentajeInteresAcumuladoCompra()
        'oCEBonos.InteresAcumuladoCompra = GetInteresAcumuladoCompra()
        'oCEBonos.PrecioSucioCompra = GetPrecioSucioCompra()
        'oCEBonos.ValorTransadoCompra = GetValorTransadoCompra()
        'oCEBonos.MontoAPagarCompra = GetMontoAPagarCompra()
        oCEBonos.CostoDeTransferenciaCompra = GetCostoTransferenciaCompra()

        oCEBonos.ValorNominalVenta = GetValorNominalVenta()
        oCEBonos.UltimaFechaCuponVenta = GetUltimaFechaCuponVenta()
        oCEBonos.SiguienteFechaCuponVenta = GetSiguienteFechaCuponVenta()
        oCEBonos.FechaLiquidacionVenta = GetFechaLiquidacionVenta()
        oCEBonos.FechaVencimientoVenta = GetFechaVencimientoVenta()
        oCEBonos.PorcentajeCuponVenta = GetPorcentajeCuponVenta()
        'oCEBonos.YTMAlVencimientoComisionVenta = GetYTMAlVencimientoComisionVenta()
        'oCEBonos.YTMAlVencimientoVenta = GetYTMAlVencimientoVenta()
        oCEBonos.PrecioAlVencimientoVenta = GetPrecioAlVencimientoVenta()
        oCEBonos.PrecioVenta = GetPrecioVenta()
        oCEBonos.DiasBaseVenta = GetDiasBaseVenta()
        'oCEBonos.DiasAcumuladosVenta = GetDiasAcumuladosVenta()
        'oCEBonos.DiasAlVencimientoVenta = GetDiasAlVencimientoVenta()
        'oCEBonos.PorcentajeInteresAcumuladoVenta = GetPorcentajeInteresAcumuladoVenta()
        'oCEBonos.InteresAcumuladoVenta = GetInteresAcumuladoVenta()
        'oCEBonos.PrecioSucioVenta = GetPrecioSucioVenta()
        'oCEBonos.ValorTransadoVenta = GetValorTransadoVenta()
        'oCEBonos.MontoAPagarVenta = GetMontoAPagarVenta()
        oCEBonos.CostoDeTransferenciaVenta = GetCostoTransferenciaVenta()
        'oCEBonos.ValorNominalRO = GetValorNominalRO()
        'oCEBonos.PlazoRO = GetPlazoRO()
        'oCEBonos.PrecioCompraRO = GetPrecioCompraRO()
        'oCEBonos.PrecioVentaRO = GetPrecioVentaRO()
        'oCEBonos.GananciaPerdidaDeCapital = GetGananciaPerdidaDeCapital()
        'oCEBonos.IngresoPorInteres = GetIngresoPorInteres()
        'oCEBonos.CostosTotales = GetCostosTotales()
        'oCEBonos.GananciaPerdidaTotal = GetGananciaPerdidaTotal()
        'oCEBonos.RendimientoGananciaPerdida = GetRendimientoGananciaPerdida()
        'oCEBonos.RendimientoDeIntereses = GetRendimientoDeIntereses()
        'oCEBonos.RendimientoAntesImpuestos = GetRendimientoAntesImpuestos()
        'oCEBonos.RendimientoDespuesImpuestos = GetRendimientoDespuesImpuestos()
    End Sub

    Function RetornarObjeto()
        Return oCEBonos
    End Function

    Public Sub CargarRegistro(vId As Integer, vTipo As String)
        Modo = "C"
        IdDocumento = vId
        TipoDocumento = vTipo
    End Sub
    Private Sub CargarRegistroBD()
        oCEBonos = New BonosCE
        oDAOBonos = New BonosDAO

        oDAOBonos.CargarRegistro(oCEBonos, TipoDocumento, IdDocumento)

        'Dim vCodigoCasaCompra As String = oCEBonos.CodigoCasaCompra
        Dim vValorNominalCompra As Double = oCEBonos.ValorNominalCompra
        Dim vUltimaFechaCuponCompra As Date = oCEBonos.UltimaFechaCuponCompra
        Dim vSiguienteFechaCuponCompra As Date = oCEBonos.SiguienteFechaCuponCompra
        Dim vFechaLiquidacionCompra As Date = oCEBonos.FechaLiquidacionCompra
        Dim vFechaVencimientoCompra As Date = oCEBonos.FechaVencimientoCompra
        Dim vPorcentajeCuponCompra As Double = oCEBonos.PorcentajeCuponCompra
        Dim vYTMAlVencimientoComisionCompra As Double = oCEBonos.YTMAlVencimientoComisionCompra
        Dim vYTMAlVencimientoCompra As Double = oCEBonos.YTMAlVencimientoCompra
        Dim vPrecioAlVencimientoCompra As Double = oCEBonos.PrecioAlVencimientoCompra
        Dim vPrecioCompra As Double = oCEBonos.PrecioCompra
        Dim vDiasBaseCompra As Integer = oCEBonos.DiasBaseCompra
        Dim vDiasAcumuladosCompra As Integer = oCEBonos.DiasAcumuladosCompra
        Dim vDiasAlVencimientoCompra As Integer = oCEBonos.DiasAlVencimientoCompra
        Dim vPorcentajeInteresAcumuladoCompra As Double = oCEBonos.PorcentajeInteresAcumuladoCompra
        Dim vInteresAcumuladoCompra As Double = oCEBonos.InteresAcumuladoCompra
        Dim vPrecioSucioCompra As Double = oCEBonos.PrecioSucioCompra
        Dim vValorTransadoCompra As Double = oCEBonos.ValorTransadoCompra
        Dim vMontoAPagarCompra As Double = oCEBonos.MontoAPagarCompra
        Dim vCostoDeTransferenciaCompra As Double = oCEBonos.CostoDeTransferenciaCompra

        'Dim vCodigoCasaVenta As String = oCEBonos.CodigoCasaVenta
        Dim vValorNominalVenta As Double = oCEBonos.ValorNominalVenta
        Dim vUltimaFechaCuponVenta As Date = oCEBonos.UltimaFechaCuponVenta
        Dim vSiguienteFechaCuponVenta As Date = oCEBonos.SiguienteFechaCuponVenta
        Dim vFechaLiquidacionVenta As Date = oCEBonos.FechaLiquidacionVenta
        Dim vFechaVencimientoVenta As Date = oCEBonos.FechaVencimientoVenta
        Dim vPorcentajeCuponVenta As Double = oCEBonos.PorcentajeCuponVenta
        Dim vYTMAlVencimientoComisionVenta As Double = oCEBonos.YTMAlVencimientoComisionVenta
        Dim vYTMAlVencimientoVenta As Double = oCEBonos.YTMAlVencimientoVenta
        Dim vPrecioAlVencimientoVenta As Double = oCEBonos.PrecioAlVencimientoVenta
        Dim vPrecioVenta As Double = oCEBonos.PrecioVenta
        Dim vDiasBaseVenta As Integer = oCEBonos.DiasBaseVenta
        Dim vDiasAcumuladosVenta As Integer = oCEBonos.DiasAcumuladosVenta
        Dim vDiasAlVencimientoVenta As Integer = oCEBonos.DiasAlVencimientoVenta
        Dim vPorcentajeInteresAcumuladoVenta As Double = oCEBonos.InteresAcumuladoPorcentajeVenta
        Dim vInteresAcumuladoVenta As Integer = oCEBonos.InteresAcumuladoVenta
        Dim vPrecioSucioVenta As Double = oCEBonos.PrecioSucioVenta
        Dim vValorTransadoVenta As Double = oCEBonos.ValorTransadoVenta
        'Dim vMontoAPagarVenta As Double = oCEBonos.MontoAPagarVenta
        Dim vCostoDeTransferenciaVenta As Double = oCEBonos.CostoDeTransferenciaVenta

        Dim vValorNominalRO As Double = oCEBonos.ValorNominalRO
        'Dim vPlazoRO As Double = oCEBonos.PlazoRO
        Dim vPrecioCompraRO As Double = oCEBonos.PrecioCompraRO
        Dim vPrecioVentaRO As Double = oCEBonos.PrecioVentaRO
        Dim vGananciaPerdidaDeCapital As Double = oCEBonos.GananciaPerdidaDeCapital
        Dim vIngresoPorInteres As Double = oCEBonos.IngresoPorInteres
        Dim vCostosTotales As Double = oCEBonos.CostosTotales
        Dim vGananciaPerdidaTotal As Double = oCEBonos.GananciaPerdidaTotal
        Dim vRendimientoGananciaPerdida As Double = oCEBonos.RendimientoGananciaPerdida
        Dim vRendimientoDeIntereses As Double = oCEBonos.RendimientoDeIntereses
        Dim vRendimientoAntesImpuestos As Double = oCEBonos.RendimientoAntesImpuestos
        Dim vRendimientoDespuesImpuestos As Double = oCEBonos.RendimientoDespuesImpuestos


        'Me.cboCasa_C.SelectedValue = vCodigoCasaCompra
        Me.txtValorNominalCompra.Text = vValorNominalCompra
        Me.dtpUltimaFechaCuponCompra.Value = vUltimaFechaCuponCompra
        Me.dtpSiguienteFechaCuponCompra.Value = vSiguienteFechaCuponCompra
        Me.dtpFechaLiquidacionCompra.Value = vFechaLiquidacionCompra
        Me.dtpFechaVencimientoCompra.Value = vFechaVencimientoCompra
        Me.txtPorcentajeCuponCompra.Text = vPorcentajeCuponCompra
        Me.txtYTMAlVencimientoComisionCompra.Text = vYTMAlVencimientoComisionCompra
        Me.txtYTMAlVencimientoCompra.Text = vYTMAlVencimientoCompra
        Me.txtPrecioAlVencimientoCompra.Text = vPrecioAlVencimientoCompra
        Me.txtPrecioCompra.Text = vPrecioCompra
        Me.cboAnioBaseC.SelectedItem = vDiasBaseCompra
        Me.txtDiasAcumuladosCompra.Text = vDiasAcumuladosCompra
        Me.txtDiasAlVencimientoCompra.Text = vDiasAlVencimientoCompra
        Me.txtPorcentajeInteresAcumuladoCompra.Text = vPorcentajeInteresAcumuladoCompra
        Me.txtInteresAcumuladoCompra.Text = vInteresAcumuladoCompra
        Me.txtPrecioSucioCompra.Text = vPrecioSucioCompra
        Me.txtValorTransadoCompra.Text = vValorTransadoCompra
        Me.txtMontoAPagar.Text = vMontoAPagarCompra
        Me.txtCostoTransferenciaCompra.Text = vCostoDeTransferenciaCompra

        'Me.cboCasa_V.SelectedValue = vCodigoCasaVenta
        Me.txtValorNominalVenta.Text = vValorNominalVenta
        Me.dtpUltimaFechaCuponVenta.Value = vUltimaFechaCuponVenta
        Me.dtpSiguienteFechaCuponVenta.Value = vSiguienteFechaCuponVenta
        Me.dtpFechaLiquidacionVenta.Value = vFechaLiquidacionVenta
        Me.dtpFechaVencimientoVenta.Value = vFechaVencimientoVenta
        Me.txtPorcentajeCuponVenta.Text = vPorcentajeCuponVenta
        Me.txtYTMAlVencimientoComisionVenta.Text = vYTMAlVencimientoComisionVenta
        Me.txtYTMAlVencimientoVenta.Text = vYTMAlVencimientoVenta
        Me.txtPrecioAlVencimientoVenta.Text = vPrecioAlVencimientoVenta
        Me.txtPrecioVenta.Text = vPrecioVenta
        Me.cboAnioBaseV.SelectedItem = vDiasBaseVenta
        Me.txtDiasAcumuladosVenta.Text = vDiasAcumuladosVenta
        Me.txtDiasAlVencimientoVenta.Text = vDiasAlVencimientoVenta
        Me.txtPorcentajeInteresAcumuladoVenta.Text = vPorcentajeInteresAcumuladoVenta
        Me.txtInteresAcumuladoVenta.Text = vInteresAcumuladoVenta
        Me.txtPrecioSucioVenta.Text = vPrecioSucioVenta
        Me.txtValorTransadoVenta.Text = vValorTransadoVenta
        'Me.txtMontoARecibir.Text = vMontoAPagarVenta
        Me.txtCostoTransferenciaVenta.Text = vCostoDeTransferenciaVenta

        Me.txtValorNominal_Op.Text = vValorNominalRO
        'Me.txtPlazo_Op.Text = vPlazoRO
        Me.txtPrecioCompra_Op.Text = vPrecioCompraRO
        Me.txtPrecioVenta_Op.Text = vPrecioVentaRO
        Me.txtGananciaPerdidaCapital_Op.Text = vGananciaPerdidaDeCapital
        Me.txtIngresosPorIntereses_Op.Text = vIngresoPorInteres
        Me.txtCostosTotales_Op.Text = vCostosTotales
        Me.txtGananciaPerdidaTotal_Op.Text = vGananciaPerdidaTotal
        Me.txtRendimientoGananciaPerdida_Op.Text = vRendimientoGananciaPerdida
        Me.txtRendimientoIntereses_Op.Text = vRendimientoDeIntereses
        Me.txtRendimientoAntesISR_Op.Text = vRendimientoAntesImpuestos
        Me.txtRendimientoDespuesISR_Op.Text = vRendimientoDespuesImpuestos

    End Sub

    Private Sub txtValorNominalCompra_TextChanged(sender As Object, e As EventArgs) Handles txtValorNominalCompra.TextChanged
        RefrescarInteresAcumuladoCompra()
        RefrescarPorcentajeInteresAcumuladoCompra()
        RefrescarValorTransadoCompra()
        RefrescarValorNominalVenta()
        RefrescarValorNominalRO()
        RefrescarTablaIngresos()
    End Sub

    Private Sub dtpUltimaFechaCuponCompra_ValueChanged(sender As Object, e As EventArgs) Handles dtpUltimaFechaCuponCompra.ValueChanged
        RefrescarSiguienteFechaCuponCompra()
    End Sub

    Private Sub dtpSiguienteFechaCuponCompra_ValueChanged(sender As Object, e As EventArgs) Handles dtpSiguienteFechaCuponCompra.ValueChanged
        RefrescarDiasAcumuladosCompra()
        RefrescarUltimaFechaCuponVenta()
        RefrescarTablaIngresos()
    End Sub

    Private Sub dtpFechaLiquidacionCompra_ValueChanged(sender As Object, e As EventArgs) Handles dtpFechaLiquidacionCompra.ValueChanged
        RefrescarYTMAlVencimientoCompra()
        RefrescarDiasAcumuladosCompra()
        RefrescarDiasAlVencimientoCompra()
        RefrescarPLazoRO()
        RefrescarTablaIngresos()
    End Sub

    Private Sub dtpFechaVencimientoCompra_ValueChanged(sender As Object, e As EventArgs) Handles dtpFechaVencimientoCompra.ValueChanged
        RefrescarYTMAlVencimientoCompra()
        RefrescarDiasAlVencimientoCompra()
        RefrescarFechaVencimientoVenta()

    End Sub

    Private Sub txtPorcentajeCuponCompra_TextChanged(sender As Object, e As EventArgs) Handles txtPorcentajeCuponCompra.TextChanged
        RefrescarYTMAlVencimientoCompra()
        RefrescarInteresAcumuladoCompra()
        RefrescarPorcentajeCuponVenta()
        RefrescarTablaIngresos()
    End Sub

    Private Sub txtYTMAlVencimientoCompra_TextChanged(sender As Object, e As EventArgs) Handles txtYTMAlVencimientoCompra.TextChanged
        RefrescarYTMAlVencimientoComisionCompra()

    End Sub

    Private Sub txtPorcentajeComisionCasaCompra_TextChanged(sender As Object, e As EventArgs) Handles txtPorcentajeComisionCasaCompra.TextChanged
        RefrescarYTMAlVencimientoComisionCompra()
        RefrescarComisionCasaCompra()
        RefrescarPorcentajeComisionCasaVenta()

    End Sub

    Private Sub txtDiasAlVencimientoCompra_TextChanged(sender As Object, e As EventArgs) Handles txtDiasAlVencimientoCompra.TextChanged
        RefrescarYTMAlVencimientoComisionCompra()

    End Sub

    Private Sub txtPrecioCompra_TextChanged(sender As Object, e As EventArgs) Handles txtPrecioCompra.TextChanged
        RefrescarValorTransadoCompra()
        RefrescarPorcentajePrecioSucioCompra()
        RefrescarValorTransadoCompra()
        RefrescarPrecioCompraRO()
    End Sub

    Private Sub txtPrecioAlVencimientoCompra_TextChanged(sender As Object, e As EventArgs) Handles txtPrecioAlVencimientoCompra.TextChanged
        RefrescarYTMAlVencimientoCompra()

    End Sub

    Private Sub txtDiasAcumuladosCompra_TextChanged(sender As Object, e As EventArgs) Handles txtDiasAcumuladosCompra.TextChanged
        RefrescarInteresAcumuladoCompra()

    End Sub



    Private Sub txtInteresAcumuladoCompra_TextChanged(sender As Object, e As EventArgs) Handles txtInteresAcumuladoCompra.TextChanged
        RefrescarPorcentajeInteresAcumuladoCompra()
        RefrescarPorcentajePrecioSucioCompra()
        RefrescarMontoAPagarCompra()
        RefrescarGananciaDeIntereses()
    End Sub

    Private Sub txtValorTransadoCompra_TextChanged(sender As Object, e As EventArgs) Handles txtValorTransadoCompra.TextChanged
        RefrescarComisionCasaCompra()
        RefrescarComisionBolsaCompra()
        RefrescarMontoAPagarCompra()
        RefrescarGananciaDeCapital()
        RefrescarRentabilidadPorGananciaDeCapital()
        RefrescarRentabilidadPorIntereses()
        RefrescarRentabilidadTotal()
    End Sub

    Private Sub txtPorcentajeComisionBolsaCompra_TextChanged(sender As Object, e As EventArgs) Handles txtPorcentajeComisionBolsaCompra.TextChanged
        RefrescarComisionBolsaCompra()
        RefrescarPorcentajeComisionBolsaVenta()

    End Sub

    Private Sub txtComisionBolsaCompra_TextChanged(sender As Object, e As EventArgs) Handles txtComisionBolsaCompra.TextChanged
        RefrescarMontoAPagarCompra()

    End Sub

    Private Sub txtComisionCasaCompra_TextChanged(sender As Object, e As EventArgs) Handles txtComisionCasaCompra.TextChanged
        RefrescarMontoAPagarCompra()

    End Sub

    Private Sub txtCostoTransferenciaCompra_TextChanged(sender As Object, e As EventArgs) Handles txtCostoTransferenciaCompra.TextChanged
        RefrescarMontoAPagarCompra()
    End Sub

    Private Sub dtpFechaLiquidacionVenta_ValueChanged(sender As Object, e As EventArgs) Handles dtpFechaLiquidacionVenta.ValueChanged
        'RefrescarUltimaFechaCuponVenta()
        RefrescarYTMAlVencimientoVenta()
        RefrescarDiasAcumuladosVenta()
        RefrescarDiasAlVencimientoVenta()
        RefrescarPLazoRO()
        RefrescarTablaIngresos()
    End Sub

    Private Sub dtpFechaVencimientoVenta_ValueChanged(sender As Object, e As EventArgs) Handles dtpFechaVencimientoVenta.ValueChanged
        'RefrescarUltimaFechaCuponVenta()
        RefrescarYTMAlVencimientoVenta()
        RefrescarDiasAlVencimientoVenta()

    End Sub

    Private Sub dtpUltimaFechaCuponVenta_ValueChanged(sender As Object, e As EventArgs) Handles dtpUltimaFechaCuponVenta.ValueChanged
        RefrescarSiguienteFechaCuponVenta()
        RefrescarDiasAcumuladosVenta()

    End Sub

    Private Sub txtYTMAlVencimientoVenta_TextChanged(sender As Object, e As EventArgs) Handles txtYTMAlVencimientoVenta.TextChanged
        RefrescarYTMAlVencimientoComisionVenta()

    End Sub

    Private Sub txtPorcentajeComisionCasaVenta_TextChanged(sender As Object, e As EventArgs) Handles txtPorcentajeComisionCasaVenta.TextChanged
        RefrescarYTMAlVencimientoComisionVenta()
        RefrescarComisionCasaVenta()

    End Sub

    Private Sub txtDiasAlVencimientoVenta_TextChanged(sender As Object, e As EventArgs) Handles txtDiasAlVencimientoVenta.TextChanged
        RefrescarYTMAlVencimientoComisionVenta()

    End Sub

    Private Sub txtPorcentajeComisionBolsaVenta_TextChanged(sender As Object, e As EventArgs) Handles txtPorcentajeComisionBolsaVenta.TextChanged
        RefrescarYTMAlVencimientoComisionVenta()
        RefrescarComisionBolsaVenta()

    End Sub

    Private Sub txtPorcentajeCuponVenta_TextChanged(sender As Object, e As EventArgs) Handles txtPorcentajeCuponVenta.TextChanged
        RefrescarYTMAlVencimientoVenta()
        RefrescarInteresAcumuladoVenta()

    End Sub

    Private Sub txtPrecioVenta_TextChanged(sender As Object, e As EventArgs) Handles txtPrecioVenta.TextChanged
        RefrescarYTMAlVencimientoVenta()
        RefrescarPrecioSucioVenta()
        RefrescarValorTransadoVenta()
        RefrescarPrecioVentaRO()
    End Sub

    Private Sub txtPrecioAlVencimientoVenta_TextChanged(sender As Object, e As EventArgs) Handles txtPrecioAlVencimientoVenta.TextChanged
        RefrescarYTMAlVencimientoVenta()

    End Sub

    Private Sub txtValorNominalVenta_TextChanged(sender As Object, e As EventArgs) Handles txtValorNominalVenta.TextChanged
        RefrescarInteresAcumuladoVenta()
        RefrescarPorcentajeInteresAcumuladoVenta()
        RefrescarValorTransadoVenta()

    End Sub

    Private Sub txtDiasAcumuladosVenta_TextChanged(sender As Object, e As EventArgs) Handles txtDiasAcumuladosVenta.TextChanged
        RefrescarInteresAcumuladoVenta()

    End Sub

    Private Sub txtInteresAcumuladoVenta_TextChanged(sender As Object, e As EventArgs) Handles txtInteresAcumuladoVenta.TextChanged
        RefrescarPorcentajeInteresAcumuladoVenta()
        RefrescarMontoARecibirVenta()
        RefrescarGananciaDeIntereses()
    End Sub

    Private Sub txtPorcentajeInteresAcumuladoVenta_TextChanged(sender As Object, e As EventArgs) Handles txtPorcentajeInteresAcumuladoVenta.TextChanged
        RefrescarPrecioSucioVenta()

    End Sub

    Private Sub txtValorTransadoVenta_TextChanged(sender As Object, e As EventArgs) Handles txtValorTransadoVenta.TextChanged
        RefrescarComisionCasaVenta()
        RefrescarComisionBolsaVenta()
        RefrescarMontoARecibirVenta()
        RefrescarGananciaDeCapital()
    End Sub

    Private Sub txtComisionBolsaVenta_TextChanged(sender As Object, e As EventArgs) Handles txtComisionBolsaVenta.TextChanged
        RefrescarMontoARecibirVenta()

    End Sub

    Private Sub txtComisionCasaVenta_TextChanged(sender As Object, e As EventArgs) Handles txtComisionCasaVenta.TextChanged
        RefrescarMontoARecibirVenta()

    End Sub

    Private Sub Label13_Click(sender As Object, e As EventArgs) Handles Label13.Click

    End Sub

    Private Sub cboAnioBaseC_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboAnioBaseC.SelectedIndexChanged
        RefrescarInteresAcumuladoCompra()
        RefrescarDiasAlVencimientoCompra()
        RefrescarDiasAcumuladosCompra()
        RefrescarRentabilidadPorGananciaDeCapital()
        RefrescarRentabilidadPorIntereses()
        RefrescarRentabilidadTotal()
        RefrescarTablaIngresos()
    End Sub

    Private Sub cboAnioBaseV_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboAnioBaseV.SelectedIndexChanged
        RefrescarInteresAcumuladoVenta()
        RefrescarDiasAlVencimientoVenta()
        RefrescarDiasAcumuladosVenta()
    End Sub
    Sub CargarPeriodos()
        Me.cboPeriodosC.DataSource = oDAOGeneral.ListaPeriodicidad
        Me.cboPeriodosC.ValueMember = "Codigo"
        Me.cboPeriodosC.DisplayMember = "Descripcion"
        Me.cboPeriodosC.SelectedIndex = -1

        Me.cboPeriodosV.DataSource = oDAOGeneral.ListaPeriodicidad
        Me.cboPeriodosV.ValueMember = "Codigo"
        Me.cboPeriodosV.DisplayMember = "Descripcion"
        Me.cboPeriodosV.SelectedIndex = -1
    End Sub

    Private Sub Label11_Click(sender As Object, e As EventArgs) Handles Label11.Click

    End Sub

    Private Sub cboPeriodosC_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboPeriodosC.SelectedIndexChanged
        RefrescarSiguienteFechaCuponCompra()
        RefrescarPorcentajeInteresAcumuladoCompra()
        RefrescarPeriodicidadVenta()
        RefrescarTablaIngresos()
    End Sub

    Private Sub cboPeriodosV_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboPeriodosV.SelectedIndexChanged
        RefrescarUltimaFechaCuponVenta()
        RefrescarSiguienteFechaCuponVenta()
        RefrescarPorcentajeInteresAcumuladoVenta()

    End Sub

    Private Sub txtPrecioCompra_Op_TextChanged(sender As Object, e As EventArgs) Handles txtPrecioCompra_Op.TextChanged

    End Sub

    Private Sub txtPrecioVenta_Op_TextChanged(sender As Object, e As EventArgs) Handles txtPrecioVenta_Op.TextChanged

    End Sub

    Private Sub txtGananciaPerdidaCapital_Op_TextChanged(sender As Object, e As EventArgs) Handles txtGananciaPerdidaCapital_Op.TextChanged
        RefrescarGananciaTotal()
        RefrescarRentabilidadPorGananciaDeCapital()
    End Sub

    Private Sub txtIngresosPorIntereses_Op_TextChanged(sender As Object, e As EventArgs) Handles txtIngresosPorIntereses_Op.TextChanged
        RefrescarGananciaTotal()
        RefrescarRentabilidadPorIntereses()

    End Sub

    Private Sub txtGananciaPerdidaTotal_Op_TextChanged(sender As Object, e As EventArgs) Handles txtGananciaPerdidaTotal_Op.TextChanged
        RefrescarRentabilidadTotal()

    End Sub

    Private Sub txtPlazo_Op_TextChanged(sender As Object, e As EventArgs) Handles txtPlazo_Op.TextChanged
        RefrescarRentabilidadPorGananciaDeCapital()
        RefrescarRentabilidadPorIntereses()
        RefrescarRentabilidadTotal()
    End Sub


    Function CalcularCupones() As DataTable
        Dim dtCupones As New DataTable
        Dim vFechaLiquidacionCompra As Date = GetFechaLiquidacionCompra()
        Dim vFechaLiquidacionVenta As Date = GetFechaLiquidacionVenta()
        Dim vSiguienteFechaCuponCompra As Date = GetSiguienteFechaCuponCompra()
        Dim vPeriodicidad As String = GetPeriodicidadCompra()
        Dim vValorNominalCompra As Double = GetValorNominalCompra()
        Dim vPorcentajeCuponCompra As Double = GetPorcentajeCuponCompra()
        Dim vAnioBaseCompra As Integer = GetDiasBaseCompra()
        Dim vColumnas As DataColumn
        Dim vFilas As DataRow

        Dim vEstaFecha As Date
        Dim vSiguienteFecha As Date
        Dim vDias As Integer
        Dim vValor As Double

        'CREAMOS COLUMNAS
        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Date)
        vColumnas.ColumnName = "FechaCupon"
        vColumnas.Caption = "Fecha Cupon"
        vColumnas.AllowDBNull = False
        dtCupones.Columns.Add(vColumnas)

        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Integer)
        vColumnas.ColumnName = "Dias"
        vColumnas.Caption = "Dias"
        vColumnas.AllowDBNull = False
        dtCupones.Columns.Add(vColumnas)

        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Double)
        vColumnas.ColumnName = "Valor"
        vColumnas.Caption = "Valor Cupon"
        vColumnas.AllowDBNull = False
        dtCupones.Columns.Add(vColumnas)

        vSiguienteFecha = vSiguienteFechaCuponCompra
        vDias = DateDiff(DateInterval.Day, vFechaLiquidacionCompra, vSiguienteFechaCuponCompra)

        Dim ControlBucle As Integer = 1

        While vSiguienteFecha <= vFechaLiquidacionVenta
            vEstaFecha = vSiguienteFecha
            vFilas = dtCupones.NewRow
            vFilas("FechaCupon") = vSiguienteFecha
            vFilas("Dias") = vDias

            Try
                vValor = vValorNominalCompra * vPorcentajeCuponCompra * vDias / vAnioBaseCompra
            Catch ex As Exception
                vValor = 0
            End Try

            vFilas("Valor") = vValor
            dtCupones.Rows.Add(vFilas)

            If vPeriodicidad = "S" Then
                vSiguienteFecha = vSiguienteFecha.AddMonths(6)
            ElseIf vPeriodicidad = "M" Then
                vSiguienteFecha = vSiguienteFecha.AddMonths(1)
            Else
                Exit While
            End If

            If vAnioBaseCompra = 360 Then
                vDias = Utilidades.Days360(vEstaFecha, vSiguienteFecha)
            Else
                vDias = DateDiff(DateInterval.Day, vEstaFecha, vSiguienteFecha)
            End If



        End While

        Try
            TotalValorCupones = dtCupones.Compute("SUM(Valor)", "")
        Catch ex As Exception
            TotalValorCupones = 0
        End Try

        Me.txtTotalIngresoCupones.Text = TotalValorCupones.ToString

        Return dtCupones
        dtCupones.Dispose()
    End Function

    Private Sub btnRefrescarIngresos_Click(sender As Object, e As EventArgs) Handles btnRefrescarIngresos.Click
        Me.dgvIngresos.DataSource = CalcularCupones()
    End Sub

    Sub RefrescarTablaIngresos()
        Me.dgvIngresos.DataSource = CalcularCupones()
    End Sub


    Function AmortizacionDeCapital() As DataTable
        Dim dtAmortizacionDeCapital As New DataTable
        Dim vColumnas As DataColumn
        Dim vFilas As DataRow
        Dim vSiguienteFecha As Date
        Dim vCesionDeFlujo As Double
        'AGREGO COLUMNAS

        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Date)
        vColumnas.ColumnName = "Fecha"
        vColumnas.Caption = "Fecha"
        vColumnas.AllowDBNull = False
        dtAmortizacionDeCapital.Columns.Add(vColumnas)

        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Double)
        vColumnas.ColumnName = "CesionDeFlujo"
        vColumnas.Caption = "Cesion De Flujo"
        vColumnas.AllowDBNull = False
        dtAmortizacionDeCapital.Columns.Add(vColumnas)

        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Double)
        vColumnas.ColumnName = "AmortDeCapEmis"
        vColumnas.Caption = "Amortización de Capital Emision"
        vColumnas.AllowDBNull = False
        dtAmortizacionDeCapital.Columns.Add(vColumnas)

        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Double)
        vColumnas.ColumnName = "InteresEmis"
        vColumnas.Caption = "Interes Emision"
        vColumnas.AllowDBNull = False
        dtAmortizacionDeCapital.Columns.Add(vColumnas)

        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Double)
        vColumnas.ColumnName = "PorcCapAmort"
        vColumnas.Caption = "Porcentaje Cap. Amortizado"
        vColumnas.AllowDBNull = False
        dtAmortizacionDeCapital.Columns.Add(vColumnas)

        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Double)
        vColumnas.ColumnName = "SaldoEmis"
        vColumnas.Caption = "Saldo Emision"
        vColumnas.AllowDBNull = False
        dtAmortizacionDeCapital.Columns.Add(vColumnas)

        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Integer)
        vColumnas.ColumnName = "Dias"
        vColumnas.Caption = "Dias"
        vColumnas.AllowDBNull = False
        dtAmortizacionDeCapital.Columns.Add(vColumnas)

        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Double)
        vColumnas.ColumnName = "Cuota"
        vColumnas.Caption = "Cuota"
        vColumnas.AllowDBNull = False
        dtAmortizacionDeCapital.Columns.Add(vColumnas)

        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Double)
        vColumnas.ColumnName = "AmortCap"
        vColumnas.Caption = "Amortizacion de Capital"
        vColumnas.AllowDBNull = False
        dtAmortizacionDeCapital.Columns.Add(vColumnas)

        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Double)
        vColumnas.ColumnName = "InteresTit"
        vColumnas.Caption = "Interes Titularizacion"
        vColumnas.AllowDBNull = False
        dtAmortizacionDeCapital.Columns.Add(vColumnas)

        vColumnas = New DataColumn
        vColumnas.DataType = GetType(Double)
        vColumnas.ColumnName = "SaldoTit"
        vColumnas.Caption = "Saldo Titularizacion"
        vColumnas.AllowDBNull = False
        dtAmortizacionDeCapital.Columns.Add(vColumnas)




        vSiguienteFecha = FechaEmision.AddMonths(1)
        vCesionDeFlujo = CesionFlujo1
        For i As Integer = 1 To NumeroPeriodosEmision
            vFilas = dtAmortizacionDeCapital.NewRow
            vFilas("Fecha") = vSiguienteFecha
            vFilas("CesionDeFlujo") = 1
            vFilas("AmortDeCapEmis") = 2
            vFilas("InteresEmis") = 3
            vFilas("PorcCapAmort") = 4
            vFilas("SaldoEmis") = 5
            vFilas("Dias") = 6
            vFilas("Cuota") = 7
            vFilas("AmortCap") = 8
            vFilas("InteresTit") = 9
            vFilas("SaldoTit") = 10
            dtAmortizacionDeCapital.Rows.Add(vFilas)





            vSiguienteFecha = FechaEmision.AddMonths(1)
        Next




        Return dtAmortizacionDeCapital
        dtAmortizacionDeCapital.Dispose()
    End Function

    Private Sub txtEmisionTotal_TextChanged(sender As Object, e As EventArgs) Handles txtEmisionTotal.TextChanged
        Double.TryParse(txtEmisionTotal.Text, EmisionTotal)
    End Sub

    Private Sub txtEmisionTotal_LostFocus(sender As Object, e As EventArgs) Handles txtEmisionTotal.LostFocus
        Double.TryParse(txtEmisionTotal.Text, EmisionTotal)
        txtEmisionTotal.Text = EmisionTotal.ToString(Configuraciones.CodigoTXTMontos)
    End Sub

    Private Sub txtTasaEmision_TextChanged(sender As Object, e As EventArgs) Handles txtTasaEmision.TextChanged
        Double.TryParse(txtTasaEmision.Text, TasaEmision)
    End Sub

    Private Sub txtTasaEmision_LostFocus(sender As Object, e As EventArgs) Handles txtTasaEmision.LostFocus
        Double.TryParse(txtTasaEmision.Text, TasaEmision)
        txtTasaEmision.Text = TasaEmision.ToString(Configuraciones.CodigoTXTPorcentaje)
    End Sub

    Private Sub txtPeriodicidadEmision_TextChanged(sender As Object, e As EventArgs) Handles txtPeriodicidadEmision.TextChanged
        Integer.TryParse(Me.txtPeriodicidadEmision.Text, PeriodicidadEmision)
    End Sub

    Private Sub txtPeriodosEmision_TextChanged(sender As Object, e As EventArgs) Handles txtPeriodosEmision.TextChanged
        Integer.TryParse(Me.txtPeriodosEmision.Text, NumeroPeriodosEmision)
    End Sub

    Private Sub txtMontoCompraEmision_TextChanged(sender As Object, e As EventArgs) Handles txtMontoCompraEmision.TextChanged
        Double.TryParse(Me.txtMontoCompraEmision.Text, MontoCompraEmision)
    End Sub

    Private Sub txtMontoCompraPrimario_TextChanged(sender As Object, e As EventArgs) Handles txtMontoCompraPrimario.TextChanged
        Double.TryParse(Me.txtMontoCompraPrimario.Text, MontoCompraPrimario)
    End Sub

    Private Sub txtCesionFlujo1_TextChanged(sender As Object, e As EventArgs) Handles txtCesionFlujo1.TextChanged
        Double.TryParse(Me.txtCesionFlujo1.Text, CesionFlujo1)
    End Sub

    Private Sub txtPeriodicidadEmision_LostFocus(sender As Object, e As EventArgs) Handles txtPeriodicidadEmision.LostFocus
        Integer.TryParse(Me.txtPeriodicidadEmision.Text, PeriodicidadEmision)
        Me.txtPeriodicidadEmision.Text = PeriodicidadEmision.ToString
    End Sub

    Private Sub txtPeriodosEmision_LostFocus(sender As Object, e As EventArgs) Handles txtPeriodosEmision.LostFocus
        Integer.TryParse(txtPeriodosEmision.Text, NumeroPeriodosEmision)
        txtPeriodosEmision.Text = NumeroPeriodosEmision.ToString
    End Sub

    Private Sub txtMontoCompraEmision_LostFocus(sender As Object, e As EventArgs) Handles txtMontoCompraEmision.LostFocus
        Double.TryParse(Me.txtMontoCompraEmision.Text, MontoCompraEmision)
        Me.txtMontoCompraEmision.Text = MontoCompraEmision.ToString(Configuraciones.CodigoTXTMontos)
    End Sub

    Private Sub txtMontoCompraPrimario_LostFocus(sender As Object, e As EventArgs) Handles txtMontoCompraPrimario.LostFocus
        Double.TryParse(txtMontoCompraPrimario.Text, MontoCompraPrimario)
        txtMontoCompraPrimario.Text = MontoCompraPrimario.ToString(Configuraciones.CodigoTXTMontos)
    End Sub

    Private Sub txtCesionFlujo1_LostFocus(sender As Object, e As EventArgs) Handles txtCesionFlujo1.LostFocus
        Double.TryParse(txtCesionFlujo1.Text, CesionFlujo1)
        txtCesionFlujo1.Text = CesionFlujo1.ToString(Configuraciones.CodigoTXTMontos)
    End Sub

    Private Sub dtpFechaEmision_ValueChanged(sender As Object, e As EventArgs) Handles dtpFechaEmision.ValueChanged
        FechaEmision = dtpFechaEmision.Value.Date
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        dgvAmortizacionDeCapital.DataSource = AmortizacionDeCapital()

    End Sub

    Private Sub label27_Click(sender As Object, e As EventArgs) Handles label27.Click

    End Sub

    Private Sub Label23_Click(sender As Object, e As EventArgs) Handles Label23.Click

    End Sub

    Private Sub Label25_Click(sender As Object, e As EventArgs) Handles Label25.Click

    End Sub

    Private Sub Label35_Click(sender As Object, e As EventArgs) Handles Label35.Click

    End Sub

    Private Sub Label26_Click(sender As Object, e As EventArgs) Handles Label26.Click

    End Sub

    Private Sub lblIngresosPorIntereses_Op_Click(sender As Object, e As EventArgs) Handles lblIngresosPorIntereses_Op.Click

    End Sub

    Private Sub Label24_Click(sender As Object, e As EventArgs) Handles Label24.Click

    End Sub

    Private Sub lblCostosTotales_Op_Click(sender As Object, e As EventArgs) Handles lblCostosTotales_Op.Click

    End Sub

    Private Sub lblGananciaPerdidaTotal_Op_Click(sender As Object, e As EventArgs) Handles lblGananciaPerdidaTotal_Op.Click

    End Sub

    Private Sub lblRendimientoGananciaPerdida_Op_Click(sender As Object, e As EventArgs) Handles lblRendimientoGananciaPerdida_Op.Click

    End Sub

    Private Sub lblRendimientoIntereses_Op_Click(sender As Object, e As EventArgs) Handles lblRendimientoIntereses_Op.Click

    End Sub

    Private Sub lblRendimientoAntesISR_Op_Click(sender As Object, e As EventArgs) Handles lblRendimientoAntesISR_Op.Click

    End Sub

    Private Sub lblRendimientoDespuesISR_Op_Click(sender As Object, e As EventArgs) Handles lblRendimientoDespuesISR_Op.Click

    End Sub

    Private Sub txtRendimientoDespuesISR_Op_TextChanged(sender As Object, e As EventArgs) Handles txtRendimientoDespuesISR_Op.TextChanged

    End Sub

    Private Sub txtRendimientoAntesISR_Op_TextChanged(sender As Object, e As EventArgs) Handles txtRendimientoAntesISR_Op.TextChanged

    End Sub

    Private Sub txtRendimientoIntereses_Op_TextChanged(sender As Object, e As EventArgs) Handles txtRendimientoIntereses_Op.TextChanged

    End Sub

    Private Sub txtRendimientoGananciaPerdida_Op_TextChanged(sender As Object, e As EventArgs) Handles txtRendimientoGananciaPerdida_Op.TextChanged

    End Sub

    Private Sub txtCostosTotales_Op_TextChanged(sender As Object, e As EventArgs) Handles txtCostosTotales_Op.TextChanged

    End Sub

    Private Sub txtValorNominal_Op_TextChanged(sender As Object, e As EventArgs) Handles txtValorNominal_Op.TextChanged

    End Sub
End Class