Imports System.Data.SqlClient Public Class ReportosDAO Dim Operaciones As New Operaciones Public Function ProcesoDatos(ByVal Diccionario As Dictionary(Of String, Collection), ByVal Codigo As String, ByVal Tabla As String) Dim objCon As New Conexion 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 If Not Diccionario Is Nothing Then For Each DatosDiccionario In Diccionario Dim Coleccion As Collection = DatosDiccionario.Value If Tabla = "REP0" Then sql = "INSERT INTO " + Tabla + "( [CodInv] ,[codigo] ,[Nombre] ,[FCompra] ,[ValTrans] ,[Dias] ,[FVenc] ,[Rend] ,[CostoTransfr] ,[ComisionCasa] ,[ComisionBolsa] ,[Casa] ,[IOF] ,[Renta] ,[Base] ,[ComisionCasaValor] ,[ComisionBolsaValor] ,[IOFValor] ,[OtrosCostos] ,[TotalCostos] ,[MontoLiq] ,[IntGenerar] ,[RendAntImp] ,[RendDesImp] ,[ImpLiq] ,[IngrNet] ,[ValorNet] ,[EstadoIOF] ,[EstadoRenta] ) VALUES( @CodInv ,@codigo ,@Nombre ,@FCompra ,@ValTrans ,@Dias ,@FVenc ,@Rend ,@CostoTransfr ,@ComisionCasa ,@ComisionBolsa ,@Casa ,@IOF ,@Renta ,@Base ,@ComisionCasaValor ,@ComisionBolsaValor ,@IOFValor ,@OtrosCostos ,@TotalCostos ,@MontoLiq ,@IntGenerar ,@RendAntImp ,@RendDesImp ,@ImpLiq ,@IngrNet ,@ValorNet ,@EstadoIOF ,@EstadoRenta ) " Else sql = "INSERT INTO " + Tabla + "( [CodInv] ,[codigo] ,[Nombre] ,[FCompra] ,[ValTrans] ,[Dias] ,[FVenc] ,[Rend] ,[CostoTransfr] ,[ComisionCasa] ,[ComisionBolsa] ,[Casa] ,[IOF] ,[Renta] ,[Base] ,[ComisionCasaValor] ,[ComisionBolsaValor] ,[IOFValor] ,[OtrosCostos] ,[TotalCostos] ,[MontoLiq] ,[IntGenerar] ,[RendAntImp] ,[RendDesImp] ,[ImpLiq] ,[IngrNet] ,[ValorNet] ,[EstadoIOF] ,[EstadoRenta] ) VALUES( @CodInv ,@codigo ,@Nombre ,@FCompra ,@ValTrans ,@Dias ,@FVenc ,@Rend ,@CostoTransfr ,@ComisionCasa ,@ComisionBolsa ,@Casa ,@IOF ,@Renta ,@Base ,@ComisionCasaValor ,@ComisionBolsaValor ,@IOFValor ,@OtrosCostos ,@TotalCostos ,@MontoLiq ,@IntGenerar ,@RendAntImp ,@RendDesImp ,@ImpLiq ,@IngrNet ,@ValorNet ,@EstadoIOF ,@EstadoRenta ) " End If cmd = New SqlCommand cmd.CommandText = sql cmd.Connection = cn cmd.Transaction = myTrans With cmd.Parameters .Add("@CodInv", SqlDbType.VarChar).Value = Codigo.ToString .Add("@Nombre", SqlDbType.VarChar).Value = Coleccion(1).ToString .Add("@FCompra", SqlDbType.Date).Value = Operaciones.ConvertirFecha(Coleccion(2).ToString) .Add("@ValTrans", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(3).ToString) .Add("@Dias", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(4).ToString) .Add("@FVenc", SqlDbType.Date).Value = Operaciones.ConvertirFecha(Coleccion(5).ToString) .Add("@Rend", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(6).ToString) .Add("@CostoTransfr", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(7).ToString) .Add("@codigo", SqlDbType.VarChar).Value = Coleccion(8).ToString .Add("@ComisionCasa", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(Coleccion(9).ToString) .Add("@ComisionBolsa", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(Coleccion(10).ToString) .Add("@Casa", SqlDbType.VarChar).Value = Coleccion(11).ToString .Add("@IOF", SqlDbType.Bit).Value = CByte(Coleccion(12)) .Add("@Renta", SqlDbType.Bit).Value = CByte(Coleccion(13)) .Add("@Base", SqlDbType.Int).Value = DBNull.Value .Add("@ComisionCasaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(14).ToString) .Add("@ComisionBolsaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(15).ToString) .Add("@IOFValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(16).ToString) .Add("@OtrosCostos", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(17).ToString) .Add("@TotalCostos", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(18).ToString) .Add("@MontoLiq", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(19).ToString) .Add("@IntGenerar", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(20).ToString) .Add("@RendAntImp", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(21).ToString) .Add("@RendDesImp", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(22).ToString) .Add("@ImpLiq", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(23).ToString) .Add("@IngrNet", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(24).ToString) .Add("@ValorNet", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(25).ToString) .Add("@EstadoIOF", SqlDbType.Bit).Value = CByte(Coleccion(27)) .Add("@EstadoRenta", SqlDbType.Bit).Value = CByte(Coleccion(28)) End With retorno = cmd.ExecuteNonQuery Next End If '''''''''''''''''' myTrans.Commit() MsgBox("Datos Ingresados") Catch ex As Exception myTrans.Rollback() MsgBox(ex.Message) End Try cn.Close() Return retorno End Function Public Function CargarReporto(ByVal codigo As String, ByVal Tabla As String) 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 " + Tabla + " where CodInv='" + codigo + "' order by codigo" Dim cmd As New SqlCommand(sql, cn) Dim dr As SqlDataReader dr = cmd.ExecuteReader If (Not dr.HasRows) Then cn.Close() Return Nothing End If Return dr End Function Public Sub Eliminar(ByVal Codigo As String, ByVal clave As String, ByVal Tabla As String) 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 If (String.IsNullOrEmpty(clave)) Then sql = "DELETE FROM " + Tabla + " WHERE [CodInv]=@CodInv AND codigo is null" Else sql = "DELETE FROM " + Tabla + " WHERE [CodInv]=@CodInv AND codigo=@codigo" End If cmd = New SqlCommand cmd.CommandText = sql cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo cmd.Parameters.Add("@codigo", SqlDbType.VarChar).Value = clave cmd.Connection = cn res = cmd.ExecuteNonQuery cn.Close() End Sub Public Function Nuevo(ByVal Coleccion As Collection, ByVal Codigo As String, ByVal Tabla As String) Dim objCon As New Conexion Dim retorno As Integer Dim sql As String Dim cmd As SqlCommand Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If If Tabla = "REP0" Then sql = "INSERT INTO " + Tabla + "( [CodInv] ,[codigo] ,[Nombre] ,[FCompra] ,[ValTrans] ,[Dias] ,[FVenc] ,[Rend] ,[CostoTransfr] ,[ComisionCasa] ,[ComisionBolsa] ,[Casa] ,[IOF] ,[Renta] ,[Base] ,[ComisionCasaValor] ,[ComisionBolsaValor] ,[IOFValor] ,[OtrosCostos] ,[TotalCostos] ,[MontoLiq] ,[IntGenerar] ,[RendAntImp] ,[RendDesImp] ,[ImpLiq] ,[IngrNet] ,[ValorNet] ,[EstadoIOF] ,[EstadoRenta] ) VALUES( @CodInv ,@codigo ,@Nombre ,@FCompra ,@ValTrans ,@Dias ,@FVenc ,@Rend ,@CostoTransfr ,@ComisionCasa ,@ComisionBolsa ,@Casa ,@IOF ,@Renta ,@Base ,@ComisionCasaValor ,@ComisionBolsaValor ,@IOFValor ,@OtrosCostos ,@TotalCostos ,@MontoLiq ,@IntGenerar ,@RendAntImp ,@RendDesImp ,@ImpLiq ,@IngrNet ,@ValorNet ,@EstadoIOF ,@EstadoRenta ) " Else sql = "INSERT INTO " + Tabla + "( [CodInv] ,[codigo] ,[Nombre] ,[FCompra] ,[ValTrans] ,[Dias] ,[FVenc] ,[Rend] ,[CostoTransfr] ,[ComisionCasa] ,[ComisionBolsa] ,[Casa] ,[IOF] ,[Renta] ,[Base] ,[ComisionCasaValor] ,[ComisionBolsaValor] ,[IOFValor] ,[OtrosCostos] ,[TotalCostos] ,[MontoLiq] ,[IntGenerar] ,[RendAntImp] ,[RendDesImp] ,[ImpLiq] ,[IngrNet] ,[ValorNet] ,[EstadoIOF] ,[EstadoRenta] ) VALUES( @CodInv ,@codigo ,@Nombre ,@FCompra ,@ValTrans ,@Dias ,@FVenc ,@Rend ,@CostoTransfr ,@ComisionCasa ,@ComisionBolsa ,@Casa ,@IOF ,@Renta ,@Base ,@ComisionCasaValor ,@ComisionBolsaValor ,@IOFValor ,@OtrosCostos ,@TotalCostos ,@MontoLiq ,@IntGenerar ,@RendAntImp ,@RendDesImp ,@ImpLiq ,@IngrNet ,@ValorNet ,@EstadoIOF ,@EstadoRenta ) " End If cmd = New SqlCommand cmd.CommandText = sql With cmd.Parameters .Add("@CodInv", SqlDbType.VarChar).Value = Codigo .Add("@Nombre", SqlDbType.VarChar).Value = Coleccion(1).ToString .Add("@FCompra", SqlDbType.DateTime).Value = Operaciones.ConvertirFecha(Coleccion(2).ToString) .Add("@ValTrans", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(3).ToString) .Add("@Dias", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(4).ToString) .Add("@FVenc", SqlDbType.DateTime).Value = Operaciones.ConvertirFecha(Coleccion(5).ToString) .Add("@Rend", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(6).ToString) .Add("@CostoTransfr", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(7).ToString) .Add("@codigo", SqlDbType.VarChar).Value = Coleccion(8).ToString .Add("@ComisionCasa", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(Coleccion(9).ToString) .Add("@ComisionBolsa", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(Coleccion(10).ToString) .Add("@Casa", SqlDbType.VarChar).Value = Coleccion(11).ToString .Add("@IOF", SqlDbType.Bit).Value = CByte(Coleccion(12)) .Add("@Renta", SqlDbType.Bit).Value = CByte(Coleccion(13)) .Add("@Base", SqlDbType.Int).Value = DBNull.Value .Add("@ComisionCasaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(14).ToString) .Add("@ComisionBolsaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(15).ToString) .Add("@IOFValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(16).ToString) .Add("@OtrosCostos", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(17).ToString) .Add("@TotalCostos", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(18).ToString) .Add("@MontoLiq", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(19).ToString) .Add("@IntGenerar", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(20).ToString) .Add("@RendAntImp", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(21).ToString) .Add("@RendDesImp", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(22).ToString) .Add("@ImpLiq", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(23).ToString) .Add("@IngrNet", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(24).ToString) .Add("@ValorNet", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(25).ToString) .Add("@EstadoIOF", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(24).ToString) .Add("@EstadoRenta", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(25).ToString) End With cmd.Connection = cn retorno = cmd.ExecuteNonQuery cn.Close() Return retorno End Function Public Function TraerImpuesto(ByVal Codigo As String, ByVal codigoElemento As String) Dim objCon As New Conexion Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If If (Not String.IsNullOrEmpty(Codigo)) Then Dim sql As String Dim cmd As SqlCommand Dim Impuesto As String sql = "SELECT * FROM REP0 WHERE CodInv=@Codigo and [codigo]=@codigoElemento" cmd = New SqlCommand cmd.CommandText = sql cmd.Parameters.Add("@Codigo", SqlDbType.VarChar).Value = Codigo cmd.Parameters.Add("@codigoElemento", SqlDbType.VarChar).Value = codigoElemento cmd.Connection = cn Dim Datos = cmd.ExecuteReader cn.Close() If Datos.HasRows Then 'SE ENCONTRO EL REGISTRO Try If Datos.Read Then Impuesto = Datos.Item("Impuestos") Return Impuesto Else Return 0 End If Catch ex As Exception Return 0 End Try Else Return 0 End If Else Return 0 End If End Function Public Function FiltroReportoVenta(ByRef FechaVenOperacion1 As String, ByRef FechaVenOperacion2 As String, ByRef Estado As String, ByRef Empresa As String, ByRef CasaCorredora As String) As DataSet Dim objCon As New Conexion Dim da As New SqlDataAdapter Dim ds As New DataSet Dim cn As SqlConnection = objCon.Conectar If cn.State = ConnectionState.Closed Then cn.Open() End If Dim sql = "SP_CargarReportoVentas" Dim cmd As New SqlCommand(sql, cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Add("@FechaOperacion1", SqlDbType.Date).Value = Operaciones.ConvertirFechaBaseDatos(FechaVenOperacion1) cmd.Parameters.Add("@FechaOperacion2", SqlDbType.Date).Value = Operaciones.ConvertirFechaBaseDatos(FechaVenOperacion2) cmd.Parameters.Add("@Empresa", SqlDbType.VarChar).Value = Empresa cmd.Parameters.Add("@CasaCorredora", SqlDbType.VarChar).Value = CasaCorredora cmd.Parameters.Add("@Estado", SqlDbType.VarChar).Value = Estado da = New SqlDataAdapter(cmd) da.Fill(ds) cn.Close() Return ds End Function End Class