FondoInversionDAO.vb 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. Imports System.Data.SqlClient
  2. Public Class FondoInversionDAO
  3. Dim Operaciones As New Operaciones
  4. Public Function ProcesoDatos(ByVal Coleccion As Collection, ByVal Codigo As String, ByVal Diccionario As Dictionary(Of String, Collection), ByVal Estado As String)
  5. Dim objCon As New Conexion
  6. Dim retorno As Integer
  7. Dim sql As String
  8. Dim cmd As SqlCommand
  9. Dim myTrans As SqlTransaction
  10. Dim cn As SqlConnection = objCon.Conectar
  11. If cn.State = ConnectionState.Closed Then
  12. cn.Open()
  13. End If
  14. myTrans = cn.BeginTransaction()
  15. Try
  16. If Estado = "Nuevo" Then
  17. sql = "INSERT INTO [dbo].[FINV]
  18. ([CodInv]
  19. ,[ValNominal]
  20. ,[CuoPart]
  21. ,[ValPart]
  22. ,[PorcComisionCasa]
  23. ,[PorcComisionBolsa]
  24. ,[ComisionCasa]
  25. ,[ComisionBolsa]
  26. ,[ValTrans]
  27. ,[FechaOpe]
  28. ,[FechaLiq]
  29. ,[FechaVen]
  30. ,[DiasLiq]
  31. ,[RendOfre]
  32. ,[Periodicidad]
  33. ,[Base]
  34. ,[Plazo]
  35. ,[Dividendo]
  36. ,[TipCalBase]
  37. )
  38. VALUES
  39. (@CodInv
  40. ,@ValNominal
  41. ,@CuoPart
  42. ,@ValPart
  43. ,@PorcComisionCasa
  44. ,@PorcComisionBolsa
  45. ,@ComisionCasa
  46. ,@ComisionBolsa
  47. ,@ValTrans
  48. ,@FechaOpe
  49. ,@FechaLiq
  50. ,@FechaVen
  51. ,@DiasLiq
  52. ,@RendOfre
  53. ,@Periodicidad
  54. ,@Base
  55. ,@Plazo
  56. ,@Dividendo
  57. ,@TipCalBase
  58. )"
  59. Else
  60. sql = "UPDATE [dbo].[FINV] SET
  61. [ValNominal]=@ValNominal
  62. ,[CuoPart]=@CuoPart
  63. ,[ValPart]=@ValPart
  64. ,[PorcComisionCasa]=@PorcComisionCasa
  65. ,[PorcComisionBolsa]=@PorcComisionBolsa
  66. ,[ComisionCasa]=@ComisionCasa
  67. ,[ComisionBolsa]=@ComisionBolsa
  68. ,[ValTrans]=@ValTrans
  69. ,[FechaOpe]=@FechaOpe
  70. ,[FechaLiq]=@FechaLiq
  71. ,[FechaVen]=@FechaVen
  72. ,[DiasLiq]=@DiasLiq
  73. ,[RendOfre]=@RendOfre
  74. ,[Periodicidad]= @Periodicidad
  75. ,[Base]=@Base
  76. ,[Plazo]=@Plazo
  77. ,[Dividendo]=@Dividendo
  78. ,[TipCalBase]=@TipCalBase
  79. where [CodInv]=@CodInv
  80. "
  81. End If
  82. cmd = New SqlCommand
  83. cmd.CommandText = sql
  84. cmd.Connection = cn
  85. cmd.Transaction = myTrans
  86. With cmd.Parameters
  87. .Add("@CodInv", SqlDbType.VarChar).Value = Codigo
  88. .Add("@ValNominal", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(1).ToString)
  89. .Add("@CuoPart", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(2).ToString)
  90. .Add("@ValPart", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(3).ToString)
  91. .Add("@PorcComisionCasa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(4).ToString)
  92. .Add("@PorcComisionBolsa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(5).ToString)
  93. .Add("@ComisionCasa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(6).ToString)
  94. .Add("@ComisionBolsa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(7).ToString)
  95. .Add("@ValTrans", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(8).ToString)
  96. .Add("@FechaOpe", SqlDbType.Date).Value = Operaciones.ConvertirFechaBaseDatos(Coleccion(9).ToString)
  97. .Add("@FechaLiq", SqlDbType.Date).Value = Operaciones.ConvertirFechaBaseDatos(Coleccion(10).ToString)
  98. .Add("@FechaVen", SqlDbType.Date).Value = Operaciones.ConvertirFechaBaseDatos(Coleccion(11).ToString)
  99. .Add("@DiasLiq", SqlDbType.Int).Value = Operaciones.ConvertirEntero(Coleccion(12).ToString)
  100. .Add("@RendOfre", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(13).ToString)
  101. .Add("@Periodicidad", SqlDbType.VarChar).Value = Coleccion(14).ToString
  102. .Add("@Base", SqlDbType.Int).Value = Operaciones.ConvertirEntero(Coleccion(15).ToString)
  103. .Add("@Plazo", SqlDbType.Int).Value = Operaciones.ConvertirEntero(Coleccion(16).ToString)
  104. .Add("@Dividendo", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(17).ToString)
  105. .Add("TipCalBase", SqlDbType.VarChar).Value = Coleccion(18).ToString
  106. End With
  107. retorno = cmd.ExecuteNonQuery
  108. sql = "DELETE FROM [dbo].[FINV1]
  109. WHERE [CodInv]=@CodInv "
  110. cmd = New SqlCommand
  111. cmd.CommandText = sql
  112. cmd.Connection = cn
  113. cmd.Transaction = myTrans
  114. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo
  115. retorno = cmd.ExecuteNonQuery
  116. If Not Diccionario Is Nothing Then
  117. For Each DatosDiccionario In Diccionario
  118. Dim Coleccion2 As Collection = DatosDiccionario.Value
  119. sql = "INSERT INTO [dbo].[FINV1]
  120. ([CodInv]
  121. ,[NumDiv]
  122. ,[Fecha]
  123. ,[Dias]
  124. ,[Dividendo]
  125. ,[Ingreso]
  126. ,[Rend]
  127. )
  128. VALUES
  129. (@CodInv
  130. ,@NumDiv
  131. ,@Fecha
  132. ,@Dias
  133. ,@Dividendo
  134. ,@Ingreso
  135. ,@Rend
  136. )"
  137. cmd = New SqlCommand
  138. cmd.CommandText = sql
  139. cmd.Connection = cn
  140. cmd.Transaction = myTrans
  141. With cmd.Parameters
  142. .Add("@CodInv", SqlDbType.VarChar).Value = Codigo
  143. .Add("@NumDiv", SqlDbType.Int).Value = Operaciones.ConvertirEntero(Coleccion2(1).ToString)
  144. .Add("@Fecha", SqlDbType.Date).Value = Operaciones.ConvertirFechaBaseDatos(Coleccion2(2).ToString)
  145. .Add("@Dias", SqlDbType.Int).Value = Operaciones.ConvertirEntero(Coleccion2(3).ToString)
  146. .Add("@Dividendo", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion2(4).ToString)
  147. .Add("@Ingreso", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion2(5).ToString)
  148. .Add("@Rend", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion2(6).ToString)
  149. End With
  150. retorno = cmd.ExecuteNonQuery
  151. Next
  152. End If
  153. ''''''''''''''''
  154. myTrans.Commit()
  155. MsgBox("Datos Ingresados")
  156. Catch ex As Exception
  157. myTrans.Rollback()
  158. MsgBox(ex.Message)
  159. End Try
  160. cn.Close()
  161. Return retorno
  162. End Function
  163. Public Function Cargar(ByVal CodInv As String)
  164. Dim objCon As New Conexion
  165. Dim sql As String
  166. Dim cmd As SqlCommand
  167. Dim Coleccion As New Collection
  168. Dim cn As SqlConnection = objCon.Conectar
  169. If cn.State = ConnectionState.Closed Then
  170. cn.Open()
  171. End If
  172. sql = "SELECT * FROM [dbo].[FINV] WHERE CodInv=@CodInv"
  173. cmd = New SqlCommand
  174. cmd.CommandText = sql
  175. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodInv
  176. cmd.Connection = cn
  177. ' Dim Datos = cmd.ExecuteScalar
  178. Dim Datos = cmd.ExecuteReader
  179. If Datos.HasRows Then
  180. 'SE ENCONTRO EL REGISTRO
  181. If Datos.Read Then
  182. Coleccion.Add(Operaciones.ConvertirDecimal(Datos("ValNominal").ToString))
  183. Coleccion.Add(Operaciones.ConvertirDecimal(Datos("CuoPart").ToString))
  184. Coleccion.Add(Operaciones.ConvertirDecimal(Datos("ValPart").ToString))
  185. Coleccion.Add(Operaciones.ConvertirDecimal(Datos("PorcComisionCasa").ToString))
  186. Coleccion.Add(Operaciones.ConvertirDecimal(Datos("PorcComisionBolsa").ToString))
  187. Coleccion.Add(Operaciones.ConvertirDecimal(Datos("ComisionCasa").ToString))
  188. Coleccion.Add(Operaciones.ConvertirDecimal(Datos("ComisionBolsa").ToString))
  189. Coleccion.Add(Operaciones.ConvertirDecimal(Datos("ValTrans").ToString))
  190. Coleccion.Add(Operaciones.ConvertirFecha(Datos("FechaOpe").ToString))
  191. Coleccion.Add(Operaciones.ConvertirFecha(Datos("FechaLiq").ToString))
  192. Coleccion.Add(Operaciones.ConvertirFecha(Datos("FechaVen").ToString))
  193. Coleccion.Add(Operaciones.ConvertirEntero(Datos("DiasLiq").ToString))
  194. Coleccion.Add(Operaciones.ConvertirDecimal(Datos("RendOfre").ToString))
  195. Coleccion.Add(Datos("Periodicidad").ToString)
  196. Coleccion.Add(Operaciones.ConvertirEntero(Datos("Base").ToString))
  197. Coleccion.Add(Operaciones.ConvertirEntero(Datos("Plazo").ToString))
  198. Coleccion.Add(Operaciones.ConvertirDecimal(Datos("Dividendo").ToString))
  199. Coleccion.Add(Datos("TipCalBase").ToString)
  200. Return Coleccion
  201. End If
  202. End If
  203. cn.Close()
  204. Return Coleccion
  205. End Function
  206. Public Function CargarFilas(ByVal codigo As String)
  207. Dim objCon As New Conexion
  208. Dim cn As SqlConnection = objCon.Conectar
  209. If cn.State = ConnectionState.Closed Then
  210. cn.Open()
  211. End If
  212. Dim sql = "select * from FINV1 where CodInv='" + codigo + "'"
  213. Dim cmd As New SqlCommand(sql, cn)
  214. Dim dr As SqlDataReader
  215. Dim Tabla As New DataTable
  216. dr = cmd.ExecuteReader
  217. Tabla.Load(dr)
  218. cn.Close()
  219. Return Tabla
  220. End Function
  221. Public Sub Eliminar(ByVal CodInv As String)
  222. Dim objCon As New Conexion
  223. Dim retorno As Integer
  224. Dim sql As String
  225. Dim cmd As SqlCommand
  226. Dim myTrans As SqlTransaction
  227. Dim cn As SqlConnection = objCon.Conectar
  228. If cn.State = ConnectionState.Closed Then
  229. cn.Open()
  230. End If
  231. myTrans = cn.BeginTransaction()
  232. Try
  233. sql = "DELETE FROM [dbo].[FINV]
  234. WHERE [CodInv]=@CodInv"
  235. cmd = New SqlCommand
  236. cmd.CommandText = sql
  237. cmd.Connection = cn
  238. cmd.Transaction = myTrans
  239. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodInv
  240. retorno = cmd.ExecuteNonQuery
  241. sql = "DELETE FROM [dbo].[FINV1]
  242. WHERE [CodInv]=@CodInv"
  243. cmd = New SqlCommand
  244. cmd.CommandText = sql
  245. cmd.Connection = cn
  246. cmd.Transaction = myTrans
  247. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodInv
  248. retorno = cmd.ExecuteNonQuery
  249. myTrans.Commit()
  250. MsgBox("Datos Eliminados")
  251. Catch ex As Exception
  252. myTrans.Rollback()
  253. MsgBox(ex.Message)
  254. End Try
  255. cn.Close()
  256. End Sub
  257. Public Sub EliminarIngreso(ByVal Codigo As String, ByVal NumDiv As Integer)
  258. Dim objCon As New Conexion
  259. Dim sql As String
  260. Dim cmd As SqlCommand
  261. Dim res As Integer
  262. Dim cn As SqlConnection = objCon.Conectar
  263. If cn.State = ConnectionState.Closed Then
  264. cn.Open()
  265. End If
  266. sql = "DELETE FROM FINV1
  267. WHERE [CodInv]=@CodInv AND [NumDiv]=@NumDiv"
  268. cmd = New SqlCommand
  269. cmd.CommandText = sql
  270. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo
  271. cmd.Parameters.Add("@NumDiv", SqlDbType.Int).Value = NumDiv
  272. cmd.Connection = cn
  273. res = cmd.ExecuteNonQuery
  274. cn.Close()
  275. End Sub
  276. End Class