Imports System.Data.SqlClient Public Class DAOPropuestaInversion Dim CambiarEstArbCE As New CambiarEstArbCE Dim da As SqlDataAdapter Dim Operaciones As New Operaciones 'Dim cmd As SqlCommand Function ExisteInstrumento(ByVal CodigoInversion As String) Dim objCon As New Conexion Dim valor As Double = 0 Dim cn As SqlClient.SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If Dim sql = "[dbo].[SP_ExisteTitulo]" Dim cmd As New SqlClient.SqlCommand(sql, cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Add("@CodigoInversion", SqlDbType.VarChar).Value = CodigoInversion valor = Operaciones.ConvertirDecimal(cmd.ExecuteScalar) cmd.Dispose() cn.Dispose() If valor = 0 Then Return False Else Return True End If End Function Public Function TraerMontosPrecio(ByVal Codigo As String) Dim objCon As New Conexion Dim diccionario As New Dictionary(Of String, Collection) Dim Coleccion As New Collection Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If Dim sql = "SP_CargarMontoPrecio" Dim cmd As New SqlCommand(sql, cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Add("@Codigo", SqlDbType.VarChar).Value = Codigo Dim dr As SqlDataReader Dim SumaVal As Double = 0 dr = cmd.ExecuteReader Dim CodigoEmpresa As String = String.Empty Dim CodigoInstrumento As String = String.Empty Dim MontoPrimario As Double = 0 Dim MontoSecundario As Double = 0 Dim PrecioV As Double = 0 Dim precioC As Double = 0 While dr.Read If String.IsNullOrEmpty(dr.GetName(0)) Then Return Coleccion End If CodigoEmpresa = dr("CodigoEmpresa") CodigoInstrumento = dr("CodigoInstrumento") If Not String.IsNullOrEmpty(dr("MontoPrimario").ToString) Then MontoPrimario = dr("MontoPrimario") End If If Not String.IsNullOrEmpty(dr("MontoSecundario").ToString) Then MontoSecundario = dr("MontoSecundario") End If If Not String.IsNullOrEmpty(dr("PrecioV").ToString) Then PrecioV = dr("PrecioV") End If If Not String.IsNullOrEmpty(dr("PrecioC").ToString) Then precioC = dr("PrecioC") End If If CodigoInstrumento.IndexOf("REPO") > -1 Then SumaVal += MontoPrimario Else Coleccion.Add(CodigoEmpresa) Coleccion.Add(CodigoInstrumento) Coleccion.Add(MontoPrimario) Coleccion.Add(MontoSecundario) Coleccion.Add(PrecioV) Coleccion.Add(precioC) Return Coleccion End If End While Coleccion.Add(CodigoEmpresa) Coleccion.Add(CodigoInstrumento) Coleccion.Add(SumaVal) Coleccion.Add(MontoSecundario) Coleccion.Add(PrecioV) Coleccion.Add(precioC) cn.Close() Return Coleccion End Function Public Function ListaPropuestasInversion() As DataSet Dim objCon As New Conexion Dim ds As New DataSet Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If da = New SqlDataAdapter("SP_PROPIN_SELECT", cn) da.Fill(ds, "PropuestasDeInversion") Return ds ds.Dispose() da.Dispose() cn.Dispose() End Function Public Function BuscarPropuestasInversion(ByVal ObjPropuesta As CEPropuestaInversion) As DataSet Dim objCon As New Conexion Dim ds As New DataSet Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If da = New SqlDataAdapter("SP_PROPIN_BUSQUEDA", cn) da.SelectCommand.CommandType = CommandType.StoredProcedure With da.SelectCommand.Parameters .Add("@CodigoPropuesta", SqlDbType.VarChar).Value = ObjPropuesta.CodigoInversion .Add("@Asunto", SqlDbType.VarChar).Value = ObjPropuesta.Asunto .Add("@Empresa", SqlDbType.VarChar).Value = ObjPropuesta.CodigoEmpresa .Add("@InstrumentoFinanciero", SqlDbType.VarChar).Value = ObjPropuesta.CodigoInstrumentoFinanciero .Add("@Emisor", SqlDbType.Int).Value = CInt(ObjPropuesta.CodigoEmisor) .Add("@CalificacionDeRiesgo", SqlDbType.VarChar).Value = ObjPropuesta.CodigoCalificacionDeRiesgo .Add("@CalificadoraDeRiesgo", SqlDbType.VarChar).Value = ObjPropuesta.CodigoEmpresaCalificadora .Add("@EstadoDocumento", SqlDbType.VarChar).Value = ObjPropuesta.EstadoDocumento .Add("@CodPais", SqlDbType.VarChar).Value = ObjPropuesta.Pais .Add("@TipoMerc", SqlDbType.VarChar).Value = ObjPropuesta.TipoMercado .Add("@Plazo", SqlDbType.Int).Value = ObjPropuesta.PlazoNumero .Add("@PlazoFact", SqlDbType.VarChar).Value = ObjPropuesta.PlazoFactor .Add("@MontoInv", SqlDbType.Float).Value = ObjPropuesta.MontoInversion .Add("@Precio", SqlDbType.Float).Value = ObjPropuesta.Precio .Add("@Rendimiento", SqlDbType.Float).Value = ObjPropuesta.Rendimiento .Add("@Ingresos", SqlDbType.Float).Value = ObjPropuesta.Ingresos .Add("@OFon", SqlDbType.VarChar).Value = ObjPropuesta.OrigenDeFondos .Add("@TipoOper", SqlDbType.VarChar).Value = ObjPropuesta.TipoOperacion .Add("@AutEstado", SqlDbType.VarChar).Value = ObjPropuesta.EstadoAutorizacion End With da.Fill(ds, "Resultado") Return ds ds.Dispose() da.Dispose() cn.Dispose() End Function Public Function BuscarPropuestasCodigo(ByVal DiccionarioColecciones As Dictionary(Of String, Collection)) As DataSet Dim objCon As New Conexion Dim ds As New DataSet Dim cn = objCon.Conectar Dim Col_Empresas As New Collection Dim Col_Emisor As New Collection Dim Col_EstDocumento As New Collection Dim Col_Instrumento As New Collection Dim Col_CalRiesgo As New Collection Dim Col_TipOperacion As New Collection Dim Col_OriFond As New Collection Dim Col_CalERiesgo As New Collection Dim Col_Aut As New Collection Dim Col_Plazo As New Collection Dim Col_Pais As New Collection Dim Col_TipMercado As New Collection For Each Item In DiccionarioColecciones If Item.Key = "Empresa" Then Col_Empresas = Item.Value ElseIf Item.Key = "Emisor" Then Col_Emisor = Item.Value ElseIf Item.Key = "EstDocumento" Then Col_EstDocumento = Item.Value ElseIf Item.Key = "Instrumento" Then Col_Instrumento = Item.Value ElseIf Item.Key = "CalRiesgo" Then Col_CalRiesgo = Item.Value ElseIf Item.Key = "TipOperacion" Then Col_TipOperacion = Item.Value ElseIf Item.Key = "OriFond" Then Col_OriFond = Item.Value ElseIf Item.Key = "CalERiesgo" Then Col_CalERiesgo = Item.Value ElseIf Item.Key = "Aut" Then Col_Aut = Item.Value ElseIf Item.Key = "Plazo" Then Col_Plazo = Item.Value ElseIf Item.Key = "Pais" Then Col_Pais = Item.Value ElseIf Item.Key = "TipMercado" Then Col_TipMercado = Item.Value End If Next Dim sql As String = "select CAST(DocId as varchar) as 'Id' ,CAST(CodInv as varchar) as 'Código de Propuesta' ,CAST(DocEst as varchar) as 'Estado' ,CAST(Asunto as varchar) as 'Asunto' ,CAST(CodEmpr as varchar) as 'Empresa' ,CAST(CodIF as varchar) as 'Instrumento Financiero' ,CAST(CodEmis as varchar) as 'Emisor' ,CAST(CodCalRi as varchar) as 'Calificación de Riesgo' ,CAST(CodECalRi as varchar) as 'Empresa Calificadora' ,CAST(OFon as varchar) as 'Origen de Fondos' ,CAST(Coment as varchar) as 'Comentarios' ,CAST(Just as varchar) as 'Justificaciones' ,CAST(TipoOper as varchar) as 'Tipo de Operacion' ,CAST(DocBase as varchar) as 'Base de Calculo' ,CAST(MontoInv as varchar) as 'Monto de Inversion' ,CAST(Precio as varchar) as 'Precio' ,CAST(Rendimiento as varchar) as 'Rendimiento' ,CAST(Plazo as varchar) as 'Cantidad en Plazo' ,CAST(PlazoFact as varchar) as 'Tipo de Plazo' ,CAST(Ingresos as varchar) as 'Ingresos' ,CAST(FechaDoc as varchar) as 'Fecha de Creación' ,CAST(AutEstado as varchar) as 'Estado de Autorización' ,CAST(TipoMerc as varchar) as 'Tipo de Mercado' ,CAST(CodPais as varchar) as 'Pais' from PIN0 where 1=1 " Dim TodosEmpresas As Boolean = False Dim TodosEmisor As Boolean = False Dim TodosEstDocumento As Boolean = False Dim TodosInstrumento As Boolean = False Dim TodosCalRiesgo As Boolean = False Dim TodosTipOperacion As Boolean = False Dim TodosOriFond As Boolean = False Dim TodosCalERiesgo As Boolean = False Dim TodosAut As Boolean = False Dim TodosPlazo As Boolean = False Dim TodosPais As Boolean = False Dim TodosTipMercado As Boolean = False For Each Item In Col_Empresas If Not Item.IndexOf("Todos") = -1 Then TodosEmpresas = True End If Next For Each Item In Col_Emisor If Not Item.IndexOf("Todos") = -1 Then TodosEmisor = True End If Next For Each Item In Col_EstDocumento If Not Item.IndexOf("Todos") = -1 Then TodosEstDocumento = True End If Next For Each Item In Col_Instrumento If Not Item.IndexOf("Todos") = -1 Then TodosInstrumento = True End If Next For Each Item In Col_CalRiesgo If Not Item.IndexOf("Todos") = -1 Then TodosCalRiesgo = True End If Next For Each Item In Col_TipOperacion If Not Item.IndexOf("Todos") = -1 Then TodosTipOperacion = True End If Next For Each Item In Col_OriFond If Not Item.IndexOf("Todos") = -1 Then TodosOriFond = True End If Next For Each Item In Col_CalERiesgo If Not Item.IndexOf("Todos") = -1 Then TodosCalERiesgo = True End If Next For Each Item In Col_Aut TodosAut = True Next For Each Item In Col_Plazo If Not Item.IndexOf("Todos") = -1 Then TodosPlazo = True End If Next For Each Item In Col_Pais If Not Item.IndexOf("Todos") = -1 Then TodosPais = True End If Next For Each Item In Col_TipMercado If Not Item.IndexOf("Todos") = -1 Then TodosTipMercado = True End If Next Dim OperadorLogico As String = String.Empty OperadorLogico = " And (" Dim Fin As String = String.Empty If Not TodosEmpresas Then For Each Item In Col_Empresas Dim Cadena As String = Col_Empresas.ToString Dim NombreItem As String = Item.ToString.Trim Dim ConsultaExtra As String = "" + OperadorLogico + " CodEmpr like '%" + NombreItem + "%'" sql += ConsultaExtra OperadorLogico = " Or" Fin = ")" Next If Not String.IsNullOrEmpty(Fin) Then sql += Fin End If Fin = String.Empty OperadorLogico = " And (" End If If Not TodosEmisor Then For Each Item In Col_Emisor Dim NombreItem As String = Item.ToString.Trim Dim ConsultaExtra As String = " " + OperadorLogico + " CodEmis like '%" + NombreItem + "%'" sql += ConsultaExtra OperadorLogico = " Or" Fin = ")" Next If Not String.IsNullOrEmpty(Fin) Then sql += Fin End If Fin = String.Empty OperadorLogico = " And (" End If If Not TodosEstDocumento Then For Each Item In Col_EstDocumento Dim NombreItem As String = Item.ToString.Trim Dim ConsultaExtra As String = " " + OperadorLogico + " DocEst like '%" + NombreItem + "%'" sql += ConsultaExtra OperadorLogico = " Or" Fin = ")" Next If Not String.IsNullOrEmpty(Fin) Then sql += Fin End If Fin = String.Empty OperadorLogico = " And (" End If If Not TodosInstrumento Then For Each Item In Col_Instrumento Dim NombreItem As String = Item.ToString.Trim Dim ConsultaExtra As String = " " + OperadorLogico + " CodIF like '%" + NombreItem + "%'" sql += ConsultaExtra OperadorLogico = " Or" Fin = ")" Next If Not String.IsNullOrEmpty(Fin) Then sql += Fin End If Fin = String.Empty OperadorLogico = " And (" End If If Not TodosCalRiesgo Then For Each Item In Col_CalRiesgo Dim NombreItem As String = Item.ToString.Trim Dim ConsultaExtra As String = " " + OperadorLogico + " CodCalRi like '%" + NombreItem + "%'" sql += ConsultaExtra OperadorLogico = " Or" Fin = ")" Next If Not String.IsNullOrEmpty(Fin) Then sql += Fin End If Fin = String.Empty OperadorLogico = " And (" End If If Not TodosTipOperacion Then For Each Item In Col_TipOperacion Dim NombreItem As String = Item.ToString.Trim Dim ConsultaExtra As String = "" + OperadorLogico + " TipoOper like '%" + NombreItem + "%'" sql += ConsultaExtra OperadorLogico = " Or" Fin = ")" Next If Not String.IsNullOrEmpty(Fin) Then sql += Fin End If Fin = String.Empty OperadorLogico = " And (" End If If Not TodosOriFond Then For Each Item In Col_OriFond Dim NombreItem As String = Item.ToString.Trim Dim ConsultaExtra As String = " " + OperadorLogico + " OFon like '%" + NombreItem + "%'" sql += ConsultaExtra OperadorLogico = " Or" Fin = ")" Next If Not String.IsNullOrEmpty(Fin) Then sql += Fin End If Fin = String.Empty OperadorLogico = " And (" End If If Not TodosCalERiesgo Then For Each Item In Col_CalERiesgo Dim NombreItem As String = Item.ToString.Trim Dim ConsultaExtra As String = " " + OperadorLogico + " CodECalRi like '%" + NombreItem + "%'" sql += ConsultaExtra OperadorLogico = " Or" Fin = ")" Next If Not String.IsNullOrEmpty(Fin) Then sql += Fin End If Fin = String.Empty OperadorLogico = " And (" End If If Not TodosAut Then For Each Item In Col_Aut Dim NombreItem As String = Item.ToString.Trim Dim ConsultaExtra As String = " " + OperadorLogico + " AutEstado like '%" + NombreItem + "%'" sql += ConsultaExtra OperadorLogico = " Or" Fin = ")" Next If Not String.IsNullOrEmpty(Fin) Then sql += Fin End If Fin = String.Empty OperadorLogico = " And (" End If If Not TodosPlazo Then For Each Item In Col_Plazo Dim NombreItem As String = Item.ToString.Trim Dim ConsultaExtra As String = " " + OperadorLogico + " PlazoFact like '%" + NombreItem + "%'" sql += ConsultaExtra OperadorLogico = " Or" Fin = ")" Next If Not String.IsNullOrEmpty(Fin) Then sql += Fin End If Fin = String.Empty OperadorLogico = " And (" End If If Not TodosPais Then For Each Item In Col_Pais Dim NombreItem As String = Item.ToString.Trim Dim ConsultaExtra As String = " " + OperadorLogico + " CodPais like '%" + NombreItem + "%'" sql += ConsultaExtra OperadorLogico = " Or" Fin = ")" Next If Not String.IsNullOrEmpty(Fin) Then sql += Fin End If Fin = String.Empty OperadorLogico = " And (" End If If Not TodosTipMercado Then For Each Item In Col_TipMercado Dim NombreItem As String = Item.ToString.Trim Dim ConsultaExtra As String = " " + OperadorLogico + " TipoMerc like '%" + NombreItem + "%'" sql += ConsultaExtra OperadorLogico = " Or" Fin = ")" Next If Not String.IsNullOrEmpty(Fin) Then sql += Fin End If Fin = String.Empty End If If cn Is Nothing Then cn = objCon.Conectar End If If cn.State = ConnectionState.Open Then cn.Close() cn.Dispose() cn = objCon.Conectar cn.Open() Else cn = objCon.Conectar cn.Open() End If da = New SqlDataAdapter(sql, cn) da.SelectCommand.CommandType = CommandType.Text da.Fill(ds, "Resultado") Return ds ds.Dispose() da.Dispose() cn.Dispose() End Function Public Function ListaEstadoDocumento() As DataSet Dim objCon As New Conexion Dim ds As New DataSet Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If da = New SqlDataAdapter("SP_ListaEstadoDocumento", cn) da.Fill(ds, "EstadosDocumento") da.Dispose() cn.Dispose() Return ds End Function Public Function NuevaPropuesta(ByVal ObjPropuesta As CEPropuestaInversion, ByVal CodigoAsociado As String, ByVal EstadoReporto As String, ByVal CodigoReporto As String, ByVal IdFlujo As Integer, ByVal IdECT As Integer) Dim objCon As New Conexion Dim Transaccion As SqlTransaction Dim query As String Dim Retornar As Boolean Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If If String.IsNullOrEmpty(CodigoAsociado) Then CodigoAsociado = String.Empty End If Dim Retorno As Integer Dim NuevoDocId As Integer Dim cmd As SqlCommand = cn.CreateCommand Transaccion = cn.BeginTransaction("NuevaPropuesta") cmd.Connection = cn cmd.Transaction = Transaccion 'TRAE ULTIMO DOCID cmd.CommandText = "SELECT ISNULL(MAX(DocId),0) FROM [dbo].[PIN0]" NuevoDocId = cmd.ExecuteScalar() NuevoDocId = NuevoDocId + 1 query = "INSERT INTO [dbo].[PIN0] ([CodInv] ,[DocEst] ,[Asunto] ,[CodEmpr] ,[CodIF] ,[CodEmis] ,[CodCalRi] ,[CodECalRi] ,[OFon] ,[Coment] ,[Just] ,[TipoOper] ,[MontoInv] ,[Precio] ,[Rendimiento] ,[Plazo] ,[PlazoFact] ,[Ingresos] ,[FechaDoc] ,[AutEstado] ,[TipoMerc] ,[CodPais] ,[TipoRenta] ,[TipoTasa] ,[Periodicidad] ,[NombreManual] ,[CodigoAsociado] ,[EstadoReporto] ) VALUES (@CodInv ,@DocEst ,@Asunto ,@CodEmpr ,@CodIF ,@CodEmis ,@CodCalRi ,@CodECalRi ,@OFon ,@Coment ,@Just ,@TipoOper ,@MontoInv ,@Precio ,@Rendimiento ,@Plazo ,@PlazoFact ,@Ingresos ,@FechaDoc ,@AutEstado ,@TipoMerc ,@CodPais ,@TipoRenta ,@TipoTasa ,@Periodicidad ,@NombreManual ,@CodigoAsociado ,@EstadoReporto )" cmd.CommandText = query With cmd.Parameters .Add("@CodInv", SqlDbType.VarChar).Value = ObjPropuesta.CodigoInversion.ToString .Add("@DocEst", SqlDbType.VarChar).Value = ObjPropuesta.EstadoDocumento.ToString .Add("@Asunto", SqlDbType.VarChar).Value = ObjPropuesta.Asunto.ToString .Add("@CodEmpr", SqlDbType.VarChar).Value = ObjPropuesta.CodigoEmpresa.ToString .Add("@CodIF", SqlDbType.VarChar).Value = ObjPropuesta.CodigoInstrumentoFinanciero.ToString .Add("@CodEmis", SqlDbType.Int).Value = ObjPropuesta.CodigoEmisor.ToString .Add("@CodCalRi", SqlDbType.VarChar).Value = ObjPropuesta.CodigoCalificacionDeRiesgo.ToString .Add("@CodECalRi", SqlDbType.VarChar).Value = ObjPropuesta.CodigoEmpresaCalificadora.ToString .Add("@OFon", SqlDbType.VarChar).Value = ObjPropuesta.OrigenDeFondos.ToString .Add("@Coment", SqlDbType.VarChar).Value = ObjPropuesta.Comentarios.ToString .Add("@Just", SqlDbType.VarChar).Value = ObjPropuesta.Justificacion.ToString .Add("@TipoOper", SqlDbType.VarChar).Value = ObjPropuesta.TipoOperacion.ToString .Add("@MontoInv", SqlDbType.Float).Value = ObjPropuesta.MontoInversion.ToString .Add("@Precio", SqlDbType.Float).Value = ObjPropuesta.Precio.ToString .Add("@Rendimiento", SqlDbType.Float).Value = ObjPropuesta.Rendimiento.ToString .Add("@Plazo", SqlDbType.Int).Value = ObjPropuesta.PlazoNumero.ToString .Add("@PlazoFact", SqlDbType.VarChar).Value = ObjPropuesta.PlazoFactor.ToString .Add("@Ingresos", SqlDbType.Float).Value = ObjPropuesta.Ingresos.ToString .Add("@FechaDoc", SqlDbType.Date).Value = ObjPropuesta.FechaDocumento.ToString .Add("@AutEstado", SqlDbType.VarChar).Value = ObjPropuesta.EstadoAutorizacion.ToString .Add("@TipoMerc", SqlDbType.VarChar).Value = ObjPropuesta.TipoMercado.ToString .Add("@CodPais", SqlDbType.VarChar).Value = ObjPropuesta.Pais.ToString .Add("@TipoRenta", SqlDbType.VarChar).Value = ObjPropuesta.TipoRenta.ToString .Add("@TipoTasa", SqlDbType.VarChar).Value = ObjPropuesta.TipoTasa.ToString .Add("@Periodicidad", SqlDbType.VarChar).Value = ObjPropuesta.Periodicidad.ToString .Add("@NombreManual", SqlDbType.VarChar).Value = ObjPropuesta.NombreManual.ToString .Add("@CodigoAsociado", SqlDbType.VarChar).Value = CodigoAsociado.ToString .Add("@EstadoReporto", SqlDbType.VarChar).Value = EstadoReporto.ToString End With cmd.CommandText = query cmd.Transaction = Transaccion Retorno = cmd.ExecuteNonQuery ''Ingresar codigo '#####################################################################' cmd = New SqlCommand query = " INSERT INTO TitEspApro( [CodigoAsociado] ,[CodigoReporto] ,[CodigoNuevoTitulo] ,[CodigoEstado] ,[Nombre] ,[Descrip] ,[IdFlujo] ,[IdECT] ) VALUES( @CodigoAsociado ,@CodigoReporto ,@CodigoNuevoTitulo ,@CodigoEstado ,@Nombre ,@Descrip ,@IdFlujo ,@IdECT )" cmd.CommandText = query With cmd.Parameters .Add("@CodigoAsociado", SqlDbType.VarChar).Value = CodigoAsociado.ToString .Add("@CodigoReporto", SqlDbType.VarChar).Value = CodigoReporto .Add("@CodigoNuevoTitulo", SqlDbType.VarChar).Value = ObjPropuesta.CodigoInversion.ToString .Add("@CodigoEstado", SqlDbType.VarChar).Value = "TG" .Add("@Nombre", SqlDbType.VarChar).Value = "Titulo Generado" .Add("@Descrip", SqlDbType.VarChar).Value = "Titulo Generado Esperando Aprobación" .Add("@IdFlujo", SqlDbType.Int).Value = IdFlujo .Add("@IdECT", SqlDbType.Int).Value = IdECT End With cmd.Connection = cn cmd.Transaction = Transaccion Retorno = cmd.ExecuteNonQuery query = "INSERT INTO [dbo].[Propuesta] ([CodigoPropuesta] ,[Nombre] ,[Descrip] ,[Estado] ) VALUES (@CodigoPropuesta ,@Nombre ,@Descrip ,@Estado )" cmd = New SqlCommand cmd.CommandText = query cmd.Connection = cn With cmd.Parameters .Add("@CodigoPropuesta", SqlDbType.VarChar).Value = ObjPropuesta.CodigoInversion.ToString .Add("@Nombre", SqlDbType.VarChar).Value = "ProCre" .Add("@Descrip", SqlDbType.VarChar).Value = "Propuesta de Inversion Inicial Creada" .Add("@Estado", SqlDbType.VarChar).Value = "En Propuesta" End With cmd.Transaction = Transaccion Retorno = cmd.ExecuteNonQuery Try Transaccion.Commit() MsgBox("Registro Guardado") Retornar = True frmColaTitulos.Inicializacion() Catch ex As Exception MsgBox("Error en Transaccion: " & ex.GetType.ToString) MsgBox("Mensaje: " & ex.Message) Try Transaccion.Rollback() Catch ex2 As Exception MsgBox("Error en Rollback: " & ex.GetType.ToString) MsgBox("Mensaje Rollbak: " & ex.Message) End Try Retornar = False End Try cmd.Dispose() da.Dispose() cn.Dispose() Return Retornar End Function Public Function NuevaPropuesta(ByVal ObjPropuesta As CEPropuestaInversion, ByVal TipoProcesoCMVTA As String, ByVal CodigoInversionCMVTA As String) Dim objCon As New Conexion Dim query As String Dim Retornar As Boolean Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If Dim myTrans As SqlTransaction myTrans = cn.BeginTransaction() Dim Retorno As Integer Dim cmd As SqlCommand = cn.CreateCommand 'TRAE ULTIMO DOCID 'cmd.CommandText = "SELECT ISNULL(MAX(DocId),0) FROM [dbo].[PIN0]" query = "INSERT INTO [dbo].[PIN0] ([CodInv] ,[DocEst] ,[Asunto] ,[CodEmpr] ,[CodIF] ,[CodEmis] ,[CodCalRi] ,[CodECalRi] ,[OFon] ,[Coment] ,[Just] ,[TipoOper] ,[MontoInv] ,[Precio] ,[Rendimiento] ,[Plazo] ,[PlazoFact] ,[Ingresos] ,[FechaDoc] ,[AutEstado] ,[TipoMerc] ,[CodPais] ,[TipoRenta] ,[TipoTasa] ,[Periodicidad] ,[NombreManual] ,[EstadoReporto] ) VALUES (@CodInv ,@DocEst ,@Asunto ,@CodEmpr ,@CodIF ,@CodEmis ,@CodCalRi ,@CodECalRi ,@OFon ,@Coment ,@Just ,@TipoOper ,@MontoInv ,@Precio ,@Rendimiento ,@Plazo ,@PlazoFact ,@Ingresos ,@FechaDoc ,@AutEstado ,@TipoMerc ,@CodPais ,@TipoRenta ,@TipoTasa ,@Periodicidad ,@NombreManual ,@EstadoReporto )" cmd = New SqlCommand cmd.CommandText = query cmd.Connection = cn cmd.Transaction = myTrans With cmd.Parameters .Add("@CodInv", SqlDbType.VarChar).Value = ObjPropuesta.CodigoInversion.ToString .Add("@DocEst", SqlDbType.VarChar).Value = ObjPropuesta.EstadoDocumento.ToString .Add("@Asunto", SqlDbType.VarChar).Value = ObjPropuesta.Asunto.ToString .Add("@CodEmpr", SqlDbType.VarChar).Value = ObjPropuesta.CodigoEmpresa.ToString .Add("@CodIF", SqlDbType.VarChar).Value = ObjPropuesta.CodigoInstrumentoFinanciero.ToString .Add("@CodEmis", SqlDbType.Int).Value = ObjPropuesta.CodigoEmisor.ToString .Add("@CodCalRi", SqlDbType.VarChar).Value = ObjPropuesta.CodigoCalificacionDeRiesgo.ToString .Add("@CodECalRi", SqlDbType.VarChar).Value = ObjPropuesta.CodigoEmpresaCalificadora.ToString .Add("@OFon", SqlDbType.VarChar).Value = ObjPropuesta.OrigenDeFondos.ToString .Add("@Coment", SqlDbType.VarChar).Value = ObjPropuesta.Comentarios.ToString .Add("@Just", SqlDbType.VarChar).Value = ObjPropuesta.Justificacion.ToString .Add("@TipoOper", SqlDbType.VarChar).Value = ObjPropuesta.TipoOperacion.ToString .Add("@MontoInv", SqlDbType.Float).Value = ObjPropuesta.MontoInversion.ToString .Add("@Precio", SqlDbType.Float).Value = ObjPropuesta.Precio.ToString .Add("@Rendimiento", SqlDbType.Float).Value = ObjPropuesta.Rendimiento.ToString .Add("@Plazo", SqlDbType.Int).Value = ObjPropuesta.PlazoNumero.ToString .Add("@PlazoFact", SqlDbType.VarChar).Value = ObjPropuesta.PlazoFactor.ToString .Add("@Ingresos", SqlDbType.Float).Value = ObjPropuesta.Ingresos.ToString .Add("@FechaDoc", SqlDbType.Date).Value = ObjPropuesta.FechaDocumento.ToString .Add("@AutEstado", SqlDbType.VarChar).Value = ObjPropuesta.EstadoAutorizacion.ToString .Add("@TipoMerc", SqlDbType.VarChar).Value = ObjPropuesta.TipoMercado.ToString .Add("@CodPais", SqlDbType.VarChar).Value = ObjPropuesta.Pais.ToString .Add("@TipoRenta", SqlDbType.VarChar).Value = ObjPropuesta.TipoRenta.ToString .Add("@TipoTasa", SqlDbType.VarChar).Value = ObjPropuesta.TipoTasa.ToString .Add("@Periodicidad", SqlDbType.VarChar).Value = ObjPropuesta.Periodicidad.ToString .Add("@NombreManual", SqlDbType.VarChar).Value = ObjPropuesta.NombreManual.ToString .Add("@EstadoReporto", SqlDbType.VarChar).Value = "PRIMARIO" End With cmd.CommandText = query Retorno = cmd.ExecuteNonQuery ''Ingresar codigo '#####################################################################' cmd = New SqlCommand query = "INSERT INTO [dbo].[Propuesta] ([CodigoPropuesta] ,[Nombre] ,[Descrip] ,[Estado] ) VALUES (@CodigoPropuesta ,@Nombre ,@Descrip ,@Estado )" cmd.CommandText = query cmd.Connection = cn cmd.Transaction = myTrans With cmd.Parameters .Add("@CodigoPropuesta", SqlDbType.VarChar).Value = ObjPropuesta.CodigoInversion.ToString .Add("@Nombre", SqlDbType.VarChar).Value = "ProCre" .Add("@Descrip", SqlDbType.VarChar).Value = "Propuesta de Inversion Inicial Creada" .Add("@Estado", SqlDbType.VarChar).Value = "En Propuesta" End With Retornar = cmd.ExecuteNonQuery ''############################################################### ''############################################################### If TipoProcesoCMVTA = "V" Then cmd = New SqlCommand query = "INSERT INTO [dbo].[OPERCMVTA] ([FechaOperacion] ,[CodigoInversionCompra] ,[CodigoInversionVenta] ,[TipoFlujo] ) VALUES (@FechaOperacion ,@CodigoInversionCompra ,@CodigoInversionVenta ,@TipoFlujo )" cmd.CommandText = query cmd.Connection = cn cmd.Transaction = myTrans With cmd.Parameters .Add("@FechaOperacion", SqlDbType.Date).Value = Date.Now.Date .Add("@CodigoInversionCompra", SqlDbType.VarChar).Value = CodigoInversionCMVTA .Add("@CodigoInversionVenta", SqlDbType.VarChar).Value = ObjPropuesta.CodigoInversion.ToString .Add("@TipoFlujo", SqlDbType.VarChar).Value = "C-V" End With Retornar = cmd.ExecuteNonQuery End If Try myTrans.Commit() MsgBox("Propuesta Guardada") Catch ex As Exception MsgBox("Error en Transaccion: " & ex.GetType.ToString) MsgBox("Mensaje: " & ex.Message) Try myTrans.Rollback() Catch ex2 As Exception MsgBox("Error en Rollback: " & ex.GetType.ToString) MsgBox("Mensaje Rollbak: " & ex.Message) End Try End Try cmd.Dispose() da.Dispose() cn.Dispose() Return Retornar End Function Public Function SoloNuevaPropuesta(ByVal ObjPropuesta As CEPropuestaInversion, ByVal CodigoPrincipal As String, ByVal CodigoSecundario As String) Dim objCon As New Conexion Dim Transaccion As SqlTransaction Dim query As String Dim Retornar As Boolean Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If Dim NuevoDocId As Integer Dim cmd As SqlCommand = cn.CreateCommand Transaccion = cn.BeginTransaction("NuevaPropuesta") cmd.Connection = cn cmd.Transaction = Transaccion 'TRAE ULTIMO DOCID cmd.CommandText = "SELECT ISNULL(MAX(DocId),0) FROM [dbo].[PIN0]" NuevoDocId = cmd.ExecuteScalar() NuevoDocId = NuevoDocId + 1 query = "INSERT INTO [dbo].[PIN0] ([CodInv] ,[VCodInv] ,[DocEst] ,[Asunto] ,[CodEmpr] ,[CodIF] ,[CodEmis] ,[CodCalRi] ,[CodECalRi] ,[OFon] ,[Coment] ,[Just] ,[TipoOper] ,[MontoInv] ,[Precio] ,[Rendimiento] ,[Plazo] ,[PlazoFact] ,[Ingresos] ,[FechaDoc] ,[AutEstado] ,[TipoMerc] ,[CodPais] ,[TipoRenta] ,[TipoTasa] ,[Periodicidad] ,[NombreManual] ) VALUES (@CodInv ,@VCodInv ,@DocEst ,@Asunto ,@CodEmpr ,@CodIF ,@CodEmis ,@CodCalRi ,@CodECalRi ,@OFon ,@Coment ,@Just ,@TipoOper ,@MontoInv ,@Precio ,@Rendimiento ,@Plazo ,@PlazoFact ,@Ingresos ,@FechaDoc ,@AutEstado ,@TipoMerc ,@CodPais ,@TipoRenta ,@TipoTasa ,@Periodicidad ,@NombreManual )" cmd.CommandText = query With cmd.Parameters .Add("@CodInv", SqlDbType.VarChar).Value = CodigoPrincipal .Add("@VCodInv", SqlDbType.VarChar).Value = CodigoSecundario .Add("@DocEst", SqlDbType.VarChar).Value = ObjPropuesta.EstadoDocumento.ToString .Add("@Asunto", SqlDbType.VarChar).Value = ObjPropuesta.Asunto.ToString .Add("@CodEmpr", SqlDbType.VarChar).Value = ObjPropuesta.CodigoEmpresa.ToString .Add("@CodIF", SqlDbType.VarChar).Value = ObjPropuesta.CodigoInstrumentoFinanciero.ToString .Add("@CodEmis", SqlDbType.Int).Value = ObjPropuesta.CodigoEmisor.ToString .Add("@CodCalRi", SqlDbType.VarChar).Value = ObjPropuesta.CodigoCalificacionDeRiesgo.ToString .Add("@CodECalRi", SqlDbType.VarChar).Value = ObjPropuesta.CodigoEmpresaCalificadora.ToString .Add("@OFon", SqlDbType.VarChar).Value = ObjPropuesta.OrigenDeFondos.ToString .Add("@Coment", SqlDbType.VarChar).Value = ObjPropuesta.Comentarios.ToString .Add("@Just", SqlDbType.VarChar).Value = ObjPropuesta.Justificacion.ToString .Add("@TipoOper", SqlDbType.VarChar).Value = ObjPropuesta.TipoOperacion.ToString .Add("@MontoInv", SqlDbType.Float).Value = ObjPropuesta.MontoInversion.ToString .Add("@Precio", SqlDbType.Float).Value = ObjPropuesta.Precio.ToString .Add("@Rendimiento", SqlDbType.Float).Value = ObjPropuesta.Rendimiento.ToString .Add("@Plazo", SqlDbType.Int).Value = ObjPropuesta.PlazoNumero.ToString .Add("@PlazoFact", SqlDbType.VarChar).Value = ObjPropuesta.PlazoFactor.ToString .Add("@Ingresos", SqlDbType.Float).Value = ObjPropuesta.Ingresos.ToString .Add("@FechaDoc", SqlDbType.Date).Value = ObjPropuesta.FechaDocumento.ToString .Add("@AutEstado", SqlDbType.VarChar).Value = ObjPropuesta.EstadoAutorizacion.ToString .Add("@TipoMerc", SqlDbType.VarChar).Value = ObjPropuesta.TipoMercado.ToString .Add("@CodPais", SqlDbType.VarChar).Value = ObjPropuesta.Pais.ToString .Add("@TipoRenta", SqlDbType.VarChar).Value = ObjPropuesta.TipoRenta.ToString .Add("@TipoTasa", SqlDbType.VarChar).Value = ObjPropuesta.TipoTasa.ToString .Add("@Periodicidad", SqlDbType.VarChar).Value = ObjPropuesta.Periodicidad.ToString .Add("@NombreManual", SqlDbType.VarChar).Value = ObjPropuesta.NombreManual.ToString End With cmd.ExecuteNonQuery() cmd = New SqlCommand query = "INSERT INTO [dbo].[Propuesta] ([CodigoPropuesta] ,[Nombre] ,[Descrip] ,[Estado] ) VALUES (@CodigoPropuesta ,@Nombre ,@Descrip ,@Estado )" cmd.CommandText = query cmd.Connection = cn cmd.Transaction = Transaccion With cmd.Parameters .Add("@CodigoPropuesta", SqlDbType.VarChar).Value = CodigoPrincipal .Add("@Nombre", SqlDbType.VarChar).Value = "ProCre" .Add("@Descrip", SqlDbType.VarChar).Value = "Propuesta de Inversion Inicial Creada" .Add("@Estado", SqlDbType.VarChar).Value = "En Propuesta" End With Retornar = cmd.ExecuteNonQuery Try Transaccion.Commit() MsgBox("Registro Guardado") Retornar = True Catch ex As Exception MsgBox("Error en Transaccion: " & ex.GetType.ToString) MsgBox("Mensaje: " & ex.Message) Try Transaccion.Rollback() Catch ex2 As Exception MsgBox("Error en Rollback: " & ex.GetType.ToString) MsgBox("Mensaje Rollbak: " & ex.Message) End Try Retornar = False End Try cmd.Dispose() da.Dispose() cn.Dispose() Return Retornar End Function Public Function IdRegistro(CodigoInversion As String) As Integer Dim objCon As New Conexion Dim vRetorno As Integer Dim sql As String Dim cmd As SqlCommand = New SqlCommand Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If sql = "SELECT DocId from [dbo].[PIN0] WHERE CodInv=@CodInv " cmd.CommandText = sql cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodigoInversion cmd.Connection = cn vRetorno = cmd.ExecuteScalar cn.Close() Return vRetorno End Function Public Function IdRegistroInversion(CodigoInversion As String) As Integer Dim objCon As New Conexion Dim vRetorno As Integer Dim sql As String Dim cmd As SqlCommand = New SqlCommand Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If sql = "SELECT DocId from [dbo].[INV0] WHERE CodInv=@CodInv " cmd.CommandText = sql cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodigoInversion cmd.Connection = cn vRetorno = cmd.ExecuteScalar cn.Close() Return vRetorno End Function Public Function IdPropuesta(CodigoInversion As String) As Integer Dim objCon As New Conexion Dim vRetorno As Integer Dim sql As String Dim cmd As SqlCommand = New SqlCommand Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If sql = "SELECT IdProInv from [dbo].[Propuesta] WHERE CodigoPropuesta=@CodigoPropuesta" cmd.CommandText = sql cmd.Parameters.Add("@CodigoPropuesta", SqlDbType.VarChar).Value = CodigoInversion cmd.Connection = cn vRetorno = cmd.ExecuteScalar cn.Close() Return vRetorno End Function Public Function CargarPropuesta(Id As Integer) As CEPropuestaInversion Dim objCon As New Conexion Dim oPropuesta As CEPropuestaInversion = New CEPropuestaInversion Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If Dim drd As SqlDataReader Try da = New SqlDataAdapter("SP_PROPIN_CARGAR", cn) da.SelectCommand.CommandType = CommandType.StoredProcedure With da.SelectCommand.Parameters .Add("@IdPropuesta", SqlDbType.Int).Value = Id End With drd = da.SelectCommand.ExecuteReader() If drd.HasRows Then oPropuesta.IdDeDocumento = Id End If If drd.Read Then oPropuesta.CodigoInversion = drd.Item("CodInv").ToString oPropuesta.EstadoDocumento = drd.Item("DocEst").ToString oPropuesta.TipoOperacion = drd.Item("TipoOper").ToString oPropuesta.Asunto = drd.Item("Asunto").ToString oPropuesta.CodigoEmpresa = drd.Item("CodEmpr").ToString oPropuesta.CodigoInstrumentoFinanciero = drd.Item("CodIF").ToString oPropuesta.CodigoEmisor = drd.Item("CodEmis").ToString oPropuesta.CodigoCalificacionDeRiesgo = drd.Item("CodCalRi").ToString oPropuesta.CodigoEmpresaCalificadora = drd.Item("CodECalRi").ToString oPropuesta.OrigenDeFondos = drd.Item("OFon").ToString oPropuesta.Justificacion = drd.Item("Just").ToString oPropuesta.Comentarios = drd.Item("Coment").ToString oPropuesta.MontoInversion = drd.Item("MontoInv").ToString oPropuesta.Precio = drd.Item("Precio").ToString oPropuesta.Rendimiento = drd.Item("Rendimiento").ToString oPropuesta.PlazoNumero = drd.Item("Plazo").ToString oPropuesta.PlazoFactor = drd.Item("PlazoFact").ToString oPropuesta.Ingresos = drd.Item("Ingresos").ToString oPropuesta.FechaDocumento = drd.Item("FechaDoc").ToString oPropuesta.EstadoAutorizacion = drd.Item("AutEstado").ToString oPropuesta.TipoMercado = drd.Item("TipoMerc").ToString oPropuesta.Pais = drd.Item("CodPais").ToString oPropuesta.TipoRenta = drd.Item("TipoRenta").ToString oPropuesta.TipoTasa = drd.Item("TipoTasa").ToString oPropuesta.Periodicidad = drd.Item("Periodicidad").ToString oPropuesta.NombreManual = drd.Item("NombreManual").ToString oPropuesta.IdFlujo = Operaciones.ConvertirDecimal(drd.Item("IdFlujo").ToString) oPropuesta.IdEA = Operaciones.ConvertirDecimal(drd.Item("IdEA").ToString) oPropuesta.EstadoReporto = drd.Item("EstadoReporto").ToString oPropuesta.CodigoAsociado = drd.Item("CodigoAsociado").ToString End If drd.Close() Catch ex As Exception MsgBox("Error", MsgBoxStyle.Critical) MsgBox(ex.Message) Finally da.Dispose() cn.Dispose() End Try Return oPropuesta End Function Public Function Actualizar(ByVal oPropuestaCE As CEPropuestaInversion, ByVal parametro As String, ByVal EstadoReporto As String) As Integer Dim objCon As New Conexion Dim retorno As Integer 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 cmd As SqlCommand = cn.CreateCommand Transaccion = cn.BeginTransaction("ActualizarPropuesta") Try cmd.Connection = cn cmd.Transaction = Transaccion query = "UPDATE [dbo].[PIN0] SET [CodInv] = @CodInv ,[DocEst] = @DocEst ,[Asunto] = @Asunto ,[CodEmpr] = @CodEmpr ,[CodIF] = @CodIF ,[CodEmis] = @CodEmis ,[CodCalRi] = @CodCalRi ,[CodECalRi] = @CodECalRi ,[OFon] = @OFon ,[Coment] = @Coment ,[Just] = @Just ,[TipoOper] = @TipoOper ,[MontoInv] = @MontoInv ,[Precio] = @Precio ,[Rendimiento] = @Rendimiento ,[Plazo] = @Plazo ,[PlazoFact] = @PlazoFact ,[Ingresos] = @Ingresos ,[FechaDoc] = @FechaDoc ,[AutEstado] = @AutEstado ,[TipoMerc] = @TipoMerc ,[CodPais] = @CodPais ,[TipoRenta]=@TipoRenta ,[TipoTasa]=@TipoTasa ,[Periodicidad]=@Periodicidad ,[NombreManual]=@NombreManual WHERE [CodInv] = @CodInv" cmd.CommandText = query With cmd.Parameters .Add("@DocId", SqlDbType.VarChar).Value = oPropuestaCE.IdDeDocumento .Add("@CodInv", SqlDbType.VarChar).Value = parametro .Add("@DocEst", SqlDbType.VarChar).Value = oPropuestaCE.EstadoDocumento .Add("@Asunto", SqlDbType.VarChar).Value = oPropuestaCE.Asunto .Add("@CodEmpr", SqlDbType.VarChar).Value = oPropuestaCE.CodigoEmpresa .Add("@CodIF", SqlDbType.VarChar).Value = oPropuestaCE.CodigoInstrumentoFinanciero .Add("@CodEmis", SqlDbType.Int).Value = oPropuestaCE.CodigoEmisor .Add("@CodCalRi", SqlDbType.VarChar).Value = oPropuestaCE.CodigoCalificacionDeRiesgo .Add("@CodECalRi", SqlDbType.VarChar).Value = oPropuestaCE.CodigoEmpresaCalificadora .Add("@OFon", SqlDbType.VarChar).Value = oPropuestaCE.OrigenDeFondos .Add("@Coment", SqlDbType.VarChar).Value = oPropuestaCE.Comentarios .Add("@Just", SqlDbType.VarChar).Value = oPropuestaCE.Justificacion .Add("@TipoOper", SqlDbType.VarChar).Value = oPropuestaCE.TipoOperacion .Add("@MontoInv", SqlDbType.Float).Value = oPropuestaCE.MontoInversion .Add("@Precio", SqlDbType.Float).Value = oPropuestaCE.Precio .Add("@Rendimiento", SqlDbType.Float).Value = oPropuestaCE.Rendimiento .Add("@Plazo", SqlDbType.Int).Value = oPropuestaCE.PlazoNumero .Add("@PlazoFact", SqlDbType.VarChar).Value = oPropuestaCE.PlazoFactor .Add("@Ingresos", SqlDbType.Float).Value = oPropuestaCE.Ingresos .Add("@FechaDoc", SqlDbType.Date).Value = oPropuestaCE.FechaDocumento .Add("@AutEstado", SqlDbType.VarChar).Value = oPropuestaCE.EstadoAutorizacion .Add("@TipoMerc", SqlDbType.VarChar).Value = oPropuestaCE.TipoMercado .Add("@CodPais", SqlDbType.VarChar).Value = oPropuestaCE.Pais .Add("@TipoRenta", SqlDbType.VarChar).Value = oPropuestaCE.TipoRenta.ToString .Add("@TipoTasa", SqlDbType.VarChar).Value = oPropuestaCE.TipoTasa.ToString .Add("@Periodicidad", SqlDbType.VarChar).Value = oPropuestaCE.Periodicidad.ToString .Add("@NombreManual", SqlDbType.VarChar).Value = oPropuestaCE.NombreManual.ToString End With retorno = cmd.ExecuteNonQuery() If oPropuestaCE.OrigenDeFondos = "REPOVENTA" Then EstadoReporto = "SECUNDARIO" End If If oPropuestaCE.EstadoAutorizacion = "C" Or oPropuestaCE.EstadoAutorizacion = "R" And EstadoReporto = "SECUNDARIO" Then Dim IniciarError As String = CambiarEstArbCE.ProcesarCambio(parametro, "CambiarRechazado", cn, Transaccion) If IniciarError = "NO" Or IniciarError = "Error" Then Throw New Exception End If Dim CodigoReporto As String = String.Empty cmd = New SqlCommand cmd.Connection = cn cmd.Transaction = Transaccion query = "select CodigoReporto from TitEspApro where CodigoNuevoTitulo=@CodigoNuevoTitulo" cmd.CommandText = query With cmd.Parameters .Add("@CodigoNuevoTitulo", SqlDbType.VarChar).Value = parametro End With CodigoReporto = cmd.ExecuteScalar ''######################################################### ''######################################################### If String.IsNullOrEmpty(CodigoReporto) Then CodigoReporto = Nothing End If cmd = New SqlCommand cmd.Connection = cn cmd.Transaction = Transaccion query = "UPDATE [dbo].[INV0] SET EstadoProceso=@EstadoProceso WHERE [CodInv] = @CodInv" cmd.CommandText = query With cmd.Parameters .Add("@CodInv", SqlDbType.VarChar).Value = CodigoReporto .Add("@EstadoProceso", SqlDbType.VarChar).Value = "E" End With retorno = cmd.ExecuteNonQuery() End If Transaccion.Commit() retorno = 0 Catch ex As Exception retorno = 1 Try Transaccion.Rollback() Catch ex2 As Exception MsgBox("Error en Rollback: " & ex.GetType.ToString) MsgBox("Mensaje Rollbak: " & ex.Message) End Try End Try If retorno = 0 Then 'Transaccion.Commit() Else 'Transaccion.Rollback() MsgBox("Falla al Guardar Propuesta") End If cmd.Dispose() da.Dispose() cn.Dispose() Return retorno End Function Public Function ConvertirEnInversion(ByVal IdPropuesta As Integer, ByVal EstadoReporto As String) As Integer Dim vRetorno As Integer = 1 Dim oCEPropuesta As CEPropuestaInversion = CargarPropuesta(IdPropuesta) Dim oCEInversion As InversionesCE Dim oDAOInversion As InversionDAO If Not oCEPropuesta Is Nothing Then 'ES OBJETO oCEInversion = New InversionesCE oDAOInversion = New InversionDAO oCEInversion.CodigoIversion = oCEPropuesta.CodigoInversion oCEInversion.CodigoEmpresa = oCEPropuesta.CodigoEmpresa oCEInversion.CodigoInstrumentoFinanciero = oCEPropuesta.CodigoInstrumentoFinanciero oCEInversion.CodigoEmisor = oCEPropuesta.CodigoEmisor oCEInversion.CodigoCalificacionDeRiesgo = oCEPropuesta.CodigoCalificacionDeRiesgo oCEInversion.CodigoEmpresaCalificadora = oCEPropuesta.CodigoEmpresaCalificadora oCEInversion.Comentarios = oCEPropuesta.Comentarios oCEInversion.TipoOperacion = oCEPropuesta.TipoOperacion oCEInversion.DocumentoBase = oCEPropuesta.IdDeDocumento oCEInversion.Pais = oCEPropuesta.Pais oCEInversion.TipoMercado = oCEPropuesta.TipoMercado oCEInversion.DocumentoBase = oCEPropuesta.IdDeDocumento oCEInversion.EstadoDocumento = oCEPropuesta.EstadoDocumento oCEInversion.NombreManual = oCEPropuesta.NombreManual oCEInversion.TipoRenta = oCEPropuesta.TipoRenta oCEInversion.TipoTasa = oCEPropuesta.TipoTasa oCEInversion.Periodicidad = oCEPropuesta.Periodicidad oCEInversion.PlazoFactor = oCEPropuesta.PlazoFactor oCEInversion.PlazoNumero = oCEPropuesta.PlazoNumero oCEInversion.OFondo = oCEPropuesta.OrigenDeFondos oCEInversion.CodigoCompra = oCEPropuesta.CodigoCompra oCEInversion.EstadoProceso = "R" oCEInversion.FechaDocumento = oCEPropuesta.FechaDocumento oCEInversion.EstadoReporto = oCEPropuesta.EstadoReporto If oCEPropuesta.EstadoReporto = "SECUNDARIO" Then oCEInversion.CodigoAsociado = oCEPropuesta.CodigoAsociado oCEInversion.IdFlujo = oCEPropuesta.IdFlujo oCEInversion.IdEA = oCEPropuesta.IdEA End If oCEInversion.IdProInv = Me.IdPropuesta(oCEPropuesta.CodigoInversion) Dim vResNuevo As Integer vResNuevo = oDAOInversion.Nuevo(oCEInversion) If vResNuevo > 0 Then 'MsgBox("Completado.") 'CERRAR PROPUESTA Cerrar(IdPropuesta) vRetorno = 1 Else 'NO SE PUDO vRetorno = -2 MsgBox("Falla al convertir en Inversion") End If Else 'NO ES NADA vRetorno = -1 End If Return vRetorno End Function Public Sub Cerrar(ByVal IidPropuesta As Integer) Dim objCon As New Conexion Dim vTransaccion As SqlTransaction Dim query As String Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If Dim cmd As SqlCommand = cn.CreateCommand vTransaccion = cn.BeginTransaction cmd.Connection = cn cmd.Transaction = vTransaccion query = "UPDATE [dbo].[PIN0] SET [DocEst] = 'C' WHERE [DocId] = @DocId" cmd.CommandText = query With cmd.Parameters .Add("@DocId", SqlDbType.VarChar).Value = IidPropuesta End With Try cmd.ExecuteNonQuery() vTransaccion.Commit() Catch ex As Exception MsgBox("Error en Transaccion: " & ex.GetType.ToString) MsgBox("Mensaje: " & ex.Message) Try vTransaccion.Rollback() Catch ex2 As Exception MsgBox("Error en Rollback: " & ex.GetType.ToString) MsgBox("Mensaje Rollbak: " & ex.Message) End Try End Try cmd.Dispose() cn.Dispose() End Sub End Class