IngresosDAO.vb 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. Imports System.Data.SqlClient
  2. Module IngresosDAO
  3. Public Function ListaIngresos(ByVal vFechaI As Date, vFechaF As Date, vSoloPendientes As Boolean) As DataTable
  4. Dim cn As New Conexion
  5. Dim dt As New DataTable
  6. Dim da As SqlDataAdapter
  7. Dim pSoloPendientes As Integer
  8. If vSoloPendientes Then
  9. pSoloPendientes = 1
  10. Else
  11. pSoloPendientes = 0
  12. End If
  13. da = New SqlDataAdapter("SP_Ingresos_Master", cn.Conectar)
  14. da.SelectCommand.CommandType = CommandType.StoredProcedure
  15. da.SelectCommand.Parameters.Add("@FechaI", SqlDbType.DateTime).Value = vFechaI
  16. da.SelectCommand.Parameters.Add("@FechaF", SqlDbType.DateTime).Value = vFechaF
  17. da.SelectCommand.Parameters.Add("@SoloPendientes", SqlDbType.Bit).Value = pSoloPendientes
  18. da.Fill(dt)
  19. Return dt
  20. End Function
  21. Public Function DetalleDeIngreso(ByVal vCodInv As String, ByVal vIngresoID As Integer) As IngresoDetalleCE
  22. Dim oIngresoDetalleCE As New IngresoDetalleCE
  23. Dim oConexion As New Conexion
  24. Dim cn As SqlConnection
  25. Dim cmd As SqlCommand
  26. Dim vSqlParameter As SqlParameter
  27. Dim dr As SqlDataReader
  28. cmd = New SqlCommand
  29. cmd.CommandText = "SP_IngresosDetalle"
  30. cmd.CommandType = CommandType.StoredProcedure
  31. vSqlParameter = New SqlParameter
  32. vSqlParameter.ParameterName = "@CodInv"
  33. vSqlParameter.SqlDbType = SqlDbType.VarChar
  34. vSqlParameter.Direction = ParameterDirection.Input
  35. vSqlParameter.Value = vCodInv
  36. cmd.Parameters.Add(vSqlParameter)
  37. vSqlParameter = New SqlParameter
  38. vSqlParameter.ParameterName = "@IngresoId"
  39. vSqlParameter.SqlDbType = SqlDbType.Int
  40. vSqlParameter.Direction = ParameterDirection.Input
  41. vSqlParameter.Value = vIngresoID
  42. cmd.Parameters.Add(vSqlParameter)
  43. cn = oConexion.Conectar
  44. If Not cn.State = ConnectionState.Open Then
  45. cn.Open()
  46. End If
  47. cmd.Connection = cn
  48. dr = cmd.ExecuteReader()
  49. If dr.HasRows Then
  50. 'oIngresoDetalleCE = New IngresoDetalleCE
  51. While dr.Read
  52. oIngresoDetalleCE.CodigoInversion = dr.Item("CodInv").ToString
  53. oIngresoDetalleCE.CodigoInstrumentoFinanciero = dr.Item("CodIF").ToString
  54. oIngresoDetalleCE.NombreManualIF = dr.Item("NombreManIF").ToString
  55. oIngresoDetalleCE.CodigoManualIF = dr.Item("CodManIF").ToString
  56. oIngresoDetalleCE.CodigoEmpresa = dr.Item("CodEmpr").ToString
  57. If Not Date.TryParse(dr.Item("FechaVencimiento"), oIngresoDetalleCE.FechaVencimiento) Then
  58. oIngresoDetalleCE.FechaVencimiento = Date.MinValue.Date
  59. End If
  60. Integer.TryParse(dr.Item("Correlativo"), oIngresoDetalleCE.IngresoId)
  61. Double.TryParse(dr.Item("Capital").ToString, oIngresoDetalleCE.MontoCapitalProyectado)
  62. Double.TryParse(dr.Item("IngresoBruto"), oIngresoDetalleCE.MontoIngresoBrutoProyectado)
  63. Double.TryParse(dr.Item("ISR"), oIngresoDetalleCE.MontoISRProyectado)
  64. Double.TryParse(dr.Item("IngresoNeto"), oIngresoDetalleCE.MontoIngresoNetoProyectado)
  65. oIngresoDetalleCE.EstadoDelIngreso = dr.Item("EstadoIngreso").ToString
  66. oIngresoDetalleCE.SAP_BD = dr.Item("SAP_BD").ToString
  67. End While
  68. End If
  69. Return oIngresoDetalleCE
  70. End Function
  71. Public Function ValidarIngreso(ByVal pCodInv As String, ByVal pIngresoId As Integer) As Integer
  72. Dim res As Integer
  73. Dim oConexion As New Conexion
  74. Dim cn As SqlConnection
  75. Dim cmd As SqlCommand
  76. Dim vSqlParameter As SqlParameter
  77. Dim query As String
  78. query = "UPDATE [dbo].[INGR]
  79. SET [FechaValidacion] = @FechaValidacion
  80. ,[Validado] = 'S'
  81. WHERE
  82. [CodInv]=@CodInv
  83. AND [IngresoID]=@IngresoID
  84. "
  85. cn = oConexion.Conectar
  86. cmd = New SqlCommand()
  87. cmd.CommandText = query
  88. cmd.CommandType = CommandType.Text
  89. vSqlParameter = New SqlParameter
  90. vSqlParameter.ParameterName = "@CodInv"
  91. vSqlParameter.SqlDbType = SqlDbType.VarChar
  92. vSqlParameter.Direction = ParameterDirection.Input
  93. vSqlParameter.Value = pCodInv
  94. cmd.Parameters.Add(vSqlParameter)
  95. vSqlParameter = New SqlParameter
  96. vSqlParameter.ParameterName = "@IngresoId"
  97. vSqlParameter.SqlDbType = SqlDbType.Int
  98. vSqlParameter.Direction = ParameterDirection.Input
  99. vSqlParameter.Value = pIngresoId
  100. cmd.Parameters.Add(vSqlParameter)
  101. vSqlParameter = New SqlParameter
  102. vSqlParameter.ParameterName = "@FechaValidacion"
  103. vSqlParameter.SqlDbType = SqlDbType.VarChar
  104. vSqlParameter.Direction = ParameterDirection.Input
  105. vSqlParameter.Value = Date.Now.Date
  106. cmd.Parameters.Add(vSqlParameter)
  107. If Not cn.State = ConnectionState.Open Then
  108. cn.Open()
  109. End If
  110. cmd.Connection = cn
  111. res = cmd.ExecuteNonQuery()
  112. Return res
  113. End Function
  114. Public Function ConciliarIngreso(ByVal pCodInv As String, ByVal pIngresoId As Integer) As Integer
  115. Dim res As Integer
  116. Dim oConexion As New Conexion
  117. Dim cn As SqlConnection
  118. Dim cmd As SqlCommand
  119. Dim vSqlParameter As SqlParameter
  120. Dim query As String
  121. query = "UPDATE [dbo].[INGR]
  122. SET [FechaConciliacion] = @FechaConciliacion
  123. ,[Conciliado] = 'S'
  124. WHERE
  125. [CodInv]=@CodInv
  126. AND [IngresoID]=@IngresoID
  127. "
  128. cn = oConexion.Conectar
  129. cmd = New SqlCommand()
  130. cmd.CommandText = query
  131. cmd.CommandType = CommandType.Text
  132. vSqlParameter = New SqlParameter
  133. vSqlParameter.ParameterName = "@CodInv"
  134. vSqlParameter.SqlDbType = SqlDbType.VarChar
  135. vSqlParameter.Direction = ParameterDirection.Input
  136. vSqlParameter.Value = pCodInv
  137. cmd.Parameters.Add(vSqlParameter)
  138. vSqlParameter = New SqlParameter
  139. vSqlParameter.ParameterName = "@IngresoId"
  140. vSqlParameter.SqlDbType = SqlDbType.Int
  141. vSqlParameter.Direction = ParameterDirection.Input
  142. vSqlParameter.Value = pIngresoId
  143. cmd.Parameters.Add(vSqlParameter)
  144. vSqlParameter = New SqlParameter
  145. vSqlParameter.ParameterName = "@FechaConciliacion"
  146. vSqlParameter.SqlDbType = SqlDbType.VarChar
  147. vSqlParameter.Direction = ParameterDirection.Input
  148. vSqlParameter.Value = Date.Now.Date
  149. cmd.Parameters.Add(vSqlParameter)
  150. If Not cn.State = ConnectionState.Open Then
  151. cn.Open()
  152. End If
  153. cmd.Connection = cn
  154. res = cmd.ExecuteNonQuery()
  155. Return res
  156. End Function
  157. Public Function RegistrarIngreso(ByVal pRegistroIngresoCE As RegistroIngresoCE) As Integer
  158. Dim query As String
  159. Dim cmd As SqlCommand
  160. Dim oConexion As New Conexion
  161. Dim cn As SqlConnection
  162. Dim retorno As Integer
  163. query = "INSERT INTO [dbo].[INGR]
  164. ([CodEmpr]
  165. ,[CodIF]
  166. ,[CodBanco]
  167. ,[CodInv]
  168. ,[IngresoID]
  169. ,[FormaPago]
  170. ,[CuentaBanco]
  171. ,[FechaRegistro]
  172. ,[Registrado]
  173. ,[FechaIngreso]
  174. ,[MontoCapital]
  175. ,[MontoIngresoBruto]
  176. ,[MontoISR]
  177. ,[MontoIngresoNeto]
  178. ,[MontoIngresoLiquido]
  179. ,[TransId]
  180. )
  181. VALUES
  182. (@CodEmpr
  183. ,@CodIF
  184. ,@CodBanco
  185. ,@CodInv
  186. ,@IngresoID
  187. ,@FormaPago
  188. ,@CuentaBanco
  189. ,@FechaRegistro
  190. ,'S'
  191. ,@FechaIngreso
  192. ,@MontoCapital
  193. ,@MontoIngresoBruto
  194. ,@MontoISR
  195. ,@MontoIngresoNeto
  196. ,@MontoIngresoLiquido
  197. ,@TransId
  198. )
  199. "
  200. cmd = New SqlCommand
  201. cmd.CommandText = query
  202. cmd.Parameters.Add("@CodEmpr", SqlDbType.VarChar).Value = pRegistroIngresoCE.CodigoEmpresa
  203. cmd.Parameters.Add("@CodIF", SqlDbType.VarChar).Value = pRegistroIngresoCE.CodigoInstrumento
  204. cmd.Parameters.Add("@CodBanco", SqlDbType.VarChar).Value = pRegistroIngresoCE.CodigoBanco
  205. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = pRegistroIngresoCE.CodigoInversion
  206. cmd.Parameters.Add("@IngresoID", SqlDbType.Int).Value = pRegistroIngresoCE.IngresoID
  207. cmd.Parameters.Add("@FormaPago", SqlDbType.VarChar).Value = pRegistroIngresoCE.FormaDePago
  208. cmd.Parameters.Add("@CuentaBanco", SqlDbType.VarChar).Value = pRegistroIngresoCE.CuentaBancaria
  209. cmd.Parameters.Add("@FechaRegistro", SqlDbType.DateTime).Value = pRegistroIngresoCE.FechaRegistro
  210. cmd.Parameters.Add("@FechaIngreso", SqlDbType.DateTime).Value = pRegistroIngresoCE.FechaDelIngreso
  211. cmd.Parameters.Add("@MontoCapital", SqlDbType.Float).Value = pRegistroIngresoCE.MontoCapital
  212. cmd.Parameters.Add("@MontoIngresoBruto", SqlDbType.Float).Value = pRegistroIngresoCE.MontoIngresoBruto
  213. cmd.Parameters.Add("@MontoISR", SqlDbType.Float).Value = pRegistroIngresoCE.MontoISR
  214. cmd.Parameters.Add("@MontoIngresoNeto", SqlDbType.Float).Value = pRegistroIngresoCE.MontoIngresoNeto
  215. cmd.Parameters.Add("@MontoIngresoLiquido", SqlDbType.Float).Value = pRegistroIngresoCE.MontoIngresoLiquido
  216. cmd.Parameters.Add("@TransId", SqlDbType.VarChar).Value = pRegistroIngresoCE.TransId
  217. cn = oConexion.Conectar
  218. cmd.Connection = cn
  219. cn.Open()
  220. retorno = cmd.ExecuteNonQuery
  221. 'ACTUALIZA ESTADO DEL INGRESO PROYECTADO
  222. Dim vTipoIF As String
  223. query = String.Empty
  224. cmd = New SqlCommand
  225. cmd.CommandText = "SELECT T0.Tipo FROM [dbo].[INFI] T0 WHERE T0.CodIF = @CodIF"
  226. cmd.Parameters.Add("@CodIF", SqlDbType.VarChar).Value = pRegistroIngresoCE.CodigoInstrumento
  227. cmd.Connection = cn
  228. If Not cn.State = ConnectionState.Open Then
  229. cn.Open()
  230. End If
  231. vTipoIF = cmd.ExecuteScalar
  232. If vTipoIF = "ACC" Then
  233. query = "UPDATE [dbo].[ACC1] SET Estado='R' WHERE CodInv=@CodInv AND Correlativo=@Correlativo"
  234. End If
  235. If vTipoIF = "DAP" Then
  236. query = "UPDATE [dbo].[DAP1] SET Estado='R' WHERE CodInv=@CodInv AND Correlativo=@Correlativo"
  237. End If
  238. Dim vUpdate As Integer
  239. cmd = New SqlCommand
  240. cmd.CommandText = query
  241. cmd.Parameters.Add("@CodInv", SqlDbType.VarChar).Value = pRegistroIngresoCE.CodigoInversion
  242. cmd.Parameters.Add("@Correlativo", SqlDbType.VarChar).Value = pRegistroIngresoCE.IngresoID
  243. If Not cn.State = ConnectionState.Open Then
  244. cn.Open()
  245. End If
  246. cmd.Connection = cn
  247. vUpdate = cmd.ExecuteNonQuery
  248. If vUpdate <> 1 Then
  249. MsgBox("Falla al actualizar el Ingreso a 'Recibido'.")
  250. End If
  251. Return retorno
  252. End Function
  253. Public Function DetalleIngresoRecibido(ByVal pCodInv As String, ByVal pIngresoId As Integer) As RegistroIngresoCE
  254. Dim oRegistroIngresoCE As RegistroIngresoCE
  255. Dim oConexion As New Conexion
  256. Dim cn As SqlConnection
  257. Dim cmd As SqlCommand
  258. Dim query As String
  259. Dim vCount As Integer
  260. Dim vSqlParameter As SqlParameter
  261. Dim dr As SqlDataReader
  262. cn = oConexion.Conectar
  263. If Not cn.State = ConnectionState.Open Then
  264. cn.Open()
  265. End If
  266. cmd = New SqlCommand
  267. cmd.Connection = cn
  268. vSqlParameter = New SqlParameter
  269. vSqlParameter.ParameterName = "@CodInv"
  270. vSqlParameter.SqlDbType = SqlDbType.VarChar
  271. vSqlParameter.Direction = ParameterDirection.Input
  272. vSqlParameter.Value = pCodInv
  273. cmd.Parameters.Add(vSqlParameter)
  274. vSqlParameter = New SqlParameter
  275. vSqlParameter.ParameterName = "@IngresoId"
  276. vSqlParameter.SqlDbType = SqlDbType.VarChar
  277. vSqlParameter.Direction = ParameterDirection.Input
  278. vSqlParameter.Value = pIngresoId
  279. cmd.Parameters.Add(vSqlParameter)
  280. query = "SELECT COUNT('A')
  281. FROM [dbo].[INGR] T0
  282. WHERE T0.Codinv=@Codinv AND T0.IngresoId=@IngresoId"
  283. cmd.CommandText = query
  284. cmd.CommandType = CommandType.Text
  285. vCount = cmd.ExecuteScalar
  286. If vCount = 1 Then
  287. oRegistroIngresoCE = New RegistroIngresoCE
  288. query = "SELECT T0.*
  289. FROM [dbo].[INGR] T0
  290. WHERE T0.Codinv=@Codinv AND T0.IngresoId=@IngresoId"
  291. cmd.CommandText = query
  292. dr = cmd.ExecuteReader
  293. If dr.HasRows Then
  294. While dr.Read
  295. oRegistroIngresoCE.CodigoBanco = dr.Item("CodBanco").ToString
  296. oRegistroIngresoCE.FormaDePago = dr.Item("FormaPago").ToString
  297. oRegistroIngresoCE.CuentaBancaria = dr.Item("CuentaBanco").ToString
  298. oRegistroIngresoCE.FechaDelIngreso = dr.Item("FechaIngreso").ToString
  299. oRegistroIngresoCE.Validado = dr.Item("Validado").ToString
  300. If Not IsDBNull(dr.Item("FechaValidacion")) Then
  301. oRegistroIngresoCE.FechaValidacion = dr.Item("FechaValidacion")
  302. Else
  303. oRegistroIngresoCE.FechaValidacion = Date.MinValue.Date
  304. End If
  305. oRegistroIngresoCE.Conciliado = dr.Item("Conciliado").ToString
  306. If Not IsDBNull(dr.Item("FechaConciliacion")) Then
  307. oRegistroIngresoCE.FechaConciliacion = dr.Item("FechaConciliacion")
  308. Else
  309. oRegistroIngresoCE.FechaConciliacion = Date.MinValue.Date
  310. End If
  311. oRegistroIngresoCE.MontoCapital = dr.Item("MontoCapital").ToString
  312. oRegistroIngresoCE.MontoIngresoBruto = dr.Item("MontoIngresoBruto").ToString
  313. oRegistroIngresoCE.MontoISR = dr.Item("MontoISR").ToString
  314. oRegistroIngresoCE.MontoIngresoNeto = dr.Item("MontoIngresoNeto").ToString
  315. oRegistroIngresoCE.MontoIngresoLiquido = dr.Item("MontoIngresoLiquido").ToString
  316. End While
  317. End If
  318. End If
  319. Return oRegistroIngresoCE
  320. End Function
  321. End Module