AccionesDAO.vb 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442
  1. Imports System.Data.SqlClient
  2. Public Class AccionesDAO
  3. Private 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].[ACC0]
  18. ([CodInv]
  19. ,[PrecioLimpioC]
  20. ,[FOperC]
  21. ,[FVenC]
  22. ,[DiasTC]
  23. ,[GCapTotC]
  24. ,[GCapUnC]
  25. ,[RetAnBrC]
  26. ,[RetAnNetC]
  27. ,[UnC]
  28. ,[ValTransC]
  29. ,[MontoNetoC]
  30. ,[PrecSucioC]
  31. ,[PrecioLimpioV]
  32. ,[FOperV]
  33. ,[FVenV]
  34. ,[DiasTV]
  35. ,[GCapTotV]
  36. ,[GCapUnV]
  37. ,[RetAnBrV]
  38. ,[RetAnNetV]
  39. ,[UnV]
  40. ,[ValTransV]
  41. ,[MontoNetoV]
  42. ,[PrecSucioV]
  43. ,[ComisionCompraCasa]
  44. ,[ComisionCompraBolsa]
  45. ,[ComisionVentaCasa]
  46. ,[ComisionVentaBolsa]
  47. ,[IOF]
  48. ,[Renta]
  49. ,[Tipo]
  50. ,[ComisionCompraCasaValor]
  51. ,[ComisionCompraBolsaValor]
  52. ,[ComisionVentaCasaValor]
  53. ,[ComisionVentaBolsaValor]
  54. )
  55. VALUES
  56. (@CodInv
  57. ,@PrecioLimpioC
  58. ,@FOperC
  59. ,@FVenC
  60. ,@DiasTC
  61. ,@GCapTotC
  62. ,@GCapUnC
  63. ,@RetAnBrC
  64. ,@RetAnNetC
  65. ,@UnC
  66. ,@ValTransC
  67. ,@MontoNetoC
  68. ,@PrecSucioC
  69. ,@PrecioLimpioV
  70. ,@FOperV
  71. ,@FVenV
  72. ,@DiasTV
  73. ,@GCapTotV
  74. ,@GCapUnV
  75. ,@RetAnBrV
  76. ,@RetAnNetV
  77. ,@UnV
  78. ,@ValTransV
  79. ,@MontoNetoV
  80. ,@PrecSucioV
  81. ,@ComisionCompraCasa
  82. ,@ComisionCompraBolsa
  83. ,@ComisionVentaCasa
  84. ,@ComisionVentaBolsa
  85. ,@IOF
  86. ,@Renta
  87. ,@Tipo
  88. ,@ComisionCompraCasaValor
  89. ,@ComisionCompraBolsaValor
  90. ,@ComisionVentaCasaValor
  91. ,@ComisionVentaBolsaValor
  92. )"
  93. Else
  94. sql = "UPDATE [dbo].[ACC0] SET
  95. [PrecioLimpioC]=@PrecioLimpioC
  96. ,[FOperC]=@FOperC
  97. ,[FVenC]=@FVenC
  98. ,[DiasTC]=@DiasTC
  99. ,[GCapTotC]=@GCapTotC
  100. ,[GCapUnC]=@GCapUnC
  101. ,[RetAnBrC]=@RetAnBrC
  102. ,[RetAnNetC]=@RetAnNetC
  103. ,[UnC]=@UnC
  104. ,[ValTransC]=@ValTransC
  105. ,[MontoNetoC]=@MontoNetoC
  106. ,[PrecSucioC]=@PrecSucioC
  107. ,[PrecioLimpioV]=@PrecioLimpioV
  108. ,[FOperV]=@FOperV
  109. ,[FVenV]=@FVenV
  110. ,[DiasTV]=@DiasTV
  111. ,[GCapTotV]=@GCapTotV
  112. ,[GCapUnV]=@GCapUnV
  113. ,[RetAnBrV]=@RetAnBrV
  114. ,[RetAnNetV]=@RetAnNetV
  115. ,[UnV]=@UnV
  116. ,[ValTransV]=@ValTransV
  117. ,[MontoNetoV]=@MontoNetoV
  118. ,[PrecSucioV]=@PrecSucioV
  119. ,[ComisionCompraCasa]=@ComisionCompraCasa
  120. ,[ComisionCompraBolsa]=@ComisionCompraBolsa
  121. ,[ComisionVentaCasa]=@ComisionVentaCasa
  122. ,[ComisionVentaBolsa]=@ComisionVentaBolsa
  123. ,[IOF]=@IOF
  124. ,[Renta]=@Renta
  125. ,[Tipo]=@Tipo
  126. ,[ComisionCompraCasaValor]=@ComisionCompraCasaValor
  127. ,[ComisionCompraBolsaValor]=@ComisionCompraBolsaValor
  128. ,[ComisionVentaCasaValor]=@ComisionVentaCasaValor
  129. ,[ComisionVentaBolsaValor]=@ComisionVentaBolsaValor
  130. where [CodInv]=@CodInv
  131. "
  132. End If
  133. cmd = New SqlCommand
  134. cmd.CommandText = sql
  135. cmd.Connection = cn
  136. cmd.Transaction = myTrans
  137. With cmd.Parameters
  138. .Add("@CodInv", SqlDbType.VarChar).Value = Codigo.ToString
  139. .Add("@PrecioLimpioC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(1).ToString)
  140. .Add("@FOperC", SqlDbType.Date).Value = Operaciones.ConvertirFecha(Coleccion(2).ToString)
  141. .Add("@FVenC", SqlDbType.Date).Value = Operaciones.ConvertirFecha(Coleccion(3).ToString)
  142. .Add("@DiasTC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(4).ToString)
  143. .Add("@GCapTotC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(5).ToString)
  144. .Add("@GCapUnC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(6).ToString)
  145. .Add("@RetAnBrC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(7).ToString)
  146. .Add("@RetAnNetC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(8).ToString)
  147. .Add("@UnC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(9).ToString)
  148. .Add("@ValTransC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(10).ToString)
  149. .Add("@MontoNetoC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(11).ToString)
  150. .Add("@PrecSucioC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(12).ToString)
  151. .Add("@PrecioLimpioV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(13).ToString)
  152. .Add("@FOperV", SqlDbType.Date).Value = Operaciones.ConvertirFecha(Coleccion(14).ToString)
  153. .Add("@FVenV", SqlDbType.Date).Value = Operaciones.ConvertirFecha(Coleccion(15).ToString)
  154. .Add("@DiasTV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(16).ToString)
  155. .Add("@GCapTotV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(17).ToString)
  156. .Add("@GCapUnV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(18).ToString)
  157. .Add("@RetAnBrV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(19).ToString)
  158. .Add("@RetAnNetV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(20).ToString)
  159. .Add("@UnV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(21).ToString)
  160. .Add("@ValTransV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(22).ToString)
  161. .Add("@MontoNetoV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(23).ToString)
  162. .Add("@PrecSucioV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(24).ToString)
  163. .Add("@ComisionCompraCasa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(25).ToString)
  164. .Add("@ComisionCompraBolsa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(26).ToString)
  165. .Add("@ComisionVentaCasa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(27).ToString)
  166. .Add("@ComisionVentaBolsa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(28).ToString)
  167. .Add("@IOF", SqlDbType.Bit).Value = CByte(Coleccion(29))
  168. .Add("@Renta", SqlDbType.Bit).Value = CByte(Coleccion(30))
  169. .Add("@Tipo", SqlDbType.VarChar).Value = Coleccion(31).ToString
  170. .Add("@ComisionCompraCasaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(32).ToString)
  171. .Add("@ComisionCompraBolsaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(33).ToString)
  172. .Add("@ComisionVentaCasaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(34).ToString)
  173. .Add("@ComisionVentaBolsaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(Coleccion(35).ToString)
  174. End With
  175. retorno = cmd.ExecuteNonQuery
  176. sql = "DELETE FROM [dbo].[ACC1]
  177. WHERE [CodInv]=@CodInv "
  178. cmd = New SqlCommand
  179. cmd.CommandText = sql
  180. cmd.Connection = cn
  181. cmd.Transaction = myTrans
  182. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo
  183. retorno = cmd.ExecuteNonQuery
  184. If Not Diccionario Is Nothing Then
  185. For Each DatosDiccionario In Diccionario
  186. Dim Coleccion2 As Collection = DatosDiccionario.Value
  187. sql = "INSERT INTO [dbo].[ACC1]
  188. ([CodInv]
  189. ,[Fecha]
  190. ,[Dividendo]
  191. ,[CantidadBase]
  192. ,[IngresoBruto]
  193. ,[PorcISR]
  194. ,[ISR]
  195. ,[IngresoNeto]
  196. ,[Estado]
  197. ,[FechaInicio]
  198. ,[FechaCorte]
  199. ,[NumDiv]
  200. )
  201. VALUES
  202. (@CodInv
  203. ,@Fecha
  204. ,@Dividendo
  205. ,@CantidadBase
  206. ,@IngresoBruto
  207. ,@PorcISR
  208. ,@ISR
  209. ,@IngresoNeto
  210. ,@Estado
  211. ,@FechaInicio
  212. ,@FechaCorte
  213. ,@NumDiv
  214. )"
  215. cmd = New SqlCommand
  216. cmd.CommandText = sql
  217. cmd.Connection = cn
  218. cmd.Transaction = myTrans
  219. With cmd.Parameters
  220. .Add("@CodInv", SqlDbType.VarChar).Value = Codigo.ToString
  221. .Add("@Fecha", SqlDbType.Date).Value = Operaciones.ConvertirFecha(Coleccion2(1).ToString)
  222. .Add("@Dividendo", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(Coleccion2(2).ToString)
  223. .Add("@CantidadBase", SqlDbType.Int).Value = Operaciones.ConvertirEntero(Coleccion2(3).ToString)
  224. .Add("@IngresoBruto", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(Coleccion2(4).ToString)
  225. .Add("@PorcISR", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(Coleccion2(5).ToString)
  226. .Add("@ISR", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(Coleccion2(6).ToString)
  227. .Add("@IngresoNeto", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(Coleccion2(7).ToString)
  228. .Add("@Estado", SqlDbType.VarChar).Value = Coleccion2(8).ToString
  229. .Add("@NumDiv", SqlDbType.Int).Value = Operaciones.ConvertirEntero(Coleccion2(9).ToString)
  230. .Add("@FechaInicio", SqlDbType.DateTime).Value = Operaciones.ConvertirFecha(Coleccion2(10).ToString)
  231. .Add("@FechaCorte", SqlDbType.DateTime).Value = Operaciones.ConvertirFecha(Coleccion2(11).ToString)
  232. End With
  233. retorno = cmd.ExecuteNonQuery
  234. Next
  235. End If
  236. ''''''''''''''''
  237. myTrans.Commit()
  238. MsgBox("Datos Ingresados")
  239. Catch ex As Exception
  240. myTrans.Rollback()
  241. MsgBox(ex.Message)
  242. End Try
  243. cn.Close()
  244. Return retorno
  245. End Function
  246. Public Sub Eliminar(ByVal Codigo As String)
  247. Dim objCon As New Conexion
  248. Dim retorno As Integer
  249. Dim sql As String
  250. Dim cmd As SqlCommand
  251. Dim myTrans As SqlTransaction
  252. Dim cn As SqlConnection = objCon.Conectar
  253. If cn.State = ConnectionState.Closed Then
  254. cn.Open()
  255. End If
  256. myTrans = cn.BeginTransaction()
  257. Try
  258. sql = "DELETE FROM [dbo].[ACC1]
  259. WHERE [CodInv]=@CodInv"
  260. cmd = New SqlCommand
  261. cmd.CommandText = sql
  262. cmd.Connection = cn
  263. cmd.Transaction = myTrans
  264. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo
  265. retorno = cmd.ExecuteNonQuery
  266. sql = "DELETE FROM [dbo].[ACC0]
  267. WHERE [CodInv]=@CodInv"
  268. cmd = New SqlCommand
  269. cmd.CommandText = sql
  270. cmd.Connection = cn
  271. cmd.Transaction = myTrans
  272. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo
  273. retorno = cmd.ExecuteNonQuery
  274. myTrans.Commit()
  275. MsgBox("Datos Eliminados")
  276. Catch ex As Exception
  277. myTrans.Rollback()
  278. MsgBox(ex.Message)
  279. End Try
  280. cn.Close()
  281. End Sub
  282. Public Sub EliminarElemenoInd(ByVal Codigo As String, ByVal NumDiv As Integer)
  283. Dim objCon As New Conexion
  284. Dim sql As String
  285. Dim cmd As SqlCommand
  286. Dim res As Integer
  287. Dim cn As SqlConnection = objCon.Conectar
  288. If cn.State = ConnectionState.Closed Then
  289. cn.Open()
  290. End If
  291. sql = "DELETE FROM [dbo].[ACC1]
  292. WHERE [CodInv]=@CodInv and [NumDiv]=@NumDiv"
  293. cmd = New SqlCommand
  294. cmd.CommandText = sql
  295. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo
  296. cmd.Parameters.Add("@NumDiv", SqlDbType.Int).Value = Operaciones.ConvertirEntero(NumDiv.ToString)
  297. cmd.Connection = cn
  298. res = cmd.ExecuteNonQuery
  299. cn.Close()
  300. End Sub
  301. Public Function NuevoElementoAccion(ByVal codigo As String, ByVal coleccion As Collection)
  302. Dim objCon As New Conexion
  303. Dim retorno As Integer
  304. Dim sql As String
  305. Dim cmd As SqlCommand
  306. Dim cn As SqlConnection = objCon.Conectar
  307. If cn.State = ConnectionState.Closed Then
  308. cn.Open()
  309. End If
  310. If (coleccion Is Nothing) Then
  311. Exit Function
  312. End If
  313. sql = "INSERT INTO [dbo].[ACC1]
  314. ([CodInv]
  315. ,[Fecha]
  316. ,[Dividendo]
  317. ,[CantidadBase]
  318. ,[IngresoBruto]
  319. ,[PorcISR]
  320. ,[ISR]
  321. ,[IngresoNeto]
  322. ,[Estado]
  323. ,[FechaInicio]
  324. ,[FechaCorte]
  325. ,[NumDiv]
  326. )
  327. VALUES
  328. (@CodInv
  329. ,@Fecha
  330. ,@Dividendo
  331. ,@CantidadBase
  332. ,@IngresoBruto
  333. ,@PorcISR
  334. ,@ISR
  335. ,@IngresoNeto
  336. ,@Estado
  337. ,@FechaInicio
  338. ,@FechaCorte
  339. ,@NumDiv
  340. )"
  341. cmd = New SqlCommand
  342. cmd.CommandText = sql
  343. cmd.Connection = cn
  344. Try
  345. With cmd.Parameters
  346. .Add("@CodInv", SqlDbType.VarChar).Value = codigo.ToString
  347. .Add("@Fecha", SqlDbType.Date).Value = Operaciones.ConvertirFecha(coleccion(1).ToString)
  348. .Add("@Dividendo", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(coleccion(2).ToString)
  349. .Add("@CantidadBase", SqlDbType.Int).Value = Operaciones.ConvertirEntero(coleccion(3).ToString)
  350. .Add("@IngresoBruto", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(coleccion(4).ToString)
  351. .Add("@PorcISR", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(coleccion(5).ToString)
  352. .Add("@ISR", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(coleccion(6).ToString)
  353. .Add("@IngresoNeto", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(coleccion(7).ToString)
  354. .Add("@Estado", SqlDbType.VarChar).Value = coleccion(8).ToString
  355. .Add("@NumDiv", SqlDbType.Int).Value = Operaciones.ConvertirEntero(coleccion(9).ToString)
  356. .Add("@FechaInicio", SqlDbType.DateTime).Value = Operaciones.ConvertirFecha(coleccion(10))
  357. .Add("@FechaCorte", SqlDbType.DateTime).Value = Operaciones.ConvertirFecha(coleccion(11))
  358. End With
  359. retorno = cmd.ExecuteNonQuery
  360. Catch ex As Exception
  361. Return Nothing
  362. End Try
  363. cn.Close()
  364. Return retorno
  365. End Function
  366. Public Function ModificarElementoAccion(ByVal codigo As String, ByVal coleccion As Collection)
  367. Dim objCon As New Conexion
  368. Dim retorno As Integer
  369. Dim sql As String
  370. Dim cmd As SqlCommand
  371. Dim cn As SqlConnection = objCon.Conectar
  372. If cn.State = ConnectionState.Closed Then
  373. cn.Open()
  374. End If
  375. If (coleccion Is Nothing) Then
  376. Exit Function
  377. End If
  378. sql = "UPDATE [dbo].[ACC1] SET
  379. [Fecha]=@Fecha
  380. ,[Dividendo]=@Dividendo
  381. ,[CantidadBase]=@CantidadBase
  382. ,[IngresoBruto]=@IngresoBruto
  383. ,[PorcISR]=@PorcISR
  384. ,[ISR]=@ISR
  385. ,[IngresoNeto]=@IngresoNeto
  386. ,[Estado]=@Estado
  387. ,[FechaInicio]=@FechaInicio
  388. ,[FechaCorte]=@FechaCorte
  389. where [CodInv]=@CodInv and [NumDiv]=@NumDiv
  390. "
  391. cmd = New SqlCommand
  392. cmd.CommandText = sql
  393. cmd.Connection = cn
  394. Try
  395. With cmd.Parameters
  396. .Add("@CodInv", SqlDbType.VarChar).Value = codigo.ToString
  397. .Add("@Fecha", SqlDbType.Date).Value = Operaciones.ConvertirFecha(coleccion(1).ToString)
  398. .Add("@Dividendo", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(coleccion(2).ToString)
  399. .Add("@CantidadBase", SqlDbType.Int).Value = Operaciones.ConvertirEntero(coleccion(3).ToString)
  400. .Add("@IngresoBruto", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(coleccion(4).ToString)
  401. .Add("@PorcISR", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(coleccion(5).ToString)
  402. .Add("@ISR", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(coleccion(6).ToString)
  403. .Add("@IngresoNeto", SqlDbType.Decimal).Value = Operaciones.ConvertirDecimal(coleccion(7).ToString)
  404. .Add("@Estado", SqlDbType.VarChar).Value = coleccion(8).ToString
  405. .Add("@NumDiv", SqlDbType.Int).Value = Operaciones.ConvertirEntero(coleccion(9).ToString)
  406. .Add("@FechaInicio", SqlDbType.DateTime).Value = Operaciones.ConvertirFecha(coleccion(10))
  407. .Add("@FechaCorte", SqlDbType.DateTime).Value = Operaciones.ConvertirFecha(coleccion(11))
  408. End With
  409. retorno = cmd.ExecuteNonQuery
  410. Catch ex As Exception
  411. Return Nothing
  412. End Try
  413. cn.Close()
  414. Return retorno
  415. End Function
  416. Public Function NuevaAccion(ByVal codigo As String, ByVal coleccion As Collection)
  417. Dim objCon As New Conexion
  418. Dim retorno As Integer
  419. Dim sql As String
  420. Dim cmd As SqlCommand
  421. Dim cn As SqlConnection = objCon.Conectar
  422. If cn.State = ConnectionState.Closed Then
  423. cn.Open()
  424. End If
  425. sql = "INSERT INTO [dbo].[ACC0]
  426. ([CodInv]
  427. ,[PrecioLimpioC]
  428. ,[FOperC]
  429. ,[FVenC]
  430. ,[DiasTC]
  431. ,[GCapTotC]
  432. ,[GCapUnC]
  433. ,[RetAnBrC]
  434. ,[RetAnNetC]
  435. ,[UnC]
  436. ,[ValTransC]
  437. ,[MontoNetoC]
  438. ,[PrecSucioC]
  439. ,[PrecioLimpioV]
  440. ,[FOperV]
  441. ,[FVenV]
  442. ,[DiasTV]
  443. ,[GCapTotV]
  444. ,[GCapUnV]
  445. ,[RetAnBrV]
  446. ,[RetAnNetV]
  447. ,[UnV]
  448. ,[ValTransV]
  449. ,[MontoNetoV]
  450. ,[PrecSucioV]
  451. ,[ComisionCompraCasa]
  452. ,[ComisionCompraBolsa]
  453. ,[ComisionVentaCasa]
  454. ,[ComisionVentaBolsa]
  455. ,[IOF]
  456. ,[Renta]
  457. ,[Tipo]
  458. ,[ComisionCompraCasaValor]
  459. ,[ComisionCompraBolsaValor]
  460. ,[ComisionVentaCasaValor]
  461. ,[ComisionVentaBolsaValor]
  462. )
  463. VALUES
  464. (@CodInv
  465. ,@PrecioLimpioC
  466. ,@FOperC
  467. ,@FVenC
  468. ,@DiasTC
  469. ,@GCapTotC
  470. ,@GCapUnC
  471. ,@RetAnBrC
  472. ,@RetAnNetC
  473. ,@UnC
  474. ,@ValTransC
  475. ,@MontoNetoC
  476. ,@PrecSucioC
  477. ,@PrecioLimpioV
  478. ,@FOperV
  479. ,@FVenV
  480. ,@DiasTV
  481. ,@GCapTotV
  482. ,@GCapUnV
  483. ,@RetAnBrV
  484. ,@RetAnNetV
  485. ,@UnV
  486. ,@ValTransV
  487. ,@MontoNetoV
  488. ,@PrecSucioV
  489. ,@ComisionCompraCasa
  490. ,@ComisionCompraBolsa
  491. ,@ComisionVentaCasa
  492. ,@ComisionVentaBolsa
  493. ,@IOF
  494. ,@Renta
  495. ,@Tipo
  496. ,@ComisionCompraCasaValor
  497. ,@ComisionCompraBolsaValor
  498. ,@ComisionVentaCasaValor
  499. ,@ComisionVentaBolsaValor
  500. )"
  501. cmd = New SqlCommand
  502. cmd.CommandText = sql
  503. cmd.Connection = cn
  504. Try
  505. With cmd.Parameters
  506. .Add("@CodInv", SqlDbType.VarChar).Value = codigo.ToString
  507. .Add("@PrecioLimpioC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(1).ToString)
  508. .Add("@FOperC", SqlDbType.Date).Value = Operaciones.ConvertirFecha(coleccion(2).ToString)
  509. .Add("@FVenC", SqlDbType.Date).Value = Operaciones.ConvertirFecha(coleccion(3).ToString)
  510. .Add("@DiasTC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(4).ToString)
  511. .Add("@GCapTotC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(5).ToString)
  512. .Add("@GCapUnC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(6).ToString)
  513. .Add("@RetAnBrC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(7).ToString)
  514. .Add("@RetAnNetC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(8).ToString)
  515. .Add("@UnC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(9).ToString)
  516. .Add("@ValTransC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(10).ToString)
  517. .Add("@MontoNetoC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(11).ToString)
  518. .Add("@PrecSucioC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(12).ToString)
  519. .Add("@PrecioLimpioV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(13).ToString)
  520. .Add("@FOperV", SqlDbType.Date).Value = Operaciones.ConvertirFecha(coleccion(14).ToString)
  521. .Add("@FVenV", SqlDbType.Date).Value = Operaciones.ConvertirFecha(coleccion(15).ToString)
  522. .Add("@DiasTV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(16).ToString)
  523. .Add("@GCapTotV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(17).ToString)
  524. .Add("@GCapUnV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(18).ToString)
  525. .Add("@RetAnBrV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(19).ToString)
  526. .Add("@RetAnNetV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(20).ToString)
  527. .Add("@UnV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(21).ToString)
  528. .Add("@ValTransV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(22).ToString)
  529. .Add("@MontoNetoV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(23).ToString)
  530. .Add("@PrecSucioV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(24).ToString)
  531. .Add("@ComisionCompraCasa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(25).ToString)
  532. .Add("@ComisionCompraBolsa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(26).ToString)
  533. .Add("@ComisionVentaCasa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(27).ToString)
  534. .Add("@ComisionVentaBolsa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(28).ToString)
  535. .Add("@IOF", SqlDbType.Bit).Value = CByte(coleccion(29))
  536. .Add("@Renta", SqlDbType.Bit).Value = CByte(coleccion(30))
  537. .Add("@Tipo", SqlDbType.VarChar).Value = coleccion(31).ToString
  538. .Add("@ComisionCompraCasaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(32).ToString)
  539. .Add("@ComisionCompraBolsaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(33).ToString)
  540. .Add("@ComisionVentaCasaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(34).ToString)
  541. .Add("@ComisionVentaBolsaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(35).ToString)
  542. End With
  543. retorno = cmd.ExecuteNonQuery
  544. Catch ex As Exception
  545. MsgBox("Error al ingresar datos")
  546. End Try
  547. cn.Close()
  548. Return retorno
  549. End Function
  550. Public Function ModificarAccion(ByVal codigo As String, ByVal coleccion As Collection)
  551. Dim objCon As New Conexion
  552. Dim retorno As Integer
  553. Dim sql As String
  554. Dim cmd As SqlCommand
  555. Dim cn As SqlConnection = objCon.Conectar
  556. If cn.State = ConnectionState.Closed Then
  557. cn.Open()
  558. End If
  559. sql = "UPDATE [dbo].[ACC0] SET
  560. [PrecioLimpioC]=@PrecioLimpioC
  561. ,[FOperC]=@FOperC
  562. ,[FVenC]=@FVenC
  563. ,[DiasTC]=@DiasTC
  564. ,[GCapTotC]=@GCapTotC
  565. ,[GCapUnC]=@GCapUnC
  566. ,[RetAnBrC]=@RetAnBrC
  567. ,[RetAnNetC]=@RetAnNetC
  568. ,[UnC]=@UnC
  569. ,[ValTransC]=@ValTransC
  570. ,[MontoNetoC]=@MontoNetoC
  571. ,[PrecSucioC]=@PrecSucioC
  572. ,[PrecioLimpioV]=@PrecioLimpioV
  573. ,[FOperV]=@FOperV
  574. ,[FVenV]=@FVenV
  575. ,[DiasTV]=@DiasTV
  576. ,[GCapTotV]=@GCapTotV
  577. ,[GCapUnV]=@GCapUnV
  578. ,[RetAnBrV]=@RetAnBrV
  579. ,[RetAnNetV]=@RetAnNetV
  580. ,[UnV]=@UnV
  581. ,[ValTransV]=@ValTransV
  582. ,[MontoNetoV]=@MontoNetoV
  583. ,[PrecSucioV]=@PrecSucioV
  584. ,[ComisionCompraCasa]=@ComisionCompraCasa
  585. ,[ComisionCompraBolsa]=@ComisionCompraBolsa
  586. ,[ComisionVentaCasa]=@ComisionVentaCasa
  587. ,[ComisionVentaBolsa]=@ComisionVentaBolsa
  588. ,[IOF]=@IOF
  589. ,[Renta]=@Renta
  590. ,[Tipo]=@Tipo
  591. ,[ComisionCompraCasaValor]=@ComisionCompraCasaValor
  592. ,[ComisionCompraBolsaValor]=@ComisionCompraBolsaValor
  593. ,[ComisionVentaCasaValor]=@ComisionVentaCasaValor
  594. ,[ComisionVentaBolsaValor]=@ComisionVentaBolsaValor
  595. where [CodInv]=@CodInv
  596. "
  597. cmd = New SqlCommand
  598. cmd.CommandText = sql
  599. cmd.Connection = cn
  600. Try
  601. With cmd.Parameters
  602. .Add("@CodInv", SqlDbType.VarChar).Value = codigo.ToString
  603. .Add("@PrecioLimpioC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(1).ToString)
  604. .Add("@FOperC", SqlDbType.Date).Value = Operaciones.ConvertirFecha(coleccion(2).ToString)
  605. .Add("@FVenC", SqlDbType.Date).Value = Operaciones.ConvertirFecha(coleccion(3).ToString)
  606. .Add("@DiasTC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(4).ToString)
  607. .Add("@GCapTotC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(5).ToString)
  608. .Add("@GCapUnC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(6).ToString)
  609. .Add("@RetAnBrC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(7).ToString)
  610. .Add("@RetAnNetC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(8).ToString)
  611. .Add("@UnC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(9).ToString)
  612. .Add("@ValTransC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(10).ToString)
  613. .Add("@MontoNetoC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(11).ToString)
  614. .Add("@PrecSucioC", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(12).ToString)
  615. .Add("@PrecioLimpioV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(13).ToString)
  616. .Add("@FOperV", SqlDbType.Date).Value = Operaciones.ConvertirFecha(coleccion(14).ToString)
  617. .Add("@FVenV", SqlDbType.Date).Value = Operaciones.ConvertirFecha(coleccion(15).ToString)
  618. .Add("@DiasTV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(16).ToString)
  619. .Add("@GCapTotV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(17).ToString)
  620. .Add("@GCapUnV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(18).ToString)
  621. .Add("@RetAnBrV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(19).ToString)
  622. .Add("@RetAnNetV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(20).ToString)
  623. .Add("@UnV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(21).ToString)
  624. .Add("@ValTransV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(22).ToString)
  625. .Add("@MontoNetoV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(23).ToString)
  626. .Add("@PrecSucioV", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(24).ToString)
  627. .Add("@ComisionCompraCasa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(25).ToString)
  628. .Add("@ComisionCompraBolsa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(26).ToString)
  629. .Add("@ComisionVentaCasa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(27).ToString)
  630. .Add("@ComisionVentaBolsa", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(28).ToString)
  631. .Add("@IOF", SqlDbType.Bit).Value = CByte(coleccion(29))
  632. .Add("@Renta", SqlDbType.Bit).Value = CByte(coleccion(30))
  633. .Add("@Tipo", SqlDbType.VarChar).Value = coleccion(31).ToString
  634. .Add("@ComisionCompraCasaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(32).ToString)
  635. .Add("@ComisionCompraBolsaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(33).ToString)
  636. .Add("@ComisionVentaCasaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(34).ToString)
  637. .Add("@ComisionVentaBolsaValor", SqlDbType.Float).Value = Operaciones.ConvertirDecimal(coleccion(35).ToString)
  638. End With
  639. retorno = cmd.ExecuteNonQuery
  640. Catch ex As Exception
  641. MsgBox("Error al modificar datos")
  642. End Try
  643. cn.Close()
  644. Return retorno
  645. End Function
  646. Public Sub EliminarAccion(ByVal Codigo As String)
  647. Dim objCon As New Conexion
  648. Dim sql As String
  649. Dim cmd As SqlCommand
  650. Dim res As Integer
  651. Dim cn As SqlConnection = objCon.Conectar
  652. If cn.State = ConnectionState.Closed Then
  653. cn.Open()
  654. End If
  655. sql = "DELETE FROM [dbo].[ACC0]
  656. WHERE [CodInv]=@CodInv;DELETE FROM [dbo].[ACC1]
  657. WHERE [CodInv]=@CodInv;DELETE FROM [dbo].[ACC2]
  658. WHERE [CodInv]=@CodInv;"
  659. Try
  660. cmd = New SqlCommand
  661. cmd.CommandText = sql
  662. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Codigo
  663. cmd.Connection = cn
  664. res = cmd.ExecuteNonQuery
  665. Catch ex As Exception
  666. MsgBox("Error al eliminar")
  667. End Try
  668. cn.Close()
  669. End Sub
  670. Public Function Nuevo(ByVal oAccion As Object) As Integer
  671. Dim objCon As New Conexion
  672. Dim retorno As Integer
  673. Dim sql As String
  674. Dim cmd As SqlCommand
  675. Dim cn As SqlConnection = objCon.Conectar
  676. If cn.State = ConnectionState.Closed Then
  677. cn.Open()
  678. End If
  679. sql = "INSERT INTO [dbo].[ACC0]
  680. ([CodInv]
  681. ,[OpPrefC]
  682. ,[OpBolsaC]
  683. ,[PrecioLimpioC]
  684. ,[FOperC]
  685. ,[FLiqC]
  686. ,[DiasTC]
  687. ,[GCapTotC]
  688. ,[GCapUnC]
  689. ,[RetAnBrC]
  690. ,[RetAnNetC]
  691. ,[UnC]
  692. ,[ValTransC]
  693. ,[MontoNetoC]
  694. ,[PrecSucioC]
  695. ,[FactDiv]
  696. ,[PrecioLimpioV]
  697. ,[FOperV]
  698. ,[FLiqV]
  699. ,[DiasTV]
  700. ,[GCapTotV]
  701. ,[GCapUnV]
  702. ,[RetAnBrV]
  703. ,[RetAnNetV]
  704. ,[UnV]
  705. ,[ValTransV]
  706. ,[MontoNetoV]
  707. ,[PrecSucioV]
  708. ,[IngresoBruto]
  709. ,[IngresoBrutoPend]
  710. ,[ImpSumC]
  711. ,[ComSumC]
  712. ,[ImpSumV]
  713. ,[ComSumV]
  714. ,[ISR]
  715. ,[ISRPend]
  716. ,[IngresoNeto]
  717. ,[IngresoNetoPend]
  718. ,[SumImpComCompra]
  719. ,[SumImpComVenta])
  720. VALUES
  721. (@CodInv
  722. ,@OpPrefC
  723. ,@OpBolsaC
  724. ,@PrecioLimpioC
  725. ,@FOperC
  726. ,@FLiqC
  727. ,@DiasTC
  728. ,@GCapTotC
  729. ,@GCapUnC
  730. ,@RetAnBrC
  731. ,@RetAnNetC
  732. ,@UnC
  733. ,@ValTransC
  734. ,@MontoNetoC
  735. ,@PrecSucioC
  736. ,@FactDiv
  737. ,@PrecioLimpioV
  738. ,@FOperV
  739. ,@FLiqV
  740. ,@DiasTV
  741. ,@GCapTotV
  742. ,@GCapUnV
  743. ,@RetAnBrV
  744. ,@RetAnNetV
  745. ,@UnV
  746. ,@ValTransV
  747. ,@MontoNetoV
  748. ,@PrecSucioV
  749. ,@IngresoBruto
  750. ,@IngresoBrutoPend
  751. ,@ImpSumC
  752. ,@ComSumC
  753. ,@ImpSumV
  754. ,@ComSumV
  755. ,@ISR
  756. ,@ISRPend
  757. ,@IngresoNeto
  758. ,@IngresoNetoPend
  759. ,@SumImpComCompra
  760. ,@SumImpComVenta"
  761. cmd = New SqlCommand
  762. cmd.CommandText = sql
  763. cmd.Connection = cn
  764. With cmd.Parameters
  765. .Add("@CodInv", SqlDbType.Float).Value = oAccion.CodigoInversion
  766. .Add("@OpPrefC", SqlDbType.Float).Value = oAccion.AccionPreferente
  767. .Add("@OpBolsaC", SqlDbType.Float).Value = oAccion.OperacionEnBolsa
  768. .Add("@PrecioLimpioC", SqlDbType.Float).Value = oAccion.PrecioLimpioCompra
  769. .Add("@FOperC", SqlDbType.Float).Value = oAccion.FechaOperacionCompra
  770. .Add("@FLiqC", SqlDbType.Float).Value = oAccion.FechaLiquidacionCompra
  771. .Add("@DiasTC", SqlDbType.Float).Value = oAccion.DiasDeTenenciaCompra
  772. .Add("@GCapTotC", SqlDbType.Float).Value = oAccion.GananciaDeCapitalTotalCompra
  773. .Add("@GCapUnC", SqlDbType.Float).Value = oAccion.GananciaDeCapitalUnitarioCompra
  774. .Add("@RetAnBrC", SqlDbType.Float).Value = oAccion.RetornoAnualizadoBrutoCompra
  775. .Add("@RetAnNetC", SqlDbType.Float).Value = oAccion.RetornoAnualizadoNetoCompra
  776. .Add("@UnC", SqlDbType.Float).Value = oAccion.CantidadCompra
  777. .Add("@ValTransC", SqlDbType.Float).Value = oAccion.ValorTransadoCompra
  778. .Add("@MontoNetoC", SqlDbType.Float).Value = oAccion.MontoNetoCompra
  779. .Add("@PrecSucioC", SqlDbType.Float).Value = oAccion.PrecioSucioCompra
  780. .Add("@FactDiv", SqlDbType.Float).Value = oAccion.FactorDeDividendo
  781. .Add("@PrecioLimpioV", SqlDbType.Float).Value = oAccion.PrecioLimpioVenta
  782. .Add("@FOperV", SqlDbType.Float).Value = oAccion.FechaOperacionVenta
  783. .Add("@FLiqV", SqlDbType.Float).Value = oAccion.FechaLiquidacionVenta
  784. .Add("@DiasTV", SqlDbType.Float).Value = oAccion.DiasDeTenenciaVenta
  785. .Add("@GCapTotV", SqlDbType.Float).Value = oAccion.GananciaDeCapitalTotalVenta
  786. .Add("@GCapUnV", SqlDbType.Float).Value = oAccion.GananciaDeCapitalUnitarioVenta
  787. .Add("@RetAnBrV", SqlDbType.Float).Value = oAccion.RetornoAnualizadoBrutoVenta
  788. .Add("@RetAnNetV", SqlDbType.Float).Value = oAccion.RetornoAnualizadoNetoVenta
  789. .Add("@UnV", SqlDbType.Float).Value = oAccion.CantidadVenta
  790. .Add("@ValTransV", SqlDbType.Float).Value = oAccion.ValorTransadoVenta
  791. .Add("@MontoNetoV", SqlDbType.Float).Value = oAccion.MontoNetoVenta
  792. .Add("@PrecSucioV", SqlDbType.Float).Value = oAccion.PrecioSucioVenta
  793. .Add("@IngresoBruto", SqlDbType.Float).Value = oAccion.IngresoBruto
  794. .Add("@IngresoBrutoPend", SqlDbType.Float).Value = oAccion.IngresoBrutoPendiente
  795. .Add("@ImpSumC", SqlDbType.Float).Value = 0
  796. .Add("@ComSumC", SqlDbType.Float).Value = 0
  797. .Add("@ImpSumV", SqlDbType.Float).Value = 0
  798. .Add("@ComSumV", SqlDbType.Float).Value = 0
  799. .Add("@ISR", SqlDbType.Float).Value = oAccion.ISR
  800. .Add("@ISRPend", SqlDbType.Float).Value = 0
  801. .Add("@IngresoNeto", SqlDbType.Float).Value = oAccion.IngresoNeto
  802. .Add("@IngresoNetoPend", SqlDbType.Float).Value = 0
  803. .Add("@SumImpComCompra", SqlDbType.Float).Value = oAccion.SumaImpuestosYComisionesCompra
  804. .Add("@SumImpComVenta", SqlDbType.Float).Value = oAccion.SumaImpuestosYComisionesVenta
  805. End With
  806. retorno = cmd.ExecuteNonQuery
  807. Me.GuardarDividendos(oAccion.CodigoInversion, oAccion.Dividendos)
  808. Me.GuardarImpuestosYComisiones(oAccion.CodigoInversion, oAccion.ImpuestosYComisiones)
  809. cn.Close()
  810. Return retorno
  811. End Function
  812. Function Nuevo(ByVal oAccion As AccionesCE, DocId As Integer, Tipo As String) As Integer
  813. Dim objCon As New Conexion
  814. Dim retorno As Integer = -1
  815. Dim Transaccion As SqlTransaction
  816. Dim query As String
  817. Dim Tabla As String = ""
  818. Dim cn As SqlConnection = objCon.Conectar
  819. If cn.State = ConnectionState.Closed Then
  820. cn.Open()
  821. End If
  822. If Tipo = "P" Then
  823. Tabla = "PACC0"
  824. End If
  825. If Tipo = "I" Then
  826. Tabla = "IACC0"
  827. End If
  828. Dim cmd As SqlCommand = cn.CreateCommand
  829. Transaccion = cn.BeginTransaction("NuevaAccion")
  830. cmd.Connection = cn
  831. cmd.Transaction = Transaccion
  832. query = "INSERT INTO [dbo].[" & Tabla & "]
  833. ([DocId]
  834. ,[CodCasaC]
  835. ,[OpPrefC]
  836. ,[OpBolsaC]
  837. ,[PrecioLimpioC]
  838. ,[FOperC]
  839. ,[FLiqC]
  840. ,[DiasTC]
  841. ,[GCapTotC]
  842. ,[GCapUnC]
  843. ,[RetAnBrC]
  844. ,[RetAnNetC]
  845. ,[UnC]
  846. ,[ValTransC]
  847. ,[MontoNetoC]
  848. ,[PrecSucioC]
  849. ,[FactDiv]
  850. ,[PrecioLimpioV]
  851. ,[FOperV]
  852. ,[FLiqV]
  853. ,[DiasTV]
  854. ,[GCapTotV]
  855. ,[GCapUnV]
  856. ,[RetAnBrV]
  857. ,[RetAnNetV]
  858. ,[UnV]
  859. ,[ValTransV]
  860. ,[MontoNetoV]
  861. ,[PrecSucioV]
  862. ,[CodCasaV])
  863. VALUES
  864. (@DocId
  865. ,@CodCasaC
  866. ,@OpPrefC
  867. ,@OpBolsaC
  868. ,@PrecioLimpioC
  869. ,@FOperC
  870. ,@FLiqC
  871. ,@DiasTC
  872. ,@GCapTotC
  873. ,@GCapUnC
  874. ,@RetAnBrC
  875. ,@RetAnNetC
  876. ,@UnC
  877. ,@ValTransC
  878. ,@MontoNetoC
  879. ,@PrecSucioC
  880. ,@FactDiv
  881. ,@PrecioLimpioV
  882. ,@FOperV
  883. ,@FLiqV
  884. ,@DiasTV
  885. ,@GCapTotV
  886. ,@GCapUnV
  887. ,@RetAnBrV
  888. ,@RetAnNetV
  889. ,@UnV
  890. ,@ValTransV
  891. ,@MontoNetoV
  892. ,@PrecSucioV
  893. ,@CodCasaV
  894. )"
  895. cmd.CommandText = query
  896. With cmd.Parameters
  897. .Add("@DocId", SqlDbType.Int).Value = DocId
  898. .Add("@CodCasaC", SqlDbType.VarChar).Value = oAccion.CodigoCasaCompra
  899. .Add("@OpPrefC", SqlDbType.VarChar).Value = oAccion.AccionPreferente
  900. .Add("@OpBolsaC", SqlDbType.VarChar).Value = oAccion.OperacionEnBolsa
  901. .Add("@PrecioLimpioC", SqlDbType.Decimal).Value = oAccion.PrecioLimpioCompra
  902. .Add("@FOperC", SqlDbType.DateTime).Value = oAccion.FechaOperacionCompra
  903. .Add("@FLiqC", SqlDbType.DateTime).Value = oAccion.FechaVencimientoCompra
  904. .Add("@DiasTC", SqlDbType.Int).Value = oAccion.DiasDeTenenciaCompra
  905. .Add("@GCapTotC", SqlDbType.Decimal).Value = oAccion.GananciaDeCapitalTotalCompra
  906. .Add("@GCapUnC", SqlDbType.Decimal).Value = oAccion.GananciaDeCapitalUnitarioCompra
  907. .Add("@RetAnBrC", SqlDbType.Decimal).Value = oAccion.RetornoAnualizadoBrutoCompra
  908. .Add("@RetAnNetC", SqlDbType.Decimal).Value = oAccion.RetornoAnualizadoNetoCompra
  909. .Add("@UnC", SqlDbType.Int).Value = oAccion.CantidadCompra
  910. .Add("@ValTransC", SqlDbType.Decimal).Value = oAccion.ValorTransadoCompra
  911. .Add("@MontoNetoC", SqlDbType.Decimal).Value = oAccion.MontoNetoCompra
  912. .Add("@PrecSucioC", SqlDbType.Decimal).Value = oAccion.PrecioSucioCompra
  913. .Add("@FactDiv", SqlDbType.Decimal).Value = oAccion.FactorDeDividendo
  914. .Add("@PrecioLimpioV", SqlDbType.Decimal).Value = oAccion.PrecioLimpioVenta
  915. .Add("@FOperV", SqlDbType.DateTime).Value = oAccion.FechaOperacionVenta
  916. .Add("@FLiqV", SqlDbType.DateTime).Value = oAccion.FechaVencimientoVenta
  917. .Add("@DiasTV", SqlDbType.Int).Value = oAccion.DiasDeTenenciaVenta
  918. .Add("@GCapTotV", SqlDbType.Decimal).Value = oAccion.GananciaDeCapitalTotalVenta
  919. .Add("@GCapUnV", SqlDbType.Decimal).Value = oAccion.GananciaDeCapitalUnitarioVenta
  920. .Add("@RetAnBrV", SqlDbType.Decimal).Value = oAccion.RetornoAnualizadoBrutoVenta
  921. .Add("@RetAnNetV", SqlDbType.Decimal).Value = oAccion.RetornoAnualizadoNetoVenta
  922. .Add("@UnV", SqlDbType.Int).Value = oAccion.CantidadVenta
  923. .Add("@ValTransV", SqlDbType.Decimal).Value = oAccion.ValorTransadoVenta
  924. .Add("@MontoNetoV", SqlDbType.Decimal).Value = oAccion.MontoNetoVenta
  925. .Add("@PrecSucioV", SqlDbType.Decimal).Value = oAccion.PrecioSucioVenta
  926. .Add("@CodCasaV", SqlDbType.VarChar).Value = oAccion.CodigoCasaVenta
  927. End With
  928. Try
  929. cmd.ExecuteNonQuery()
  930. Transaccion.Commit()
  931. retorno = 0
  932. Catch ex As Exception
  933. MsgBox("Error al Guardar Accion : " & ex.GetType.ToString)
  934. MsgBox("Mensaje: " & ex.Message)
  935. retorno = 1
  936. Try
  937. Transaccion.Rollback()
  938. retorno = 2
  939. Catch ex2 As Exception
  940. MsgBox("Error en Rollback: " & ex2.GetType.ToString)
  941. MsgBox("Mensaje Rollbak: " & ex2.Message)
  942. retorno = 3
  943. End Try
  944. End Try
  945. cmd.Dispose()
  946. cn.Dispose()
  947. Return retorno
  948. End Function
  949. Public Function CargarRegistro(ByVal vCodigoInversion As String) As AccionesCE
  950. Dim objCon As New Conexion
  951. Dim oAcciones As New AccionesCE
  952. Dim dtDividendos As New DataTable
  953. Dim dtImpuestosYComisiones As New DataTable
  954. Dim drd As SqlDataReader
  955. Dim cmd As SqlCommand
  956. Dim da As SqlDataAdapter
  957. Dim sql As String
  958. Dim cn As SqlConnection = objCon.Conectar
  959. If cn.State = ConnectionState.Closed Then
  960. cn.Open()
  961. End If
  962. sql = "SELECT * FROM [dbo].[ACC0] T0 WHERE T0.CodInv=@CodInv"
  963. cmd = New SqlCommand
  964. cmd.CommandText = sql
  965. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = vCodigoInversion
  966. cmd.Connection = cn
  967. drd = cmd.ExecuteReader
  968. If drd.HasRows Then
  969. 'SE ENCONTRO EL REGISTRO
  970. 'oAcciones = New AccionesCE
  971. If drd.Read Then
  972. oAcciones.CodigoInversion = vCodigoInversion
  973. 'COMPRA
  974. oAcciones.AccionPreferente = Operaciones.ConvertirDecimal(drd.Item("OpPrefC").ToString)
  975. oAcciones.OperacionEnBolsa = Operaciones.ConvertirDecimal(drd.Item("OpBolsaC").ToString)
  976. oAcciones.PrecioLimpioCompra = Operaciones.ConvertirDecimal(drd.Item("PrecioLimpioC").ToString)
  977. oAcciones.CantidadCompra = Operaciones.ConvertirEntero(drd.Item("UnC").ToString)
  978. oAcciones.FechaOperacionCompra = Operaciones.ConvertirFecha(drd.Item("FOperC").ToString)
  979. oAcciones.FechaVencimientoCompra = Operaciones.ConvertirFecha(drd.Item("FVenC").ToString)
  980. oAcciones.RetornoBruto = Operaciones.ConvertirDecimal(drd.Item("RetAnBrC").ToString)
  981. If drd.Item("IOF").ToString Then
  982. oAcciones.IOF = True
  983. Else
  984. oAcciones.IOF = False
  985. End If
  986. If drd.Item("Renta").ToString Then
  987. oAcciones.Renta = True
  988. Else
  989. oAcciones.Renta = False
  990. End If
  991. oAcciones.GananciaDeCapitalTotalCompra = Operaciones.ConvertirDecimal(drd.Item("GCapTotC").ToString)
  992. oAcciones.GananciaDeCapitalUnitarioCompra = Operaciones.ConvertirDecimal(drd.Item("GCapUnC").ToString)
  993. oAcciones.RetornoAnualizadoBrutoCompra = Operaciones.ConvertirDecimal(drd.Item("RetAnBrC").ToString)
  994. oAcciones.RetornoAnualizadoNetoCompra = Operaciones.ConvertirDecimal(drd.Item("RetAnNetC").ToString)
  995. oAcciones.FactorDeDividendo = Operaciones.ConvertirDecimal(drd.Item("FactDiv").ToString)
  996. oAcciones.GananciaDeCapitalTotalVentasus = Operaciones.ConvertirDecimal(drd.Item("GCapTotV").ToString)
  997. oAcciones.GananciaDeCapitalUnitarioVenta = Operaciones.ConvertirDecimal(drd.Item("GCapUnV").ToString)
  998. oAcciones.RetornoAnualizadoBrutoVentasus = Operaciones.ConvertirDecimal(drd.Item("RetAnBrV").ToString)
  999. oAcciones.RetornoAnualizadoNetoVenta = Operaciones.ConvertirDecimal(drd.Item("RetAnNetV").ToString)
  1000. 'VENTA
  1001. oAcciones.PrecioLimpioVenta = Operaciones.ConvertirDecimal(drd.Item("PrecioLimpioV").ToString)
  1002. oAcciones.PrecioSucioCompra = Operaciones.ConvertirDecimal(drd.Item("PrecSucioC").ToString)
  1003. oAcciones.PrecioSucioVentasus = Operaciones.ConvertirDecimal(drd.Item("PrecSucioV").ToString)
  1004. oAcciones.FechaOperacionVenta = Operaciones.ConvertirFecha(drd.Item("FOperV").ToString)
  1005. oAcciones.FechaVencimientoVenta = Operaciones.ConvertirFecha(drd.Item("FVenV").ToString)
  1006. oAcciones.CantidadVenta = Operaciones.ConvertirEntero(drd.Item("UnV").ToString)
  1007. End If
  1008. oAcciones.Tipo = Operaciones.ConvertirEntero(drd.Item("Tipo").ToString)
  1009. oAcciones.DiasDeTenenciaCompra = Operaciones.ConvertirEntero(drd.Item("DiasTC").ToString)
  1010. oAcciones.DiasDeTenenciaVenta = Operaciones.ConvertirEntero(drd.Item("DiasTV").ToString)
  1011. oAcciones.ValorTransadoCompra = Operaciones.ConvertirDecimal(drd.Item("ValTransC").ToString)
  1012. oAcciones.ValorTransadoVenta = Operaciones.ConvertirDecimal(drd.Item("ValTransV").ToString)
  1013. oAcciones.MontoNetoComprasus = Operaciones.ConvertirDecimal(drd.Item("MontoNetoC").ToString)
  1014. oAcciones.MontoNetoVentasus = Operaciones.ConvertirDecimal(drd.Item("MontoNetoV").ToString)
  1015. oAcciones.ComisionCompraCasa = Operaciones.ConvertirDecimal(drd.Item("ComisionCompraCasaValor").ToString)
  1016. oAcciones.ComisionCompraBolsa = Operaciones.ConvertirDecimal(drd.Item("ComisionCompraBolsaValor").ToString)
  1017. oAcciones.ComisionVentaCasa = Operaciones.ConvertirDecimal(drd.Item("ComisionVentaCasaValor").ToString)
  1018. oAcciones.ComisionVentaBolsa = Operaciones.ConvertirDecimal(drd.Item("ComisionVentaBolsaValor").ToString)
  1019. oAcciones.ComisionPorcentajeCompraCasa = Operaciones.ConvertirDecimal(drd.Item("ComisionCompraCasa").ToString)
  1020. oAcciones.ComisionPorcentajeCompraBolsa = Operaciones.ConvertirDecimal(drd.Item("ComisionCompraBolsa").ToString)
  1021. oAcciones.ComisionPorcentajeVentaCasa = Operaciones.ConvertirDecimal(drd.Item("ComisionVentaCasa").ToString)
  1022. oAcciones.ComisionPorcentajeVentaBolsa = Operaciones.ConvertirDecimal(drd.Item("ComisionVentaBolsa").ToString)
  1023. drd.Close()
  1024. Else
  1025. oAcciones.CantidadCompra = 0
  1026. 'NO SE ENCONTRO EL REGISTRO
  1027. End If
  1028. cmd.Dispose()
  1029. cn.Dispose()
  1030. Return oAcciones
  1031. End Function
  1032. Public Function CargarRegistroActualizar() As DataTable
  1033. Dim objCon As New Conexion
  1034. Dim ds As New DataSet
  1035. Dim dt As DataTable
  1036. Dim da As SqlDataAdapter
  1037. Dim sql As String = String.Empty
  1038. Dim cn As SqlConnection = objCon.Conectar
  1039. If cn.State = ConnectionState.Closed Then
  1040. cn.Open()
  1041. End If
  1042. sql = "SELECT * FROM [dbo].[ACC0] "
  1043. da = New SqlDataAdapter(sql, cn)
  1044. da.Fill(ds)
  1045. dt = ds.Tables(0)
  1046. da.Dispose()
  1047. cn.Dispose()
  1048. Return dt
  1049. End Function
  1050. Public Function Actualizar(ByVal oAccionesCE As AccionesCE) As Integer
  1051. Dim objCon As New Conexion
  1052. Dim sql As String
  1053. Dim cmd As SqlCommand
  1054. Dim retorno As Integer
  1055. Dim cn As SqlConnection = objCon.Conectar
  1056. If cn.State = ConnectionState.Closed Then
  1057. cn.Open()
  1058. End If
  1059. sql = "
  1060. "
  1061. cmd = New SqlCommand
  1062. cmd.CommandText = sql
  1063. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = Variables.Codigo
  1064. cmd.CommandType = CommandType.Text
  1065. cmd.Connection = cn
  1066. retorno = cmd.ExecuteNonQuery()
  1067. cmd.Dispose()
  1068. cn.Dispose()
  1069. Return retorno
  1070. End Function
  1071. Private Sub GuardarDividendos(ByVal CodInversion As String, ByVal dt As DataTable)
  1072. Dim objCon As New Conexion
  1073. Dim sql As String
  1074. Dim cmd As SqlCommand
  1075. Dim res As Integer
  1076. Dim cn As SqlConnection = objCon.Conectar
  1077. If cn.State = ConnectionState.Closed Then
  1078. cn.Open()
  1079. End If
  1080. sql = "DELETE FROM [dbo].[ACC1]
  1081. WHERE [CodInv]=@CodInv"
  1082. cmd = New SqlCommand
  1083. cmd.CommandText = sql
  1084. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodInversion
  1085. cmd.Connection = cn
  1086. res = cmd.ExecuteNonQuery
  1087. sql = String.Empty
  1088. If dt.Rows.Count > 0 Then
  1089. For Each dr In dt.Rows
  1090. cmd = New SqlCommand
  1091. sql = "INSERT INTO [dbo].[ACC1]
  1092. ([CodInv]
  1093. ,[Fecha]
  1094. ,[Dividendo]
  1095. ,[CantidadBase]
  1096. ,[IngresoBruto]
  1097. ,[PorcISR]
  1098. ,[ISR]
  1099. ,[IngresoNeto])
  1100. VALUES
  1101. (@CodInv
  1102. ,@Fecha
  1103. ,@Dividendo
  1104. ,@CantidadBase
  1105. ,@IngresoBruto
  1106. ,@PorcISR
  1107. ,@ISR
  1108. ,@IngresoNeto)"
  1109. cmd.CommandText = sql
  1110. cmd.Parameters.AddWithValue("@CodInv", CodInversion)
  1111. cmd.Parameters.AddWithValue("@Fecha", Operaciones.ConvertirFecha(dr("Fecha").ToString))
  1112. cmd.Parameters.AddWithValue("@Dividendo", Operaciones.ConvertirDecimal(dr("Dividendo").ToString))
  1113. cmd.Parameters.AddWithValue("@CantidadBase", Operaciones.ConvertirDecimal(dr("CantidadBase").ToString))
  1114. cmd.Parameters.AddWithValue("@IngresoBruto", Operaciones.ConvertirDecimal(dr("IngresoBruto").ToString))
  1115. cmd.Parameters.AddWithValue("@PorcISR", Operaciones.ConvertirDecimal(dr("PorcISR").ToString))
  1116. cmd.Parameters.AddWithValue("@ISR", Operaciones.ConvertirDecimal(dr("ISR").ToString))
  1117. cmd.Parameters.AddWithValue("@IngresoNeto", Operaciones.ConvertirDecimal(dr("IngresoNeto").ToString))
  1118. cmd.Connection = cn
  1119. res = cmd.ExecuteNonQuery
  1120. Next
  1121. End If
  1122. cn.Close()
  1123. End Sub
  1124. Private Sub GuardarImpuestosYComisiones(ByVal CodInversion As String, ByVal dt As DataTable)
  1125. Dim objCon As New Conexion
  1126. Dim sql As String
  1127. Dim cmd As SqlCommand
  1128. Dim res As Integer
  1129. Dim cn As SqlConnection = objCon.Conectar
  1130. If cn.State = ConnectionState.Closed Then
  1131. cn.Open()
  1132. End If
  1133. sql = "DELETE FROM [dbo].[ACC2]
  1134. WHERE [CodInv]=@CodInv"
  1135. cmd = New SqlCommand
  1136. cmd.CommandText = sql
  1137. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = CodInversion
  1138. cmd.Connection = cn
  1139. res = cmd.ExecuteNonQuery
  1140. sql = String.Empty
  1141. If dt.Rows.Count > 0 Then
  1142. For Each dr In dt.Rows
  1143. cmd = New SqlCommand
  1144. sql = "INSERT INTO [dbo].[ACC2]
  1145. ([CodInv]
  1146. ,[TipoOper]
  1147. ,[CodImp]
  1148. ,[PorcImp]
  1149. ,[MontoImp]
  1150. ,[MontoSujeto])
  1151. VALUES
  1152. (@CodInv
  1153. ,@TipoOper
  1154. ,@CodImp
  1155. ,@PorcImp
  1156. ,@MontoImp
  1157. ,@MontoSujeto)"
  1158. cmd.CommandText = sql
  1159. cmd.Parameters.AddWithValue("@CodInv", CodInversion)
  1160. cmd.Parameters.AddWithValue("@TipoOper", dr("TipoOper"))
  1161. cmd.Parameters.AddWithValue("@CodImp", dr("CodImp"))
  1162. cmd.Parameters.AddWithValue("@PorcImp", Operaciones.ConvertirDecimal(dr("PorcImp").ToString))
  1163. cmd.Parameters.AddWithValue("@MontoImp", Operaciones.ConvertirDecimal(dr("MontoImp").ToString))
  1164. cmd.Parameters.AddWithValue("@MontoSujeto", Operaciones.ConvertirDecimal(dr("MontoSujeto").ToString))
  1165. cmd.Connection = cn
  1166. res = cmd.ExecuteNonQuery
  1167. Next
  1168. End If
  1169. cn.Close()
  1170. End Sub
  1171. Public Function CargarDividendo(ByVal codigo As String)
  1172. Dim objCon As New Conexion
  1173. Dim cn As SqlConnection = objCon.Conectar
  1174. If cn.State = ConnectionState.Closed Then
  1175. cn.Open()
  1176. End If
  1177. Dim sql = "select * from ACC1 where CodInv='" + codigo + "' order by NumDiv"
  1178. Dim cmd As New SqlCommand(sql, cn)
  1179. Dim dr As SqlDataReader
  1180. dr = cmd.ExecuteReader
  1181. Return dr
  1182. End Function
  1183. End Class