Public Class frmRegistroLetes 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 frmRegistroLetes_Load(sender As Object, e As EventArgs) Handles MyBase.Load If (CodigoInstrumento = "LETE") Then tablas = "LET0" ElseIf (CodigoInstrumento = "PBUR") Then tablas = "PBUR" ElseIf (CodigoInstrumento = "VCN") Then tablas = "VCN" 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 ValorNo, FechaOpe, FechaLiq, FechaVenc, PlazoInv, Casa, ComCasa, PorComCasa, ComBolsa, PorComBolsa, Periodicidad As New DataGridViewTextBoxColumn Dim Base, RendBruto, RendNeto, IngBruto, IngNeto, ValorTra, Precio, TotPagar As New DataGridViewTextBoxColumn ValorNo.Name = "Valor Nominal" FechaOpe.Name = "Fecha de Operacion" FechaLiq.Name = "Fecha de Liquidación" FechaVenc.Name = "Fecha de Vencimiento" PlazoInv.Name = "Plazo de Inversión" Casa.Name = "Casa Corredora" ComCasa.Name = "Comisión Casa" PorComCasa.Name = "Porcentaje Comisión Casa" ComBolsa.Name = "Comision Bolsa" PorComBolsa.Name = "Porcentaje Comisión Bolsa" Periodicidad.Name = "Periodicidad" Base.Name = "Dias Base" RendBruto.Name = "Rendimiento Bruto" RendNeto.Name = "Rendimiento Neto" IngBruto.Name = "Ingreso Bruto" IngNeto.Name = "Ingreso Neto" ValorTra.Name = "Valor Trasado" Precio.Name = "Precio" TotPagar.Name = "Total a Pagar" dgvLETES.Columns.Add(ValorNo) dgvLETES.Columns.Add(FechaOpe) dgvLETES.Columns.Add(FechaLiq) dgvLETES.Columns.Add(FechaVenc) dgvLETES.Columns.Add(PlazoInv) dgvLETES.Columns.Add(Casa) dgvLETES.Columns.Add(ComCasa) dgvLETES.Columns.Add(PorComCasa) dgvLETES.Columns.Add(ComBolsa) dgvLETES.Columns.Add(PorComBolsa) dgvLETES.Columns.Add(Periodicidad) dgvLETES.Columns.Add(Base) dgvLETES.Columns.Add(RendBruto) dgvLETES.Columns.Add(RendNeto) dgvLETES.Columns.Add(IngBruto) dgvLETES.Columns.Add(IngNeto) dgvLETES.Columns.Add(ValorTra) dgvLETES.Columns.Add(Precio) dgvLETES.Columns.Add(TotPagar) 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 RendNeto As String = "" Dim Prec As String = "" Dim ValTrasado As String = "" Dim CCasa As String = "" Dim CBolsa As String = "" Dim IngBruto As String = "" Dim TotPagar As String = "" Dim IngNeto As String = "" Dim Instrumento As String = "" Dim dr If (CodigoInstrumento = "LETE") Then Instrumento = "LETES" ElseIf (CodigoInstrumento = "PBUR") Then Instrumento = "PAPEL BURSATIL" ElseIf ((CodigoInstrumento = "VCN")) Then Instrumento = "Valores Comerciales" End If If (CodigoInstrumento = "LETE") Then dr = RegistroConsulta.CargarInvLETE(Cod, Inicio, Final) ElseIf (CodigoInstrumento = "PBUR") Then dr = RegistroConsulta.CargarInvPBUR(Cod, Inicio, Final) ElseIf (CodigoInstrumento = "VCN") Then dr = RegistroConsulta.CargarInvVCN(Cod, Inicio, Final) End If While dr.Read Dim VRenBruto, VPlazo, VAnioBase, VValNom, VComisionCasa, VComisionBolsa VRenBruto = dr("RendBruto").ToString VPlazo = dr("Plazo").ToString VAnioBase = dr("AnioBase").ToString VValNom = dr("ValNom").ToString VComisionCasa = dr("ComisionCasa").ToString VComisionBolsa = dr("ComisionBolsa").ToString If (String.IsNullOrEmpty(VRenBruto)) Then VRenBruto = 0 End If If (String.IsNullOrEmpty(VPlazo)) Then VPlazo = 0 End If If (String.IsNullOrEmpty(VAnioBase)) Then VAnioBase = 365 End If If (String.IsNullOrEmpty(VValNom)) Then VValNom = 0 End If If (String.IsNullOrEmpty(VComisionCasa)) Then VComisionCasa = 0 End If If (String.IsNullOrEmpty(VComisionBolsa)) Then VComisionBolsa = 0 End If Prec = Precio(VRenBruto, VPlazo, VAnioBase) ValTrasado = ValorTrasado(VValNom, Prec) CCasa = ComisionCalculo(ValTrasado, VComisionCasa, VPlazo, VAnioBase) CBolsa = ComisionCalculo(ValTrasado, VComisionBolsa, VPlazo, VAnioBase) IngBruto = IngresoBruto(VValNom, ValTrasado) TotPagar = TotalPagar(ValTrasado, CCasa, CBolsa) IngNeto = IngresoNeto(VValNom, TotPagar) RendNeto = RendimientoNeto(VValNom, TotPagar, VPlazo, VAnioBase) 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) Then TiposMercado = pair.Value Exit For ElseIf (String.IsNullOrEmpty(dr("TipoMerc").ToString)) Then TiposMercado = " ---- ---- ---- ---- " Exit For End If Next For Each pair In CodPais If (pair.Key.ToString = dr("CodPais").ToString) Then Pais = pair.Value Exit For ElseIf (String.IsNullOrEmpty(dr("CodPais").ToString)) Then Pais = " ---- ---- ---- ---- " Exit For End If Next For Each pair In ListaPeriodos If (pair.Key.ToString = dr("Periodicidad").ToString) Then Periodos = pair.Value ElseIf (String.IsNullOrEmpty(dr("Periodicidad").ToString)) Then Periodos = " ---- ---- ---- ---- " End If If (pair.Key.ToString = dr("Periodic").ToString) Then Periodos2 = pair.Value ElseIf (String.IsNullOrEmpty(dr("Periodic").ToString)) Then Periodos2 = " ---- ---- ---- ---- " End If Next For Each pair In ListaTipoTasa If (pair.Key.ToString = dr("TipTasa").ToString) Then TipoTasa = pair.Value Exit For ElseIf (String.IsNullOrEmpty(dr("TipTasa").ToString)) Then TipoTasa = " ---- ---- ---- ---- " Exit For End If Next For Each pair In ListaTipoRenta If (pair.Key.ToString = dr("TipRenta").ToString) Then TipoRenta = pair.Value Exit For ElseIf (String.IsNullOrEmpty(dr("TipRenta").ToString)) Then TipoRenta = " ---- ---- ---- ---- " Exit For End If Next For Each pair In ListaEstado If (pair.Key.ToString = dr("DocEst").ToString) Then Estado = pair.Value Exit For ElseIf (String.IsNullOrEmpty(dr("DocEst").ToString)) 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("ValNom"), dr("FOper"), dr("FLiq"), dr("FVenc"), dr("Plazo"), CasasCorredoras, dr("ComisionCasa"), CCasa, dr("ComisionBolsa"), CBolsa, Periodos2, dr("AnioBase"), dr("RendBruto"), RendNeto, IngBruto, IngNeto, ValTrasado, Prec, TotPagar) End While End Sub Function ValorTrasado(ByVal ValorNominal As Double, ByVal Precio As Double) If (Double.TryParse(ValorNominal, Nothing) And Double.TryParse(Precio, Nothing)) Then Return CDec(ValorNominal) * CDec(Precio) End If Return Nothing End Function Function Precio(ByVal RendimientoBruto As Double, ByVal PlazoInversion As Double, ByVal AnioBase As Integer) If (Double.TryParse(RendimientoBruto, Nothing) And Double.TryParse(PlazoInversion, Nothing)) Then Dim DatosOperacion As Double If (AnioBase = 0) Then AnioBase = 365 End If Dim Rendimiento = CDec(RendimientoBruto) Dim Plazo = CDec((PlazoInversion)) DatosOperacion = (1 - (Rendimiento / (1 + Rendimiento * Plazo / AnioBase)) * Plazo / AnioBase) Return DatosOperacion End If Return Nothing End Function Function ComisionCalculo(ByVal ValorTras As Double, ByVal ComisionDeCasa As Double, ByVal PlazoInversion As Double, ByVal AnioBase As Integer) If (Double.TryParse(ValorTras, Nothing) And Double.TryParse(ComisionDeCasa, Nothing) And Double.TryParse(PlazoInversion, Nothing)) Then Dim comision = (CDec(ValorTras) * CDec(ComisionDeCasa)) * (CDec(PlazoInversion) / AnioBase) Return comision End If Return Nothing End Function Function RendimientoNeto(ByVal ValorNominal As Double, ByVal TotalPagar As Double, ByVal PlazoInversion As Integer, ByVal AnioBase As Integer) If (Double.TryParse(ValorNominal, Nothing) And Double.TryParse(TotalPagar, Nothing) And Double.TryParse(PlazoInversion, Nothing)) Then If CDec(TotalPagar) = 0 Or CDec(PlazoInversion) = 0 Then Return 0 End If Dim RendimientoNet = ((CDec(ValorNominal) - CDec(TotalPagar)) / CDec(TotalPagar)) * (AnioBase / CDec(PlazoInversion)) Return RendimientoNet End If Return Nothing End Function Function IngresoBruto(ByVal ValorNominal As Double, ByVal ValorTrasado As Double) If (Double.TryParse(ValorNominal, Nothing) And Double.TryParse(ValorTrasado, Nothing)) Then Dim Bruto = CDec(ValorNominal) - CDec(ValorTrasado) Return Bruto End If Return Nothing End Function Function IngresoNeto(ByVal ValorNominal As Double, ByVal TotalPagar As Double) If (Double.TryParse(ValorNominal, Nothing) And Double.TryParse(TotalPagar, Nothing)) Then Dim Neto = CDec(ValorNominal) - CDec(TotalPagar) Return Neto End If Return Nothing End Function Function TotalPagar(ByVal ValorTrasado As Double, ByVal ComisionCasa As Double, ByVal ComisionBolsa As Double) If (Double.TryParse(ValorTrasado, Nothing) And Double.TryParse(ComisionCasa, Nothing) And Double.TryParse(ComisionBolsa, Nothing)) Then Dim Total = CDec(ValorTrasado) + CDec(ComisionCasa) + CDec(ComisionBolsa) Return Total End If Return Nothing End Function 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 Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs) End Sub End Class