Public Class frmRegistroFuturosOpciones
    Dim RegistroConsulta As New RegistrosDAO
    Dim Operaciones As New Operaciones
    Dim CodEmpr = Operaciones.CodEmpr
    Dim CodEmis = Operaciones.CodEmis
    Dim CodECalRi = Operaciones.CodECalRi
    Dim ListaPlazo = Operaciones.ListaPlazo
    Dim ListaTiposMercado = Operaciones.ListaTiposMercados
    Dim ListaPeriodos = Operaciones.ListaPeriodos
    Dim ListaTipoTasa = Operaciones.ListaTipoTasa
    Dim ListaTipoRenta = Operaciones.ListaTipoRenta
    Dim ListaEstado = Operaciones.ListaEstado
    Dim ListaCasasCorredoras = Operaciones.ListaCasasCorredoras
    Dim CodPais = Operaciones.CodPais
    Dim ValorCambiado As Boolean = False
    Dim Direccion As String = String.Empty
    Dim CodigoInstrumento As String = Variables.CodigoInstrumento
    Dim tablas As String


    Private Sub frmRegistroFuturosOpciones_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        If (CodigoInstrumento = "FUTU") Then
            tablas = "FUT0"
        ElseIf (CodigoInstrumento = "OPC") Then
            tablas = "OPC0"
        End If

        AgregarColumnasInv()
        AgregarColumnasIns()
        txtPosicion.Text = "1"
        txtConta.Text = RegistroConsulta.Contador(tablas)
        ValorCambiado = False
        Cargar(CodigoInstrumento, 1, 100)
    End Sub











    Sub AgregarColumnasInv()
        Dim Empresa, Instrumento, Emisor, CalRiesgo, Calif, Pais, TipoMercado, Nombre, Periodicidad, Plazo As New DataGridViewTextBoxColumn
        Dim CantidadPlazo, TipoRenta, TipoTasa, Numero, Fecha, Codigo, Estado As New DataGridViewTextBoxColumn
        Codigo.Name = "Codigo de Inversion"
        Empresa.Name = "Empresa"
        Instrumento.Name = "Instrumento"
        Emisor.Name = "Emisor"
        CalRiesgo.Name = "Calificadora Riesgo"
        Calif.Name = "Calificadora"
        Pais.Name = "Pais"
        TipoMercado.Name = "Tipo Mercado"
        Nombre.Name = "Nombre"
        Periodicidad.Name = "Periodicidad"
        CantidadPlazo.Name = "Cantidad Plazo"
        Plazo.Name = "Plazo"
        TipoRenta.Name = "Tipo de Renta"
        TipoTasa.Name = "Tipo de Tasa"
        Numero.Name = "Numero"
        Fecha.Name = "Fecha"
        Estado.Name = "Estado"



        dgvLETES.Columns.Add(Codigo)
        dgvLETES.Columns.Add(Estado)
        dgvLETES.Columns.Add(Empresa)
        dgvLETES.Columns.Add(Instrumento)
        dgvLETES.Columns.Add(Emisor)
        dgvLETES.Columns.Add(CalRiesgo)
        dgvLETES.Columns.Add(Calif)
        dgvLETES.Columns.Add(CantidadPlazo)
        dgvLETES.Columns.Add(Plazo)
        dgvLETES.Columns.Add(Fecha)
        dgvLETES.Columns.Add(TipoMercado)
        dgvLETES.Columns.Add(Pais)
        dgvLETES.Columns.Add(Nombre)
        dgvLETES.Columns.Add(Periodicidad)
        dgvLETES.Columns.Add(TipoTasa)
        dgvLETES.Columns.Add(TipoRenta)
        dgvLETES.Columns.Add(Numero)



    End Sub

    Sub AgregarColumnasIns()

        Dim FOperC, FLiqC, FVenC, VaUnidadC, ValorTransadoC, CoBrokerC, VaRecC, IdContratoC, CantidadContC, UnidadesContC As New DataGridViewTextBoxColumn
        Dim FOperV, FLiqV, FVenV, VaUnidadV, ValorTransadoV, CoBrokerV, VaRecV, IdContratoV, CantidadContV, UnidadesContV As New DataGridViewTextBoxColumn
        Dim GananciaPerdida, Rendimiento As New DataGridViewTextBoxColumn

        FOperC.Name = "Fecha Operaión Compra"
        FLiqC.Name = "Fecha Liquidación Compra"
        FVenC.Name = "Fecha Vencimiento Compra"
        VaUnidadC.Name = "Valor de Unidad Compra"
        ValorTransadoC.Name = "Valor Transado Compra"
        CoBrokerC.Name = "Comisión Broker Compra"
        VaRecC.Name = "Valor Recibido Compra"
        IdContratoC.Name = "Identificación del Contrato Compra"
        CantidadContC.Name = "Cantidad de Contratos Compra"
        UnidadesContC.Name = "Unidades de Contrato Compra"




        FOperV.Name = "Fecha Operaión Venta"
        FLiqV.Name = "Fecha Liquidación Venta"
        FVenV.Name = "Fecha Vencimiento Venta"
        VaUnidadV.Name = "Valor de Unidad Venta"
        ValorTransadoV.Name = "Valor Transado Venta"
        CoBrokerV.Name = "Comisión Broker Venta"
        VaRecV.Name = "Valor Recibido Venta"
        IdContratoV.Name = "Identificación del Contrato Venta"
        CantidadContV.Name = "Cantidad de Contratos Venta"
        UnidadesContV.Name = "Unidades de Contrato Venta"
        GananciaPerdida.Name = "Ganancia/Perdida"
        Rendimiento.Name = "Rendimiento"




        dgvLETES.Columns.Add(FOperC)
        dgvLETES.Columns.Add(FLiqC)
        dgvLETES.Columns.Add(FVenC)
        dgvLETES.Columns.Add(VaUnidadC)
        dgvLETES.Columns.Add(ValorTransadoC)
        dgvLETES.Columns.Add(CoBrokerC)
        dgvLETES.Columns.Add(VaRecC)
        dgvLETES.Columns.Add(IdContratoC)
        dgvLETES.Columns.Add(CantidadContC)
        dgvLETES.Columns.Add(UnidadesContC)
        dgvLETES.Columns.Add(FOperV)
        dgvLETES.Columns.Add(FLiqV)
        dgvLETES.Columns.Add(FVenV)
        dgvLETES.Columns.Add(VaUnidadV)
        dgvLETES.Columns.Add(ValorTransadoV)
        dgvLETES.Columns.Add(CoBrokerV)
        dgvLETES.Columns.Add(VaRecV)
        dgvLETES.Columns.Add(IdContratoV)
        dgvLETES.Columns.Add(CantidadContV)
        dgvLETES.Columns.Add(UnidadesContV)
        dgvLETES.Columns.Add(GananciaPerdida)
        dgvLETES.Columns.Add(Rendimiento)

    End Sub




    Sub Cargar(ByVal Cod As String, ByVal Inicio As Integer, ByVal Final As Integer)


        Dim CodigoEmpresa As String = " "
        Dim CodigoEmisor As String = " "
        Dim CodigoECal As String = " "
        Dim PlazoF As String = " "
        Dim TiposMercado As String = " "
        Dim Pais As String = " "
        Dim Periodos As String = " "
        Dim Periodos2 As String = " "
        Dim TipoTasa As String = " "
        Dim TipoRenta As String = " "
        Dim Estado As String = " "
        Dim CasasCorredoras As String = " "
        Dim codigo As String = Variables.Codigo
        Dim Instrumento As String
        Dim dr
        If (CodigoInstrumento = "FUTU") Then
            Instrumento = "Futuros"
            dr = RegistroConsulta.CargarInvFUTU(Cod, Inicio, Final)
        ElseIf (CodigoInstrumento = "OPC") Then
            Instrumento = "Opciones"
            dr = RegistroConsulta.CargarInvOPC(Cod, Inicio, Final)
        End If














        While dr.Read









            For Each pair In CodEmpr

                If (pair.Key.ToString = dr("CodEmpr").ToString) Then
                    CodigoEmpresa = pair.Value
                    Exit For
                ElseIf (String.IsNullOrEmpty(dr("CodEmpr").ToString)) Then
                    CodigoEmpresa = "    ----  ----  ----  ---- "
                    Exit For
                End If

            Next

            For Each pair In CodEmis

                If (pair.Key.ToString = dr("CodEmis").ToString) Then
                    CodigoEmisor = pair.Value
                    Exit For
                ElseIf (String.IsNullOrEmpty(dr("CodEmis").ToString)) Then
                    CodigoEmisor = "    ----  ----  ----  ---- "
                    Exit For
                End If
            Next

            For Each pair In CodECalRi


                If (pair.Key.ToString = dr("CodECalRi").ToString) Then
                    CodigoECal = pair.Value

                    Exit For
                ElseIf (String.IsNullOrEmpty(dr("CodECalRi").ToString)) Then
                    CodigoECal = "    ----  ----  ----  ---- "

                    Exit For
                End If
            Next

            For Each pair In ListaPlazo
                If (pair.Key.ToString = dr("PlazoFact").ToString) Then
                    PlazoF = pair.Value
                    Exit For
                ElseIf (String.IsNullOrEmpty(dr("PlazoFact").ToString)) Then
                    PlazoF = "    ----  ----  ----  ---- "
                    Exit For
                End If
            Next

            For Each pair In ListaTiposMercado





                If (pair.Key.ToString = dr("TipoMerc").ToString.TrimStart()) Then
                    TiposMercado = pair.Value

                    Exit For
                ElseIf (String.IsNullOrEmpty(dr("TipoMerc").ToString.TrimStart())) Then
                    TiposMercado = "    ----  ----  ----  ---- "

                    Exit For
                End If

            Next

            For Each pair In CodPais
                If (pair.Key.ToString = dr("CodPais").ToString.TrimStart()) Then
                    Pais = pair.Value
                    Exit For
                ElseIf (String.IsNullOrEmpty(dr("CodPais").ToString.TrimStart())) Then
                    Pais = "    ----  ----  ----  ---- "
                    Exit For
                End If
            Next

            For Each pair In ListaPeriodos
                If (pair.Key.ToString = dr("Periodicidad").ToString.TrimStart()) Then
                    Periodos = pair.Value

                ElseIf (String.IsNullOrEmpty(dr("Periodicidad").ToString.TrimStart())) Then
                    Periodos = "    ----  ----  ----  ---- "

                End If


            Next



            For Each pair In ListaTipoTasa
                If (pair.Key.ToString = dr("TipTasa").ToString.TrimStart()) Then
                    TipoTasa = pair.Value
                    Exit For
                ElseIf (String.IsNullOrEmpty(dr("TipTasa").ToString.TrimStart())) Then
                    TipoTasa = "    ----  ----  ----  ---- "
                    Exit For
                End If
            Next


            For Each pair In ListaTipoRenta
                If (pair.Key.ToString = dr("TipRenta").ToString.TrimStart()) Then
                    TipoRenta = pair.Value
                    Exit For
                ElseIf (String.IsNullOrEmpty(dr("TipRenta").ToString.TrimStart())) Then
                    TipoRenta = "    ----  ----  ----  ---- "
                    Exit For
                End If
            Next



            For Each pair In ListaEstado
                If (pair.Key.ToString = dr("DocEst").ToString.TrimStart()) Then
                    Estado = pair.Value
                    Exit For
                ElseIf (String.IsNullOrEmpty(dr("DocEst").ToString.TrimStart())) Then
                    Estado = "    ----  ----  ----  ---- "
                    Exit For
                End If
            Next


            '     For Each pair In ListaCasasCorredoras
            '          If (pair.Key.ToString = dr("CasasCorredoras").ToString) Then
            '   CasasCorredoras = pair.Value
            '    Exit For
            ' ElseIf (String.IsNullOrEmpty(dr("CasasCorredoras").ToString)) Then
            '    CasasCorredoras = "    ----  ----  ----  ---- "
            '      Exit For
            '   End If
            'Next

            'dgvReportes.Rows.Add(dr("CodInv"), Estado, CodigoEmpresa, "Reportos", CodigoEmisor, dr("CodCalRi"), CodigoECal, dr("Plazo"), PlazoF, dr("FechaDoc"), TiposMercado, Pais, dr("NombreManIF"), Periodos, TipoTasa, TipoRenta, dr("NumManInv"), "", dr("Nombre"), dr("FCompra"), dr("ValTrans"), dr("Dias"), dr("FVenc"), dr("Rend"), ComisionCasa, ComisionBolsa, IOF, 0, TotalCostos, MontoLiq, InteresGenerar, dr("CostoTransfr"), RendimientoAntes, ValorRecompra, Renta, IngresoNeto, ValorNeto, RendimientoDespues, "", PorcentajeComisionCasa, PorcentajeComisionBolsa, PorcentajeComisionIOF)
            dgvLETES.Rows.Add(dr("CodInv"), Estado, CodigoEmpresa, Instrumento, CodigoEmisor, dr("CodCalRi"), CodigoECal, dr("Plazo"), PlazoF, dr("FechaDoc"), TiposMercado, Pais, dr("NombreManIF"), Periodos, TipoTasa, TipoRenta, dr("NumManInv"), dr("FOperC"), dr("FLiqC"), dr("FVenC"), dr("VaUnidadC"), dr("ValorTransadoC"), dr("CoBrokerC"), dr("VaRecC"), dr("IdContratoC"), dr("CantContratoC"), dr("UniContraC"), dr("FOperV"), dr("FLiqV"), dr("FVenV"), dr("VaUnidadV"), dr("ValorTransadoV"), dr("CoBrokerV"), dr("VaRecV"), dr("IdContratoV"), dr("CantContratoV"), dr("UniContraV"), dr("GP"), dr("Rendimiento"))

        End While
    End Sub










    Private Sub navSiguienteRegistro_Click(sender As Object, e As EventArgs)
        Direccion = "D"
        Mover(Direccion)
        ValorCambiado = False
    End Sub










    Sub Mover(ByVal Direccion As String)
        Dim ReferenciaD = txtPosicion.Text + 1
        Dim ReferenciaI = txtPosicion.Text - 1
        Dim Cantidad = txtConta.Text
        Dim ValorExacto = txtPosicion.Text
        Dim Inicio, Final As Integer
        If (Direccion = "D") Then
            If (Cantidad >= ValorExacto) Then
                dgvLETES.Rows.Clear()
                If (Not ValorCambiado) Then
                    txtPosicion.Text = ReferenciaD
                    ValorCambiado = False
                End If

                Inicio = txtPosicion.Text - 1
                Inicio = Inicio * 100
                Final = Inicio + 100
                Cargar(CodigoInstrumento, Inicio, Final)

            Else
                MsgBox("Rango Fuera de Valor")
            End If
        ElseIf (Direccion = "I") Then
            If (ReferenciaI >= 1) Then
                dgvLETES.Rows.Clear()
                If (Not ValorCambiado) Then
                    If (Not ValorExacto = 1) Then
                        txtPosicion.Text = ReferenciaI

                    End If
                Else
                    ValorCambiado = False
                End If


                Inicio = txtPosicion.Text - 1
                Inicio = Inicio * 100
                Final = Inicio + 100
                Cargar(CodigoInstrumento, Inicio, Final)
            Else
                MsgBox("Rango Fuera de Valor")
            End If


        ElseIf (Direccion = "SD") Then
            Final = txtConta.Text * 100
            Inicio = Final - 100

            dgvLETES.Rows.Clear()
            Cargar(CodigoInstrumento, Inicio, Final)
            txtPosicion.Text = Cantidad
        ElseIf (Direccion = "SI") Then
            Final = 100
            Inicio = Final - 100

            dgvLETES.Rows.Clear()
            Cargar(CodigoInstrumento, Inicio, Final)
            txtPosicion.Text = 1
        End If




    End Sub

    Private Sub navRegistroAnterior_Click(sender As Object, e As EventArgs) Handles navRegistroAnterior.Click
        Direccion = "I"
        Mover(Direccion)
        ValorCambiado = False
    End Sub

    Private Sub txtPosicion_TextChanged(sender As Object, e As EventArgs) Handles txtPosicion.TextChanged
        ValorCambiado = True
    End Sub

    Private Sub navUltimoRegistro_Click(sender As Object, e As EventArgs) Handles navUltimoRegistro.Click
        Direccion = "SD"
        Mover(Direccion)
        ValorCambiado = False
    End Sub

    Private Sub navPrimerRegistro_Click(sender As Object, e As EventArgs) Handles navPrimerRegistro.Click
        Direccion = "SI"
        Mover(Direccion)
        ValorCambiado = False
    End Sub


End Class