SeriesDAO.vb 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. Imports System.Data.SqlClient
  2. Imports System.Text.RegularExpressions
  3. Public Module SeriesDAO
  4. Public Function SiguienteCodigoInversion(ByVal vCodigoEmpresa As String, ByVal vCodigoInstrumentoFinanciero As String) As String
  5. Dim objCon As New Conexion
  6. Dim retorno As Integer
  7. Dim valor1 As Integer
  8. Dim valor2 As Integer
  9. Dim cmd As SqlCommand
  10. Dim cmd2 As SqlCommand
  11. Dim CodigoPIN As String = String.Empty
  12. Dim CodigoINV As String = String.Empty
  13. Dim CorrelativoPIN As Match
  14. Dim CorrelativoINV As Match
  15. Dim cn As SqlConnection = objCon.Conectar
  16. If cn.State = ConnectionState.Closed Then
  17. cn.Open()
  18. End If
  19. 'SELECT COUNT('A') FROM [dbo].[INV0] WHERE CodInv=@CodInv
  20. ''''''''''''''''''''''''''
  21. If (String.IsNullOrEmpty(vCodigoEmpresa) And Not String.IsNullOrEmpty(vCodigoInstrumentoFinanciero)) Then
  22. cmd = New SqlCommand("SELECT CodInv FROM [dbo].[PIN0] WHERE (DocId = (SELECT MAX(DocId) FROM [dbo].[PIN0] where CodIF='" + vCodigoInstrumentoFinanciero + "')) AND (CodEmpr is NULL OR CodEmpr='' OR CodEmpr=' ')", cn)
  23. CodigoPIN = cmd.ExecuteScalar
  24. If String.IsNullOrEmpty(CodigoPIN) Then
  25. valor1 = 0
  26. Else
  27. CorrelativoPIN = Regex.Match(CodigoPIN, "\d+")
  28. If CorrelativoPIN.Success Then
  29. valor1 = CInt(CorrelativoPIN.Value)
  30. Else
  31. valor1 = 0
  32. End If
  33. End If
  34. cmd.Dispose()
  35. cmd2 = New SqlCommand("SELECT CodInv FROM [dbo].[INV0] WHERE (DocId = (SELECT MAX(DocId) FROM [dbo].[INV0] where CodIF='" + vCodigoInstrumentoFinanciero + "')) AND (CodEmpr is NULL OR CodEmpr='' OR CodEmpr=' ')", cn)
  36. CodigoINV = cmd2.ExecuteScalar
  37. If String.IsNullOrEmpty(CodigoINV) Then
  38. valor2 = 0
  39. Else
  40. CorrelativoINV = Regex.Match(CodigoINV, "\d+")
  41. If CorrelativoINV.Success Then
  42. valor2 = CInt(CorrelativoINV.Value)
  43. Else
  44. valor2 = 0
  45. End If
  46. End If
  47. cmd2.Dispose()
  48. If (valor1 < valor2) Then
  49. retorno = valor2
  50. ElseIf (valor1 > valor2) Then
  51. retorno = valor1
  52. ElseIf (valor1 = valor2) Then
  53. retorno = valor1
  54. End If
  55. cn.Dispose()
  56. Dim Codigo As String = String.Empty
  57. Dim Correlativo As Integer = CInt(retorno) + 1
  58. Codigo = Format(Correlativo, "00000")
  59. Return (vCodigoInstrumentoFinanciero + Codigo)
  60. ''''''''''''''''''''''''''''''''''''''''
  61. ElseIf (String.IsNullOrEmpty(vCodigoInstrumentoFinanciero) And Not String.IsNullOrEmpty(vCodigoEmpresa)) Then
  62. cmd = New SqlCommand("SELECT CodInv FROM [dbo].[PIN0] WHERE (DocId = (SELECT MAX(DocId) FROM [dbo].[PIN0] where CodEmpr='" + vCodigoEmpresa + "')) AND (CodIF is NULL OR CodIF='' OR CodIF=' ')", cn)
  63. CodigoPIN = cmd.ExecuteScalar
  64. If String.IsNullOrEmpty(CodigoPIN) Then
  65. valor1 = 0
  66. Else
  67. CorrelativoPIN = Regex.Match(CodigoPIN, "\d+")
  68. If CorrelativoPIN.Success Then
  69. valor1 = CInt(CorrelativoPIN.Value)
  70. Else
  71. valor1 = 0
  72. End If
  73. End If
  74. cmd.Dispose()
  75. cmd2 = New SqlCommand("SELECT CodInv FROM [dbo].[INV0] WHERE (DocId = (SELECT MAX(DocId) FROM [dbo].[INV0] where CodEmpr='" + vCodigoEmpresa + "')) AND (CodIF is NULL OR CodIF='' OR CodIF=' ')", cn)
  76. CodigoINV = cmd2.ExecuteScalar
  77. If String.IsNullOrEmpty(CodigoINV) Then
  78. valor2 = 0
  79. Else
  80. CorrelativoINV = Regex.Match(CodigoINV, "\d+")
  81. If CorrelativoINV.Success Then
  82. valor2 = CInt(CorrelativoINV.Value)
  83. Else
  84. valor2 = 0
  85. End If
  86. End If
  87. cmd2.Dispose()
  88. If (valor1 < valor2) Then
  89. retorno = valor2
  90. ElseIf (valor1 > valor2) Then
  91. retorno = valor1
  92. ElseIf (valor1 = valor2) Then
  93. retorno = valor1
  94. End If
  95. cn.Dispose()
  96. Dim Codigo As String = String.Empty
  97. Dim Correlativo As Integer = CInt(retorno) + 1
  98. Codigo = Format(Correlativo, "00000")
  99. Return (vCodigoEmpresa + Codigo)
  100. ''''''''''''''''''''''''''''''''''
  101. ElseIf (String.IsNullOrEmpty(vCodigoEmpresa) And String.IsNullOrEmpty(vCodigoInstrumentoFinanciero)) Then
  102. Return 0
  103. ElseIf (Not String.IsNullOrEmpty(vCodigoEmpresa) And Not String.IsNullOrEmpty(vCodigoInstrumentoFinanciero)) Then
  104. Dim suma As Integer
  105. cmd = New SqlCommand("SELECT CodInv FROM [dbo].[PIN0] WHERE (DocId = (SELECT MAX(DocId) FROM [dbo].[PIN0] where CodInv like '%" + vCodigoEmpresa + vCodigoInstrumentoFinanciero + "%'))", cn)
  106. CodigoPIN = cmd.ExecuteScalar
  107. If String.IsNullOrEmpty(CodigoPIN) Then
  108. valor1 = 0
  109. Else
  110. CorrelativoPIN = Regex.Match(CodigoPIN, "\d+")
  111. If CorrelativoPIN.Success Then
  112. valor1 = CInt(CorrelativoPIN.Value)
  113. Else
  114. valor1 = 0
  115. End If
  116. End If
  117. valor1 += 1
  118. cmd2 = New SqlCommand("SELECT CodInv FROM [dbo].[INV0] WHERE (DocId = (SELECT MAX(DocId) FROM [dbo].[INV0] where CodInv like '%" + vCodigoEmpresa + vCodigoInstrumentoFinanciero + "%'))", cn)
  119. CodigoINV = cmd2.ExecuteScalar
  120. If String.IsNullOrEmpty(CodigoINV) Then
  121. valor2 = 0
  122. Else
  123. CorrelativoINV = Regex.Match(CodigoINV, "\d+")
  124. If CorrelativoINV.Success Then
  125. valor2 = CInt(CorrelativoINV.Value)
  126. Else
  127. valor2 = 0
  128. End If
  129. End If
  130. valor2 += 1
  131. If (valor1 < valor2) Then
  132. suma = valor2
  133. ElseIf (valor1 > valor2) Then
  134. suma = valor1
  135. ElseIf (valor1 = valor2) Then
  136. suma = valor1
  137. End If
  138. Dim Codigo As String = String.Empty
  139. Dim Correlativo As Integer = CInt(suma)
  140. Codigo = Format(Correlativo, "00000")
  141. Return (vCodigoEmpresa + vCodigoInstrumentoFinanciero + Codigo)
  142. End If
  143. ' cmd.CommandType = CommandType.StoredProcedure
  144. '.Parameters.Add("@vCodEmpresa", SqlDbType.VarChar).Value = vCodigoEmpresa
  145. 'cmd.Parameters.Add("@vCodigoIF", SqlDbType.VarChar).Value = vCodigoInstrumentoFinanciero
  146. End Function
  147. Public Sub IncrementarCodigoInversion(ByVal vCodigoEmpresa As String, ByVal vCodigoInstrumentoFinanciero As String)
  148. Dim objCon As New Conexion
  149. Dim sql As String
  150. Dim cmd As SqlCommand
  151. Dim res As Integer
  152. Dim cn As SqlConnection = objCon.Conectar
  153. If cn.State = ConnectionState.Closed Then
  154. cn.Open()
  155. End If
  156. sql = "UPDATE [dbo].[SER0]
  157. SET [Correlativo] = [Correlativo]+1
  158. WHERE [CodEmpr] = @CodEmpr AND [CodIF] = @CodIF"
  159. cmd = New SqlCommand
  160. cmd.CommandText = sql
  161. cmd.Parameters.Add("@CodEmpr", SqlDbType.VarChar).Value = vCodigoEmpresa
  162. cmd.Parameters.Add("@CodIF", SqlDbType.VarChar).Value = vCodigoInstrumentoFinanciero
  163. cmd.Connection = cn
  164. res = cmd.ExecuteNonQuery
  165. cmd.Dispose()
  166. cn.Dispose()
  167. End Sub
  168. End Module