Public Class frmSeleccionPoolTitulos Private Operaciones As New Operaciones Dim oDAOGeneral As New DAOGeneral Dim PoolTitulos As New PoolTitulosDAO Private Sub frmSeleccionPoolTitulos_Load(sender As Object, e As EventArgs) Handles MyBase.Load CargarCodigo() CargarInstrumentos() CargarEmpresas() OcultarColumnas() End Sub Sub OcultarColumnas() dgvTitulos.Columns("IdFlujo").Visible = False dgvTitulos.Columns("IdEspLR").Visible = False dgvTitulos.Columns("CodigoInstrumento").Visible = False dgvTitulos.Columns("CodigoEmpresa").Visible = False dgvTitulos.Columns("Estado").Visible = False dgvPool.Columns("IdFlujo").Visible = False dgvPool.Columns("IdEspLR").Visible = False dgvPool.Columns("Instrumento").Visible = False dgvPool.Columns("Empresa").Visible = False End Sub Sub CargarCodigo() Dim CodigoAsociacion As String = String.Empty CodigoAsociacion = PoolTitulos.NuevoCodigo() txtcodigo.Text = CodigoAsociacion End Sub Sub CargarInstrumentos() If Me.cboInstrumentos.Items.Count = 0 Or Me.cboInstrumentos.Items.Count = 1 Then Me.cboInstrumentos.DataSource = oDAOGeneral.ListaInstrumentos("Propuesta") Me.cboInstrumentos.DisplayMember = "Descripcion" Me.cboInstrumentos.ValueMember = "Codigo" Me.cboInstrumentos.SelectedIndex = 0 End If End Sub Private Sub CargarEmpresas() Me.cboEmpresa.DataSource = oDAOGeneral.ListaEmpresas Me.cboEmpresa.DisplayMember = "Descripcion" Me.cboEmpresa.ValueMember = "Codigo" Me.cboEmpresa.SelectedIndex = 0 End Sub Sub CargarDatosBusqueda() Dim ds As New DataSet Dim FechaOperacion1 As Date = Date.Today.Date Dim FechaOperacion2 As Date = Date.Today.Date Dim Empresa As String = "" Dim Instrumento As String = "" Dim Estado As String = "" If Not cboEmpresa.SelectedValue Is Nothing Then Empresa = cboEmpresa.SelectedValue.ToString() End If If Not cboInstrumentos.SelectedValue Is Nothing Then Instrumento = cboInstrumentos.SelectedValue.ToString() End If Dim TipoFecha As Integer = 0 If rdbVigente.Checked Then Estado = "A" End If If rdbFecha.Checked Then FechaOperacion1 = Format(dtpFechaOperacion.Value, "dd/MM/yyyy") ElseIf rdbRangoFechas.Checked Then FechaOperacion1 = Format(dtpFechaOperacion1.Value, "dd/MM/yyyy") FechaOperacion2 = Format(dtpFechaOperacion2.Value, "dd/MM/yyyy") TipoFecha = 1 Else TipoFecha = 2 End If If TipoFecha = 0 Then ds = PoolTitulos.FiltroReportoVenta(FechaOperacion1, "", Estado, Empresa, Instrumento) ElseIf TipoFecha = 1 Then ds = PoolTitulos.FiltroReportoVenta(FechaOperacion1, FechaOperacion2, Estado, Empresa, Instrumento) Else ds = PoolTitulos.FiltroReportoVenta("", "", Estado, Empresa, Instrumento) End If dgvTitulos.DataSource = ds.Tables(0) End Sub Private Sub dtpFechaOperacion_ValueChanged(sender As Object, e As EventArgs) Handles dtpFechaOperacion.ValueChanged CargarDatosBusqueda() End Sub Private Sub dtpFechaOperacion1_ValueChanged(sender As Object, e As EventArgs) Handles dtpFechaOperacion1.ValueChanged CargarDatosBusqueda() End Sub Private Sub dtpFechaOperacion2_ValueChanged(sender As Object, e As EventArgs) Handles dtpFechaOperacion2.ValueChanged CargarDatosBusqueda() End Sub Private Sub rdbVigente_CheckedChanged(sender As Object, e As EventArgs) Handles rdbVigente.CheckedChanged CargarDatosBusqueda() End Sub Private Sub rdbTodosVigencia_CheckedChanged(sender As Object, e As EventArgs) Handles rdbTodosVigencia.CheckedChanged CargarDatosBusqueda() End Sub Private Sub cboEmpresa_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboEmpresa.SelectedIndexChanged dgvPool.Rows.Clear() CargarDatosBusqueda() End Sub Private Sub cboInstrumentos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboInstrumentos.SelectedIndexChanged CargarDatosBusqueda() End Sub Sub VerDetalles() If MsgBox("¿Desea Ver los Detalles del Instrumento?", MsgBoxStyle.OkCancel) = DialogResult.OK Then If Not dgvTitulos.CurrentRow Is Nothing Then Dim Instrumento As String = String.Empty Dim codigo As String = String.Empty Instrumento = dgvTitulos.CurrentRow.Cells("CodigoInstrumento").Value.ToString codigo = dgvTitulos.CurrentRow.Cells("CodigoInversion").Value.ToString If Instrumento = "FINV" Then Variables.Codigo = codigo frmFOIN.ShowDialog() End If ''######################################################################### ''######################################################################### If Instrumento = "FUTU" Or Instrumento = "OPC" Then Variables.Codigo = codigo frmFuturos.ShowDialog() End If ''######################################################################### ''######################################################################### ''######################################################################### ''######################################################################### If Instrumento = "PPER" Then Variables.Codigo = codigo frmPrestamoPersonal.ShowDialog() End If ''######################################################################### ''######################################################################### ''######################################################################### ''######################################################################### If Instrumento = "PEMP" Then Variables.Codigo = codigo frmPrestamoEmpresariales.ShowDialog() End If ''######################################################################### ''######################################################################### ''######################################################################### ''######################################################################### If Instrumento = "LETE" Or Instrumento = "PBUR" Or Instrumento = "VCN" Or Instrumento = "CETE" Then Variables.Codigo = codigo frmLetes.ShowDialog() End If ''######################################################################### ''######################################################################### ''######################################################################### ''######################################################################### If Instrumento = "BONO" Or Instrumento = "CINV" Or Instrumento = "TIT" Or Instrumento = "EURB" Then Variables.Codigo = codigo frmCertificadosDeInversion.ShowDialog() End If ''######################################################################### ''######################################################################### If Instrumento = "DAP" Then Variables.Codigo = codigo frmDepositosAPlazo.Show() End If ''######################################################################### ''######################################################################### ''######################################################################### ''######################################################################### If Instrumento = "NEST" Then Variables.Codigo = codigo frmNotaEstructurada.ShowDialog() End If Else MsgBox("No se ha seleccionado ninguna fila") End If End If End Sub Private Sub dgvTitulos_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvTitulos.CellClick End Sub Private Sub btnVer_Click(sender As Object, e As EventArgs) Handles btnVer.Click VerDetalles() End Sub Sub PasarDatos() If txtMontoUsar.Text <= 0 Then MsgBox("El Monto no puede ser 0") Else Dim MontoUsado As Double = Operaciones.ConvertirDecimal(txtMontoUsar.Text.ToString) Dim MontoTotal As Double = Operaciones.ConvertirDecimal(dgvTitulos.CurrentRow.Cells("MontoActual").Value.ToString) If MontoUsado >= MontoTotal Then MsgBox("La Cantidad supera el monto disponible") txtMontoUsar.Text = MontoTotal * 0.95 Else If dgvTitulos.CurrentRow Is Nothing Then MsgBox("No se ha seleccionado ninguna fila") Else Dim CodigoTitulo As String = String.Empty Dim Instrumento As String = String.Empty Dim Empresa As String = String.Empty Dim NombreInstrumento As String = String.Empty Dim NombreEmpresa As String = String.Empty Dim Porcentaje As String = "0 %" Dim FechaCreacion As Date = Date.Now.Date Dim CodigoInversion As String = String.Empty Dim IdFlujo As Integer = 0 Dim IdEspLR As Integer = 0 Dim ExisteRegistro As Boolean = False Dim Total As Double = 0 CodigoTitulo = dgvTitulos.CurrentRow.Cells("CodigoInversion").Value.ToString Instrumento = dgvTitulos.CurrentRow.Cells("CodigoInstrumento").Value.ToString Empresa = dgvTitulos.CurrentRow.Cells("CodigoEmpresa").Value.ToString NombreEmpresa = dgvTitulos.CurrentRow.Cells("Empresa").Value.ToString NombreInstrumento = dgvTitulos.CurrentRow.Cells("Instrumento").Value.ToString Porcentaje = ((MontoUsado / MontoTotal) * 100).ToString + " %" IdFlujo = dgvTitulos.CurrentRow.Cells("IdFlujo").Value.ToString IdEspLR = dgvTitulos.CurrentRow.Cells("IdEspLR").Value.ToString For Each Rows As DataGridViewRow In dgvPool.Rows If Rows.Cells("CodigoTitulo").Value.ToString = CodigoTitulo Then ExisteRegistro = True End If Next If ExisteRegistro Then MsgBox("El Registro ya esta se esta usando") Else dgvPool.Rows.Add(CodigoTitulo, Instrumento, NombreInstrumento, Empresa, NombreEmpresa, MontoTotal, MontoUsado, Porcentaje, Format(FechaCreacion, "dd/MM/yyyy").ToString, IdFlujo, IdEspLR) End If End If End If End If End Sub Private Sub btnAgregar_Click(sender As Object, e As EventArgs) Handles btnAgregar.Click PasarDatos() End Sub Sub Guardar() If dgvPool.Rows.Count = 0 Then MsgBox("No se ha ingresado ninguna fila") Else Dim Valores As New Collection Valores = GuardarValores() PoolTitulos.ProcesoDatos(Valores) End If End Sub Function GuardarValores() As Collection Dim ColRegistros As New Collection Dim Tipo As String = String.Empty Dim CantidadFilas = dgvPool.Rows.Count - 1 Dim Index As Integer = 0 While (CantidadFilas >= Index) Dim DicRegistrosInstrumentos As New Dictionary(Of String, Object) Dim CodigoTitulo As String = dgvPool.Rows(Index).Cells("CodigoTitulo").Value.ToString Dim Instrumento As String = dgvPool.Rows(Index).Cells("Instrumento").Value.ToString Dim Empresa As String = dgvPool.Rows(Index).Cells("Empresa").Value.ToString Dim MontoTotal As Double = Operaciones.ConvertirDecimal(dgvPool.Rows(Index).Cells("MontoTotal").Value.ToString) Dim MontoUsado As Double = Operaciones.ConvertirDecimal(dgvPool.Rows(Index).Cells("MontoUsado").Value.ToString) Dim Porcentaje As Double = Operaciones.ConvertirDecimal(dgvPool.Rows(Index).Cells("Porcentaje").Value.ToString) Dim FechaCreacion As Date = Operaciones.ConvertirFecha(dgvPool.Rows(Index).Cells("FechaCreacion").Value.ToString) Dim Asociado As String = "No" Dim CodigoAsociacion As String = txtcodigo.Text.ToString Dim IdFlujo As Integer = Operaciones.ConvertirEntero(dgvPool.Rows(Index).Cells("IdFlujo").Value.ToString) Dim IdEspLR As Integer = Operaciones.ConvertirEntero(dgvPool.Rows(Index).Cells("IdEspLR").Value.ToString) ''AgregarCampos al Dicionario DicRegistrosInstrumentos.Add("CodigoTitulo", CodigoTitulo) DicRegistrosInstrumentos.Add("CodigoAsociacion", CodigoAsociacion) DicRegistrosInstrumentos.Add("Instrumento", Instrumento) DicRegistrosInstrumentos.Add("Empresa", Empresa) DicRegistrosInstrumentos.Add("MontoTotal", MontoTotal) DicRegistrosInstrumentos.Add("MontoUsado", MontoUsado) DicRegistrosInstrumentos.Add("Porcentaje", Porcentaje / 100) DicRegistrosInstrumentos.Add("FechaCreacion", FechaCreacion) DicRegistrosInstrumentos.Add("Asociado", Asociado) DicRegistrosInstrumentos.Add("IdFlujo", IdFlujo) DicRegistrosInstrumentos.Add("IdEspLR", IdEspLR) ColRegistros.Add(DicRegistrosInstrumentos) Index += 1 End While Return ColRegistros End Function Private Sub btnGenerarPool_Click(sender As Object, e As EventArgs) Handles btnGenerarPool.Click Guardar() frmColaTitulos.Inicializacion() frmColaTitulos.dgvDetalles.DataSource = Nothing Me.Close() End Sub Private Sub dgvTitulos_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvTitulos.CellContentClick End Sub Private Sub txtPorcentaje_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtMontoUsar.KeyPress If String.IsNullOrEmpty(txtMontoUsar.Text) Then If e.KeyChar = "." Then txtMontoUsar.Text = "0" Exit Sub End If End If If (Not txtMontoUsar.Text.ToString.IndexOf(".") = -1 And e.KeyChar = ".") Then Operaciones.ValidarEntrada(sender, e, True) Else Operaciones.ValidarEntrada(sender, e, False) End If End Sub Private Sub txtPorcentaje_KeyUp(sender As Object, e As KeyEventArgs) Handles txtMontoUsar.KeyUp If txtMontoUsar.Text = "." Then txtMontoUsar.Text = ".0" End If End Sub Private Sub txtPorcentaje_Leave(sender As Object, e As EventArgs) Handles txtMontoUsar.Leave End Sub Private Sub txtPorcentaje_TextChanged(sender As Object, e As EventArgs) Handles txtMontoUsar.TextChanged End Sub Private Sub txtcodigo_TextChanged(sender As Object, e As EventArgs) Handles txtcodigo.TextChanged End Sub Private Sub btnLimpiar_Click(sender As Object, e As EventArgs) Handles btnLimpiar.Click txtMontoUsar.Text = 0 dgvPool.Rows.Clear() End Sub End Class