Comprobar cuenta corriente con Vb6 (Visual Basic)
Bienvenidos a VerTutoriales, siguiendo con los código subidos de Visual Basic, vamos a ver una función para comprobar si nuestra cuenta corriente está correcta, para ello generaremos el DC (dígito de control) de forma manual para compararlo con el número de cuenta, entidad y oficina y ver si es correcto.
La función no voy a explicarla en profundidad ya que lo único que he hecho ha sido adaptarla para Visual Basic de otras funciones que encontré por internet, actualmente ya está en producción. Así que funciona perfectamente.
Public Function CompruebaCC(ByVal numeroCuenta As String) As Boolean
Dim sDC As String‘guardo el Digito de Control y lo quito de la cadena para operar con numeroCuenta
sDC = Mid$(numeroCuenta, 9, 2)
numeroCuenta = Left$(numeroCuenta, 8) & Right$(numeroCuenta, 10)Dim cociente1, cociente2, resto1, resto2 As Integer
Dim sucursal, cuenta, dc1, dc2 As String
Dim suma1, suma2, n As Integer‘ Matriz que contiene los pesos utilizados en el
‘ algoritmo de cálculo de los dos dígitos de control.
‘
Dim pesos(10) As Integerpesos(0) = 6
pesos(1) = 3
pesos(2) = 7
pesos(3) = 9
pesos(4) = 10
pesos(5) = 5
pesos(6) = 8
pesos(7) = 4
pesos(8) = 2
pesos(9) = 1sucursal = Left$(numeroCuenta, 8)
cuenta = Mid$(numeroCuenta, 9, 10)‘ Obtengo el primer dígito de control que verificará
‘ los códigos de Entidad y Oficina.
‘
For n = 8 To 1 Step -1
suma1 = suma1 + CInt(Mid$(sucursal, n, 1)) * pesos(8 – n)
Next‘ Calculamos el cociente de dividir el resultado
‘ de la suma entre 11.
cociente1 = suma1 \ 11 ‘ Nos da un resultado entero.‘ Calculo el resto de la división.
resto1 = suma1 – (11 * cociente1)dc1 = CStr(11 – resto1)
Select Case dc1
Case “11”
dc1 = “0”
Case “10”
dc1 = “1”
End Select‘ Ahora obtengo el segundo dígíto, que verificará el número de cuenta de cliente.
For n = 10 To 1 Step -1
suma2 = suma2 + CInt(Mid$(cuenta, n, 1)) * pesos(10 – n)
Next‘ Calculamos el cociente de dividir el resultado de la suma entre 11.
cociente2 = suma2 \ 11 ‘ Nos da un resultado entero‘ Calculo el resto de la división.
resto2 = suma2 – (11 * cociente2)dc2 = CStr(11 – resto2)
Select Case dc2
Case “11”
dc2 = “0”
Case “10”
dc2 = “1”
End Select‘ Devuelvo el dígito de control.
‘
If (sDC = dc1 & dc2) Then
CompruebaCC = True
Else
CompruebaCC = False
End IfEnd Function
Como podréis ver la función no es muy compleja, simplemente realiza las operaciones necesarias para dar como resultado el digito de control de la cuenta corriente para luego evaluarlo con el introducido anteriormente.
Lo único que tendréis que hacer para operar con ella, sería pasarle el parámetro que no es otro que el número de cuenta completo. P. Ej.
CompruebaCC(‘01234567890123456789’)
Este caso devolvería False.
Espero que os sirva y os quite algo de trabajo!
Un saludo!