Imports System.Data.SqlClient Public Class CertificadosDeInversionDAO Dim oDAOGeneral As New DAOGeneral Private Function SiguienteCodigo(ByVal oCE As CertificadoDeInversionCE) As String Dim retorno As String = String.Empty retorno = SeriesDAO.SiguienteCodigoInversion(oCE.CodigoEmpresa, oCE.CodigoInstrumentoFinanciero) Return retorno End Function Public Function Nuevo(ByVal oCE As CertificadoDeInversionCE) As Integer End Function Function Nuevo(ByVal oCE As CertificadoDeInversionCE, DocId As Integer, Tipo As String) As Integer Dim objCon As New Conexion Dim retorno As Integer = -1 Dim Transaccion As SqlTransaction Dim query As String Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If Dim Tabla As String = "" If Tipo = "P" Then Tabla = "PBON" End If If Tipo = "I" Then Tabla = "IBON" End If Dim cmd As SqlCommand = cn.CreateCommand Transaccion = cn.BeginTransaction("NuevoBono") cmd.Connection = cn cmd.Transaction = Transaccion query = "INSERT INTO [dbo].[PBON] ([DocId] ,[CodCasaC] ,[ValNomC] ,[UltFCupC] ,[SigFCupC] ,[FLiqC] ,[FVencC] ,[PorcCupC] ,[YMTVencComC] ,[YMTVencC] ,[PrecVencC] ,[PrecioCompra] ,[DiasBaseC] ,[DiasAcumC] ,[DiasVencC] ,[PorcIntAcumC] ,[IntAcumC] ,[PrecioSucioC] ,[ValTransC] ,[MontoPagarC] ,[CostoTransC] ,[CodCasaV] ,[ValNomV] ,[UltFCupV] ,[SigFCupV] ,[FLiqV] ,[FVencV] ,[PorcCupV] ,[YMTVencComV] ,[YMTVencV] ,[PrecVencV] ,[PrecioVenta] ,[DiasBaseV] ,[DiasAcumV] ,[DiasVencV] ,[PorcIntAcumV] ,[IntAcumV] ,[PrecioSucioV] ,[ValTransV] ,[MontoPagarV] ,[CostoTransV] ,[ValNomRO] ,[PlazoRO] ,[PrecioCompraRO] ,[PrecioVentaRO] ,[GanPerdCap] ,[IngrPorInt] ,[CostosTotales] ,[GanPerdTot] ,[RendGanPerd] ,[RendInt] ,[RendAntISR] ,[RendDespISR]) VALUES (@DocId ,@CodCasaC ,@ValNomC ,@UltFCupC ,@SigFCupC ,@FLiqC ,@FVencC ,@PorcCupC ,@YMTVencComC ,@YMTVencC ,@PrecVencC ,@PrecioCompra ,@DiasBaseC ,@DiasAcumC ,@DiasVencC ,@PorcIntAcumC ,@IntAcumC ,@PrecioSucioC ,@ValTransC ,@MontoPagarC ,@CostoTransC ,@CodCasaV ,@ValNomV ,@UltFCupV ,@SigFCupV ,@FLiqV ,@FVencV ,@PorcCupV ,@YMTVencComV ,@YMTVencV ,@PrecVencV ,@PrecioVenta ,@DiasBaseV ,@DiasAcumV ,@DiasVencV ,@PorcIntAcumV ,@IntAcumV ,@PrecioSucioV ,@ValTransV ,@MontoPagarV ,@CostoTransV ,@ValNomRO ,@PlazoRO ,@PrecioCompraRO ,@PrecioVentaRO ,@GanPerdCap ,@IngrPorInt ,@CostosTotales ,@GanPerdTot ,@RendGanPerd ,@RendInt ,@RendAntISR ,@RendDespISR )" cmd.CommandText = query With cmd.Parameters .Add("@DocId", SqlDbType.Int).Value = DocId '.Add("@CodCasaC", SqlDbType.VarChar).Value = oBono.CodigoCasaCompra .Add("@ValNomC", SqlDbType.Decimal).Value = oCE.ValorNominalCompra .Add("@UltFCupC", SqlDbType.DateTime).Value = oCE.UltimaFechaCuponCompra .Add("@SigFCupC", SqlDbType.DateTime).Value = oCE.SiguienteFechaCuponCompra .Add("@FLiqC", SqlDbType.DateTime).Value = oCE.FechaLiquidacionCompra .Add("@FVencC", SqlDbType.DateTime).Value = oCE.FechaVencimientoCompra .Add("@PorcCupC", SqlDbType.Decimal).Value = oCE.PorcentajeCuponCompra .Add("@YMTVencComC", SqlDbType.Decimal).Value = oCE.YTMAlVencimientoComisionCompra .Add("@YMTVencC", SqlDbType.Decimal).Value = oCE.YTMAlVencimientoCompra .Add("@PrecVencC", SqlDbType.Decimal).Value = oCE.PrecioAlVencimientoCompra .Add("@PrecioCompra", SqlDbType.Decimal).Value = oCE.PrecioCompra .Add("@DiasBaseC", SqlDbType.Int).Value = oCE.DiasBaseCompra .Add("@DiasAcumC", SqlDbType.Int).Value = oCE.DiasAcumuladosCompra .Add("@DiasVencC", SqlDbType.Int).Value = oCE.DiasAlVencimientoCompra .Add("@PorcIntAcumC", SqlDbType.Decimal).Value = oCE.PorcentajeInteresAcumuladoCompra .Add("@IntAcumC", SqlDbType.Decimal).Value = oCE.InteresAcumuladoCompra .Add("@PrecioSucioC", SqlDbType.Decimal).Value = oCE.PrecioSucioCompra .Add("@ValTransC", SqlDbType.Decimal).Value = oCE.ValorTransadoCompra .Add("@MontoPagarC", SqlDbType.Decimal).Value = oCE.MontoAPagarCompra .Add("@CostoTransC", SqlDbType.Decimal).Value = oCE.CostoDeTransferenciaCompra '.Add("@CodCasaV", SqlDbType.VarChar).Value = oBono.CodigoCasaVenta .Add("@ValNomV", SqlDbType.Decimal).Value = oCE.ValorNominalVenta .Add("@UltFCupV", SqlDbType.DateTime).Value = oCE.UltimaFechaCuponVenta .Add("@SigFCupV", SqlDbType.DateTime).Value = oCE.SiguienteFechaCuponVenta .Add("@FLiqV", SqlDbType.DateTime).Value = oCE.FechaLiquidacionVenta .Add("@FVencV", SqlDbType.DateTime).Value = oCE.FechaVencimientoVenta .Add("@PorcCupV", SqlDbType.Decimal).Value = oCE.PorcentajeCuponVenta .Add("@YMTVencComV", SqlDbType.Decimal).Value = oCE.YTMAlVencimientoComisionVenta .Add("@YMTVencV", SqlDbType.Decimal).Value = oCE.YTMAlVencimientoVenta .Add("@PrecVencV", SqlDbType.Decimal).Value = oCE.PrecioAlVencimientoVenta .Add("@PrecioVenta", SqlDbType.Decimal).Value = oCE.PrecioVenta .Add("@DiasBaseV", SqlDbType.Int).Value = oCE.DiasBaseVenta .Add("@DiasAcumV", SqlDbType.Int).Value = oCE.DiasAcumuladosVenta .Add("@DiasVencV", SqlDbType.Int).Value = oCE.DiasAlVencimientoVenta .Add("@PorcIntAcumV", SqlDbType.Decimal).Value = oCE.InteresAcumuladoPorcentajeVenta .Add("@IntAcumV", SqlDbType.Decimal).Value = oCE.InteresAcumuladoVenta .Add("@PrecioSucioV", SqlDbType.Decimal).Value = oCE.PrecioSucioVenta .Add("@ValTransV", SqlDbType.Decimal).Value = oCE.ValorTransadoVenta .Add("@MontoPagarV", SqlDbType.Decimal).Value = oCE.MontoARecibirVenta .Add("@CostoTransV", SqlDbType.Decimal).Value = oCE.CostoDeTransferenciaVenta .Add("@ValNomRO", SqlDbType.Decimal).Value = oCE.ValorNominalRO .Add("@PlazoRO", SqlDbType.Decimal).Value = oCE.DiasPlazoRO .Add("@PrecioCompraRO", SqlDbType.Decimal).Value = oCE.PrecioCompraRO .Add("@PrecioVentaRO", SqlDbType.Decimal).Value = oCE.PrecioVentaRO .Add("@GanPerdCap", SqlDbType.Decimal).Value = oCE.GananciaPerdidaDeCapital .Add("@IngrPorInt", SqlDbType.Decimal).Value = oCE.IngresoPorInteres .Add("@CostosTotales", SqlDbType.Decimal).Value = oCE.CostosTotales .Add("@GanPerdTot", SqlDbType.Decimal).Value = oCE.GananciaPerdidaTotal .Add("@RendGanPerd", SqlDbType.Decimal).Value = oCE.RendimientoGananciaPerdida .Add("@RendInt", SqlDbType.Decimal).Value = oCE.RendimientoDeIntereses .Add("@RendAntISR", SqlDbType.Decimal).Value = oCE.RendimientoAntesImpuestos .Add("@RendDespISR", SqlDbType.Decimal).Value = oCE.RendimientoDespuesImpuestos End With Try cmd.ExecuteNonQuery() Transaccion.Commit() retorno = 0 Catch ex As Exception MsgBox("Error al Guardar Bono : " & ex.GetType.ToString) MsgBox("Mensaje: " & ex.Message) retorno = 1 Try Transaccion.Rollback() retorno = 2 Catch ex2 As Exception MsgBox("Error en Rollback: " & ex2.GetType.ToString) MsgBox("Mensaje Rollbak: " & ex2.Message) retorno = 3 End Try End Try cmd.Dispose() cn.Dispose() Return retorno End Function Public Sub CargarRegistro(ByVal oCE As CertificadoDeInversionCE, Tipo As String, IdRegistro As Integer) Dim objCon As New Conexion Dim drd As SqlDataReader Dim cmd As SqlCommand Dim sql As String Dim Tabla As String Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If If Tipo = "P" Then Tabla = "PBON" End If If Tipo = "I" Then Tabla = "IBON" End If sql = "SELECT * FROM [dbo].[" & Tabla & "] T0 WHERE T0.[DocId]=@DocId" cmd = New SqlCommand cmd.CommandText = sql cmd.Parameters.Add("@DocId", SqlDbType.Int).Value = IdRegistro cmd.Connection = cn drd = cmd.ExecuteReader If drd.HasRows Then 'SE ENCONTRO EL REGISTRO If drd.Read Then 'oBonos.CodigoCasaCompra = drd.Item("CodCasaC") oCE.ValorNominalCompra = drd.Item("ValNomC") oCE.UltimaFechaCuponCompra = drd.Item("UltFCupC") oCE.SiguienteFechaCuponCompra = drd.Item("SigFCupC") oCE.FechaLiquidacionCompra = drd.Item("FLiqC") oCE.FechaVencimientoCompra = drd.Item("FVencC") oCE.PorcentajeCuponCompra = drd.Item("PorcCupC") 'oBonos.YTMAlVencimientoComisionCompra = drd.Item("YTMVencComC") 'oBonos.YTMAlVencimientoCompra = drd.Item("YTMVencC") oCE.PrecioAlVencimientoCompra = drd.Item("PrecVencC") oCE.PrecioCompra = drd.Item("PrecioCompra") oCE.DiasBaseCompra = drd.Item("DiasBaseC") 'oBonos.DiasAcumuladosCompra = drd.Item("DiasAcumC") 'oBonos.DiasAlVencimientoCompra = drd.Item("DiasVencC") 'oBonos.PorcentajeInteresAcumuladoCompra = drd.Item("PorcIntAcumC") 'oBonos.InteresAcumuladoCompra = drd.Item("IntAcumC") 'oBonos.PrecioSucioCompra = drd.Item("PrecioSucioC") 'oBonos.ValorTransadoCompra = drd.Item("ValTransC") 'oBonos.MontoAPagarCompra = drd.Item("MontoPagarC") oCE.CostoDeTransferenciaCompra = drd.Item("CostoTransC") 'oBonos.CodigoCasaVenta = drd.Item("CodCasaV") oCE.ValorNominalVenta = drd.Item("ValNomV") oCE.UltimaFechaCuponVenta = drd.Item("UltFCupV") oCE.SiguienteFechaCuponVenta = drd.Item("SigFCupV") oCE.FechaLiquidacionVenta = drd.Item("FLiqV") oCE.FechaVencimientoVenta = drd.Item("FVencV") oCE.PorcentajeCuponVenta = drd.Item("PorcCupV") 'oBonos.YTMAlVencimientoComisionVenta = drd.Item("YTMVencComV") 'oBonos.YTMAlVencimientoVenta = drd.Item("YTMVencV") oCE.PrecioAlVencimientoVenta = drd.Item("PrecVencV") oCE.PrecioVenta = drd.Item("PrecioVenta") oCE.DiasBaseVenta = drd.Item("DiasBaseV") 'oBonos.DiasAcumuladosVenta = drd.Item("DiasAcumV") 'oBonos.DiasAlVencimientoVenta = drd.Item("DiasVencV") 'oBonos.PorcentajeInteresAcumuladoVenta = drd.Item("PorcIntAcumV") 'oBonos.InteresAcumuladoVenta = drd.Item("IntAcumV") 'oBonos.PrecioSucioVenta = drd.Item("PrecioSucioV") 'oBonos.ValorTransadoVenta = drd.Item("ValTransV") 'oBonos.MontoAPagarVenta = drd.Item("MontoPagarV") oCE.CostoDeTransferenciaVenta = drd.Item("CostoTransV") 'oBonos.ValorNominalRO = drd.Item("ValNomRO") 'oBonos.PlazoRO = drd.Item("PlazoRO") 'oBonos.PrecioCompraRO = drd.Item("PrecioCompraRO") 'oBonos.PrecioVentaRO = drd.Item("PrecioVentaRO") 'oBonos.GananciaPerdidaDeCapital = drd.Item("GanPerdCap") 'oBonos.IngresoPorInteres = drd.Item("IngrPorInt") 'oBonos.CostosTotales = drd.Item("CostosTotales") 'oBonos.GananciaPerdidaTotal = drd.Item("GanPerdTot") 'oBonos.RendimientoGananciaPerdida = drd.Item("RendGanPerd") 'oBonos.RendimientoDeIntereses = drd.Item("RendInt") 'oBonos.RendimientoAntesImpuestos = drd.Item("RendAntISR") 'oBonos.RendimientoDespuesImpuestos = drd.Item("RendDespISR") End If Else 'NO SE ENCONTRO EL REGISTRO End If drd.Close() cmd.Dispose() cn.Dispose() End Sub Public Function CargarRegistro(ByVal CodigoInversion As String, ByVal CodigoInstrumento As String) As Collection Dim objCon As New Conexion Dim oCE As CertificadoDeInversionCE Dim drd As SqlDataReader Dim cmd As SqlCommand Dim sql As String Dim Tabla As String Dim coleccion As New Collection Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If If (CodigoInstrumento = "CINV") Then Tabla = "CIN0" ElseIf (CodigoInstrumento = "TIT") Then Tabla = "TIT" ElseIf (CodigoInstrumento = "EURB") Then Tabla = "EURB0" ElseIf (CodigoInstrumento = "BONO") Then Tabla = "BON0" Else coleccion.Add(False) Return coleccion End If sql = "SELECT * FROM " + Tabla + " WHERE CodInv=@CodInv" cmd = New SqlCommand cmd.CommandText = sql cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodigoInversion cmd.Connection = cn Try drd = cmd.ExecuteReader Catch ex As Exception coleccion.Add(False) Return coleccion End Try If drd.HasRows Then 'SE ENCONTRO EL REGISTRO If drd.Read Then coleccion.Add(drd.Item("PeriodicC").ToString) coleccion.Add(drd.Item("ValNomC").ToString) coleccion.Add(drd.Item("UltFCupC").ToString) coleccion.Add(drd.Item("SigFCupC").ToString) coleccion.Add(drd.Item("FLiqC").ToString) coleccion.Add(drd.Item("FVencC").ToString) coleccion.Add(drd.Item("PorcCupC").ToString) coleccion.Add(drd.Item("PrecVencC").ToString) coleccion.Add(drd.Item("PrecioCompra").ToString) coleccion.Add(drd.Item("DiasBaseC").ToString) coleccion.Add(drd.Item("CostTransC").ToString) coleccion.Add(drd.Item("PeriodicV").ToString) coleccion.Add(drd.Item("ValNomV").ToString) coleccion.Add(drd.Item("UltFCupV").ToString) coleccion.Add(drd.Item("SigFCupV").ToString) coleccion.Add(drd.Item("FLiqV").ToString) coleccion.Add(drd.Item("FVencV").ToString) coleccion.Add(drd.Item("PorcCupV").ToString) coleccion.Add(drd.Item("PrecVencV").ToString) coleccion.Add(drd.Item("PrecioVenta").ToString) coleccion.Add(drd.Item("DiasBaseV").ToString) 'oCE.CostoDeTransferenciaVenta = drd.Item("CostoTransV") coleccion.Add(drd.Item("CupRecibidos").ToString) coleccion.Add(drd.Item("PorcCupC").ToString) coleccion.Add(drd.Item("PorcCupV").ToString) coleccion.Add(drd.Item("ComisionPorCompraCasa").ToString) coleccion.Add(drd.Item("ComisionPorCompraBolsa").ToString) coleccion.Add(drd.Item("ComisionPorVentaCasa").ToString) coleccion.Add(drd.Item("ComisionPorVentaBolsa").ToString) coleccion.Add(drd.Item("YTMCompra").ToString) coleccion.Add(drd.Item("YTMVenta").ToString) 'Çampos Extras (Calculados) coleccion.Add(drd.Item("DiasVenC").ToString) coleccion.Add(drd.Item("DiasVenV").ToString) coleccion.Add(drd.Item("DiasAcuC").ToString) coleccion.Add(drd.Item("DiasAcuV").ToString) coleccion.Add(drd.Item("YTMVenC").ToString) coleccion.Add(drd.Item("YTMVenV").ToString) coleccion.Add(drd.Item("IntPorAcuC").ToString) coleccion.Add(drd.Item("IntPorAcuV").ToString) coleccion.Add(drd.Item("IntAcuC").ToString) coleccion.Add(drd.Item("IntAcuV").ToString) coleccion.Add(drd.Item("PrecSucioC").ToString) coleccion.Add(drd.Item("PrecSucioV").ToString) coleccion.Add(drd.Item("ComisionCasaC").ToString) coleccion.Add(drd.Item("ComisionCasaV").ToString) coleccion.Add(drd.Item("ComisionBolsaC").ToString) coleccion.Add(drd.Item("ComisionBolsaV").ToString) coleccion.Add(drd.Item("ValTransC").ToString) coleccion.Add(drd.Item("ValTransV").ToString) coleccion.Add(drd.Item("MontoPagar").ToString) coleccion.Add(drd.Item("MontoRecibir").ToString) coleccion.Add(drd.Item("CupRecibidos").ToString) Else coleccion.Add(False) Return coleccion End If Else 'NO SE ENCONTRO EL REGISTRO coleccion.Add(False) Return coleccion End If drd.Close() cmd.Dispose() cn.Dispose() Return coleccion End Function Public Function ProcesoDatos(ByVal coleccion As Collection, ByVal Diccionario As Dictionary(Of Integer, Collection), ByVal CodigoInstrumento As String) As Integer Dim objCon As New Conexion Dim retorno As Integer Dim sql As String Dim cmd As SqlCommand Dim Tabla As String = String.Empty Dim TablaIngresos As String = String.Empty Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If Dim myTrans As SqlTransaction If (CodigoInstrumento = "CINV") Then Tabla = "CIN0" TablaIngresos = "CIN1" ElseIf (CodigoInstrumento = "TIT") Then Tabla = "TIT" ElseIf (CodigoInstrumento = "EURB") Then Tabla = "EURB0" TablaIngresos = "EURB1" ElseIf (CodigoInstrumento = "BONO") Then Tabla = "BON0" TablaIngresos = "BON1" Else Return 0 End If myTrans = cn.BeginTransaction() Try sql = "UPDATE " + Tabla + " SET [PeriodicC] = @PeriodicC ,[ValNomC] = @ValNomC ,[UltFCupC] = @UltFCupC ,[SigFCupC] = @SigFCupC ,[FLiqC] = @FLiqC ,[FVencC] = @FVencC ,[PorcCupC] = @PorcCupC ,[PrecVencC] = @PrecVencC ,[PrecioCompra] = @PrecioCompra ,[DiasBaseC] = @DiasBaseC ,[PeriodicV] = @PeriodicV ,[ValNomV] = @ValNomV ,[UltFCupV] = @UltFCupV ,[SigFCupV] = @SigFCupV ,[FLiqV] = @FLiqV ,[FVencV] = @FVencV ,[PorcCupV] = @PorcCupV ,[PrecVencV] = @PrecVencV ,[PrecioVenta] = @PrecioVenta ,[DiasBaseV] = @DiasBaseV ,[ComisionPorCompraCasa]=@ComisionPorCompraCasa ,[ComisionPorCompraBolsa]=@ComisionPorCompraBolsa ,[ComisionPorVentaCasa]=@ComisionPorVentaCasa ,[ComisionPorVentaBolsa]=@ComisionPorVentaBolsa ,[YTMCompra]=@YTMCompra ,[YTMVenta]=@YTMVenta ,[DiasVenC]=@DiasVenC ,[DiasVenV]=@DiasVenV ,[DiasAcuC]=@DiasAcuC ,[DiasAcuV]=@DiasAcuV ,[YTMVenC]=@YTMVenC ,[YTMVenV]=@YTMVenV ,[IntAcuC]=@IntAcuC ,[IntAcuV]=@IntAcuV ,[IntPorAcuC]=@IntPorAcuC ,[IntPorAcuV]=@IntPorAcuV ,[PrecSucioC]=@PrecSucioC ,[PrecSucioV]=@PrecSucioV ,[ComisionCasaC]=@ComisionCasaC ,[ComisionCasaV]=@ComisionCasaV ,[ComisionBolsaC]=@ComisionBolsaC ,[ComisionBolsaV]=@ComisionBolsaV ,[ValTransC]=@ValTransC ,[ValTransV]=@ValTransV ,[MontoPagar]=@MontoPagar ,[MontoRecibir]=@MontoRecibir ,[CostTransC]=@CostTransC ,[CupRecibidos]=@CupRecibidos WHERE [CodInv] = @CodInv " cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans With cmd.Parameters .Add("@PeriodicC", SqlDbType.VarChar).Value = coleccion(1).ToString() .Add("@ValNomC", SqlDbType.Float).Value = CDec(coleccion(2).ToString().TrimEnd("%")) .Add("@UltFCupC", SqlDbType.Date).Value = coleccion(3) .Add("@SigFCupC", SqlDbType.Date).Value = coleccion(4) .Add("@FLiqC", SqlDbType.Date).Value = coleccion(5) .Add("@FVencC", SqlDbType.Date).Value = coleccion(6) .Add("@PorcCupC", SqlDbType.Float).Value = CDec(coleccion(7).ToString().TrimEnd("%")) .Add("@PrecVencC", SqlDbType.Float).Value = CDec(coleccion(8).ToString().TrimEnd("%")) .Add("@PrecioCompra", SqlDbType.Float).Value = CDec(coleccion(9).ToString().TrimEnd("%")) .Add("@DiasBaseC", SqlDbType.Int).Value = CInt(coleccion(10).ToString().TrimEnd("%")) .Add("@PeriodicV", SqlDbType.VarChar).Value = coleccion(12).ToString() .Add("@ValNomV", SqlDbType.Float).Value = CDec(coleccion(13).ToString().TrimEnd("%")) .Add("@UltFCupV", SqlDbType.Date).Value = coleccion(14) .Add("@SigFCupV", SqlDbType.Date).Value = coleccion(15) .Add("@FLiqV", SqlDbType.Date).Value = coleccion(16) .Add("@FVencV", SqlDbType.Date).Value = coleccion(17) .Add("@PorcCupV", SqlDbType.Float).Value = CDec(coleccion(18).ToString().TrimEnd("%")) .Add("@PrecVencV", SqlDbType.Float).Value = CDec(coleccion(19).ToString().TrimEnd("%")) .Add("@PrecioVenta", SqlDbType.Float).Value = CDec(coleccion(20).ToString().TrimEnd("%")) .Add("@DiasBaseV", SqlDbType.Int).Value = CInt(coleccion(21).ToString().TrimEnd("%")) .Add("@CodInv", SqlDbType.VarChar).Value = coleccion(23).ToString() .Add("@ComisionPorCompraCasa", SqlDbType.Float).Value = coleccion(26).ToString() .Add("@ComisionPorCompraBolsa", SqlDbType.Float).Value = coleccion(27).ToString() .Add("@ComisionPorVentaCasa", SqlDbType.Float).Value = coleccion(28).ToString() .Add("@ComisionPorVentaBolsa", SqlDbType.Float).Value = coleccion(29).ToString() .Add("@YTMCompra", SqlDbType.Float).Value = coleccion(30).ToString() .Add("@YTMVenta", SqlDbType.Float).Value = coleccion(31).ToString() .Add("DiasVenC", SqlDbType.Int).Value = coleccion(32) .Add("@DiasVenV", SqlDbType.Int).Value = coleccion(33) .Add("@DiasAcuC", SqlDbType.Int).Value = coleccion(34) .Add("@DiasAcuV", SqlDbType.Int).Value = coleccion(35) .Add("@YTMVenC", SqlDbType.Float).Value = coleccion(36) .Add("@YTMVenV", SqlDbType.Float).Value = coleccion(37) .Add("@IntAcuC", SqlDbType.Float).Value = coleccion(38) .Add("@IntAcuV", SqlDbType.Float).Value = coleccion(39) .Add("@IntPorAcuC", SqlDbType.Float).Value = coleccion(40) .Add("@IntPorAcuV", SqlDbType.Float).Value = coleccion(41) .Add("@PrecSucioC", SqlDbType.Float).Value = coleccion(42) .Add("@PrecSucioV", SqlDbType.Float).Value = coleccion(43) .Add("@ComisionCasaC", SqlDbType.Float).Value = coleccion(44) .Add("@ComisionCasaV", SqlDbType.Float).Value = coleccion(45) .Add("@ComisionBolsaC", SqlDbType.Float).Value = coleccion(46) .Add("@ComisionBolsaV", SqlDbType.Float).Value = coleccion(47) .Add("@ValTransC", SqlDbType.Float).Value = coleccion(48) .Add("@ValTransV", SqlDbType.Float).Value = coleccion(49) .Add("@MontoPagar", SqlDbType.Float).Value = coleccion(50) .Add("@MontoRecibir", SqlDbType.Float).Value = coleccion(51) .Add("@CostTransC", SqlDbType.Float).Value = coleccion(52) .Add("@CupRecibidos", SqlDbType.Float).Value = coleccion(53) End With retorno = cmd.ExecuteNonQuery If Not Diccionario Is Nothing And Not Diccionario.Count = 0 Then If Not String.IsNullOrEmpty(TablaIngresos) Then sql = "DELETE FROM " + TablaIngresos + " WHERE [CodInv]=@CodInv " cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo retorno = cmd.ExecuteNonQuery For Each DatosDiccionario In Diccionario Dim Coleccion2 As Collection = DatosDiccionario.Value sql = "INSERT INTO " + TablaIngresos + "( [CodInv] ,[NumCupon] ,[FechaCupon] ,[Dias] ,[Ingreso] ,[PorcImpuesto] ,[MontoImpuesto] ,[Liquido] ) VALUES( @CodInv ,@NumCupon ,@FechaCupon ,@Dias ,@Ingreso ,@PorcImpuesto ,@MontoImpuesto ,@Liquido ) " cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans With cmd.Parameters .Add("@CodInv", SqlDbType.VarChar).Value = Codigo .Add("@NumCupon", SqlDbType.VarChar).Value = Coleccion2(1) .Add("@FechaCupon", SqlDbType.DateTime).Value = Coleccion2(2) .Add("@Dias", SqlDbType.Int).Value = Coleccion2(3) .Add("@Ingreso", SqlDbType.Float).Value = Coleccion2(4) .Add("@PorcImpuesto", SqlDbType.Float).Value = Coleccion2(5) .Add("@MontoImpuesto", SqlDbType.Float).Value = Coleccion2(6) .Add("@Liquido", SqlDbType.Float).Value = Coleccion2(7) End With retorno = cmd.ExecuteNonQuery Next End If End If myTrans.Commit() MsgBox("Datos Actualizados") Catch ex As Exception myTrans.Rollback() MsgBox(ex.Message) End Try 'cn.Close() cn.Close() Return retorno End Function Public Function Nuevo(ByVal coleccion As Collection, ByVal CodigoInstrumento As String) As Integer Dim objCon As New Conexion Dim retorno As Integer Dim sql As String Dim cmd As SqlCommand Dim Tabla As String = String.Empty Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If If (CodigoInstrumento = "CINV") Then Tabla = "CIN0" ElseIf (CodigoInstrumento = "TIT") Then Tabla = "TIT" ElseIf (CodigoInstrumento = "EURB") Then Tabla = "EURB0" ElseIf (CodigoInstrumento = "BONO") Then Tabla = "BON0" End If If (Not String.IsNullOrEmpty(Tabla.ToString)) Then sql = "INSERT INTO " + Tabla + " ([CodInv] ,[PeriodicC] ,[ValNomC] ,[UltFCupC] ,[SigFCupC] ,[FLiqC] ,[FVencC] ,[PorcCupC] ,[PrecVencC] ,[PrecioCompra] ,[DiasBaseC] ,[PeriodicV] ,[ValNomV] ,[UltFCupV] ,[SigFCupV] ,[FLiqV] ,[FVencV] ,[PorcCupV] ,[PrecVencV] ,[PrecioVenta] ,[DiasBaseV] ,[ComisionPorCompraCasa] ,[ComisionPorCompraBolsa] ,[ComisionPorVentaCasa] ,[ComisionPorVentaBolsa] ,[YTMCompra] ,[YTMVenta] ,[DiasVenC] ,[DiasVenV] ,[DiasAcuC] ,[DiasAcuV] ,[YTMVenC] ,[YTMVenV] ,[IntAcuC] ,[IntAcuV] ,[IntPorAcuC] ,[IntPorAcuV] ,[PrecSucioC] ,[PrecSucioV] ,[ComisionCasaC] ,[ComisionCasaV] ,[ComisionBolsaC] ,[ComisionBolsaV] ,[ValTransC] ,[ValTransV] ,[MontoPagar] ,[MontoRecibir] ,[CostTransC] ,[CupRecibidos] ) VALUES( @CodInv ,@PeriodicC ,@ValNomC ,@UltFCupC ,@SigFCupC ,@FLiqC ,@FVencC ,@PorcCupC ,@PrecVencC ,@PrecioCompra ,@DiasBaseC ,@PeriodicV ,@ValNomV ,@UltFCupV ,@SigFCupV ,@FLiqV ,@FVencV ,@PorcCupV ,@PrecVencV ,@PrecioVenta ,@DiasBaseV ,@ComisionPorCompraCasa ,@ComisionPorCompraBolsa ,@ComisionPorVentaCasa ,@ComisionPorVentaBolsa ,@YTMCompra ,@YTMVenta ,@DiasVenC ,@DiasVenV ,@DiasAcuC ,@DiasAcuV ,@YTMVenC ,@YTMVenV ,@IntAcuC ,@IntAcuV ,@IntPorAcuC ,@IntPorAcuV ,@PrecSucioC ,@PrecSucioV ,@ComisionCasaC ,@ComisionCasaV ,@ComisionBolsaC ,@ComisionBolsaV ,@ValTransC ,@ValTransV ,@MontoPagar ,@MontoRecibir ,@CostTransC ,@CupRecibidos ) " cmd = New SqlCommand cmd.CommandText = sql 'Try With cmd.Parameters If (coleccion(1) Is Nothing) Then .Add("@PeriodicC", SqlDbType.VarChar).Value = "M" Else .Add("@PeriodicC", SqlDbType.VarChar).Value = coleccion(1).ToString() End If .Add("@ValNomC", SqlDbType.Float).Value = CDec(coleccion(2).ToString.Trim("%")) .Add("@UltFCupC", SqlDbType.Date).Value = coleccion(3) .Add("@SigFCupC", SqlDbType.Date).Value = coleccion(4) .Add("@FLiqC", SqlDbType.Date).Value = coleccion(5) .Add("@FVencC", SqlDbType.Date).Value = coleccion(6) .Add("@PorcCupC", SqlDbType.Float).Value = CDec(coleccion(7).ToString.Trim("%")) .Add("@PrecVencC", SqlDbType.Float).Value = CDec(coleccion(8).ToString.Trim("%")) .Add("@PrecioCompra", SqlDbType.Float).Value = CDec(coleccion(9).ToString.Trim("%")) If (coleccion(10) Is Nothing) Then .Add("@DiasBaseC", SqlDbType.Int).Value = 365 Else .Add("@DiasBaseC", SqlDbType.Int).Value = CInt(coleccion(10).ToString.Trim("%")) End If '.Add("@CostoTransC", SqlDbType.Float).Value = Trim(CDec(coleccion(11))) If (coleccion(12) Is Nothing) Then .Add("@PeriodicV", SqlDbType.VarChar).Value = "M" Else .Add("@PeriodicV", SqlDbType.VarChar).Value = coleccion(12).ToString() End If .Add("@ValNomV", SqlDbType.Float).Value = CDec(coleccion(13).ToString.Trim("%")) .Add("@UltFCupV", SqlDbType.Date).Value = coleccion(14) .Add("@SigFCupV", SqlDbType.Date).Value = coleccion(15) .Add("@FLiqV", SqlDbType.Date).Value = coleccion(16) .Add("@FVencV", SqlDbType.Date).Value = coleccion(17) .Add("@PorcCupV", SqlDbType.Float).Value = CDec(coleccion(18).ToString.Trim("%")) .Add("@PrecVencV", SqlDbType.Float).Value = CDec(coleccion(19).ToString.Trim("%")) .Add("@PrecioVenta", SqlDbType.Float).Value = CDec(coleccion(20).ToString.Trim("%")) If (coleccion(21) Is Nothing) Then .Add("@DiasBaseV", SqlDbType.Int).Value = 365 Else .Add("@DiasBaseV", SqlDbType.Int).Value = CInt(coleccion(21).ToString.Trim("%")) End If '.Add("@CostoTransV", SqlDbType.Float).Value = CDec(coleccion(22).ToString.Trim("%")) .Add("@CodInv", SqlDbType.VarChar).Value = coleccion(23).ToString() .Add("@ComisionPorCompraCasa", SqlDbType.Float).Value = coleccion(26).ToString() .Add("@ComisionPorCompraBolsa", SqlDbType.Float).Value = coleccion(27).ToString() .Add("@ComisionPorVentaCasa", SqlDbType.Float).Value = coleccion(28).ToString() .Add("@ComisionPorVentaBolsa", SqlDbType.Float).Value = coleccion(29).ToString() .Add("@YTMCompra", SqlDbType.Float).Value = coleccion(30).ToString() .Add("@YTMVenta", SqlDbType.Float).Value = coleccion(31).ToString() .Add("@DiasVenC", SqlDbType.Int).Value = coleccion(32) .Add("@DiasVenV", SqlDbType.Int).Value = coleccion(33) .Add("@DiasAcuC", SqlDbType.Int).Value = coleccion(34) .Add("@DiasAcuV", SqlDbType.Int).Value = coleccion(35) .Add("@YTMVenC", SqlDbType.Float).Value = coleccion(36) .Add("@YTMVenV", SqlDbType.Float).Value = coleccion(37) .Add("@IntAcuC", SqlDbType.Float).Value = coleccion(38) .Add("@IntAcuV", SqlDbType.Float).Value = coleccion(39) .Add("@IntPorAcuC", SqlDbType.Float).Value = coleccion(40) .Add("@IntPorAcuV", SqlDbType.Float).Value = coleccion(41) .Add("@PrecSucioC", SqlDbType.Float).Value = coleccion(42) .Add("@PrecSucioV", SqlDbType.Float).Value = coleccion(43) .Add("@ComisionCasaC", SqlDbType.Float).Value = coleccion(44) .Add("@ComisionCasaV", SqlDbType.Float).Value = coleccion(45) .Add("@ComisionBolsaC", SqlDbType.Float).Value = coleccion(46) .Add("@ComisionBolsaV", SqlDbType.Float).Value = coleccion(47) .Add("@ValTransC", SqlDbType.Float).Value = coleccion(48) .Add("@ValTransV", SqlDbType.Float).Value = coleccion(49) .Add("@MontoPagar", SqlDbType.Float).Value = coleccion(50) .Add("@MontoRecibir", SqlDbType.Float).Value = coleccion(51) .Add("@CostTransC", SqlDbType.Float).Value = coleccion(52) .Add("@CupRecibidos", SqlDbType.Float).Value = coleccion(53) End With cmd.Connection = cn retorno = cmd.ExecuteNonQuery MsgBox("Registro creado éxitosmente") 'Catch ex As Exception ' MsgBox("No se pudo ingresar los datos") 'End Try Else MsgBox("No se pudo ingresar los datos") retorno = 0 End If cn.Close() Return retorno End Function Public Sub Eliminar(ByVal Eliminar As String, ByVal CodigoInstrumento As String) Dim objCon As New Conexion Dim res As Integer Dim Tabla As String = String.Empty Dim TablaIngresos As String = String.Empty Dim TablaTIT1 As String = String.Empty Dim TablaTIT2 As String = String.Empty If (CodigoInstrumento = "CINV") Then Tabla = "CIN0" TablaIngresos = "CIN1" ElseIf (CodigoInstrumento = "TIT") Then Tabla = "TIT" TablaIngresos = "TIT0_0" TablaTIT1 = "TIT0" TablaTIT2 = "TIT2" ElseIf (CodigoInstrumento = "BONO") Then Tabla = "BON0" TablaIngresos = "BON1" ElseIf (CodigoInstrumento = "EURB") Then Tabla = "EURB0" TablaIngresos = "EURB1" End If Dim retorno As Integer Dim sql As String Dim cmd As SqlCommand Dim myTrans As SqlTransaction Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If myTrans = cn.BeginTransaction() Try sql = "DELETE FROM " + Tabla + " WHERE [CodInv]=@CodInv" cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo retorno = cmd.ExecuteNonQuery sql = "DELETE FROM " + TablaIngresos + " WHERE [CodInv]=@CodInv" cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo retorno = cmd.ExecuteNonQuery If (CodigoInstrumento = "TIT") Then sql = "DELETE FROM " + TablaTIT1 + " WHERE [CodInv]=@CodInv" cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo retorno = cmd.ExecuteNonQuery sql = "DELETE FROM " + TablaTIT2 + " WHERE [CodInv]=@CodInv" cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo retorno = cmd.ExecuteNonQuery End If myTrans.Commit() MsgBox("Datos Eliminados") Catch ex As Exception myTrans.Rollback() MsgBox(ex.Message) End Try cn.Close() End Sub Public Function GuardarIngreso(ByVal CodInversion As String, ByVal fecha As Date, ByVal Porcentaje As Double) Dim objCon As New Conexion Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If Dim numero = CInt(Numeracion()) Dim sql = "INSERT INTO CIN1([CodInv],[NumCupon],[FechaCupon],[PorcImpuesto]) values(@cod,@num,@fecha,@PorcImpuesto)" Dim comando = New SqlCommand() comando.CommandText = sql With comando.Parameters .Add("@cod", SqlDbType.VarChar).Value = CodInversion .Add("@num", SqlDbType.Int).Value = numero .Add("@fecha", SqlDbType.DateTime).Value = fecha .Add("@PorcImpuesto", SqlDbType.Float).Value = Porcentaje End With comando.Connection = cn Dim i As Integer = comando.ExecuteNonQuery() cn.Close() If (i > 0) Then Return True Else Return False End If End Function Public Function CargarData() Dim objCon As New Conexion Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If Dim sql = "select * from CIN1" Dim cmd As New SqlCommand(sql, cn) Dim dr As SqlDataReader dr = cmd.ExecuteReader Return dr End Function Public Function Numeracion() Dim objCon As New Conexion Dim sql = "select MAX(NumCupon) from CIN1" Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If Dim cmd As New SqlCommand(sql, cn) Dim numero = cmd.ExecuteScalar If (String.IsNullOrEmpty(numero.ToString)) Then numero = 0 Else numero = numero + 1 End If cn.Close() Return numero End Function Private Sub GuardarIngresos(ByVal CodInversion As String, ByVal dt As DataTable) Dim objCon As New Conexion Dim sql As String Dim cmd As SqlCommand Dim res As Integer Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If sql = "DELETE FROM [dbo].[CIN1] WHERE [CodInv]=@CodInv" cmd = New SqlCommand cmd.CommandText = sql cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodInversion cmd.Connection = cn res = cmd.ExecuteNonQuery sql = String.Empty If dt.Rows.Count > 0 Then For Each dr In dt.Rows cmd = New SqlCommand sql = "INSERT INTO [dbo].[CIN1] ([CodInv] ,[NumCupon] ,[FechaCupon] ,[Dias] ,[Ingreso] ,[PorcImpuesto] ,[MontoImpuesto] ,[Liquido] ) VALUES (@CodInv ,@NumCupon ,@FechaCupon ,@Dias ,@Ingreso ,@PorcImpuesto ,@MontoImpuesto ,@Liquido ) " cmd.CommandText = sql cmd.Parameters.AddWithValue("@CodInv", CodInversion) cmd.Parameters.AddWithValue("@NumCupon", dr("NumCupon")) cmd.Parameters.AddWithValue("@FechaCupon", dr("FechaCupon")) cmd.Parameters.AddWithValue("@Dias", dr("Dias")) cmd.Parameters.AddWithValue("@Ingreso", dr("Ingreso")) cmd.Parameters.AddWithValue("@PorcImpuesto", dr("PorcImpuesto")) cmd.Parameters.AddWithValue("@MontoImpuesto", dr("MontoImpuesto")) cmd.Parameters.AddWithValue("@Liquido", dr("MontoImpuesto")) cmd.Connection = cn res = cmd.ExecuteNonQuery Next End If cn.Close() End Sub Private Sub GuardarImpuestosYComisiones(ByVal CodInversion As String, ByVal dt As DataTable) Dim objCon As New Conexion Dim sql As String Dim cmd As SqlCommand Dim res As Integer Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If sql = "DELETE FROM [dbo].[CIN2] WHERE [CodInv]=@CodInv" cmd = New SqlCommand cmd.CommandText = sql cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodInversion cmd.Connection = cn res = cmd.ExecuteNonQuery sql = String.Empty If dt.Rows.Count > 0 Then For Each dr In dt.Rows cmd = New SqlCommand sql = "INSERT INTO [dbo].[CIN2] ([CodInv] ,[TipoOper] ,[CodImp] ,[PorcImp] ,[MontoImp] ,[MontoSujeto]) VALUES (@CodInv ,@TipoOper ,@CodImp ,@PorcImp ,@MontoImp ,@MontoSujeto)" cmd.CommandText = sql cmd.Parameters.AddWithValue("@CodInv", CodInversion) cmd.Parameters.AddWithValue("@TipoOper", dr("TipoOper")) cmd.Parameters.AddWithValue("@CodImp", dr("CodImp")) cmd.Parameters.AddWithValue("@PorcImp", dr("PorcImp")) cmd.Parameters.AddWithValue("@MontoImp", dr("MontoImp")) cmd.Parameters.AddWithValue("@MontoSujeto", dr("MontoSujeto")) cmd.Connection = cn res = cmd.ExecuteNonQuery Next End If cn.Close() End Sub End Class