*------------------------------------------------------------
* FUNCTION ValidarCBU(tcCBU)
*------------------------------------------------------------
* Valida CBU (Clave Bancaria Uniforme)
* Solamente para la Argentina
* USOS:
* ? ValidarCBU("2650450-2 0214505639667-6")
* ? ValidarCBU("2650450202145056396676")
* ? ValidarCBU("26504502/02145056396676")
*------------------------------------------------------------
*-- Formato del CBU:
*-- EEESSSS-V TTTTTTTTTTTTT-V
*-- Bloque 1:
*-- EEE - Número de entidad (3 posiciones)
*-- SSSS - Número de sucursal (4 posiciones)
*-- V - Dígito verificador de las primeras 7 posiciones
*-- Bloque 2:
*-- TTTTTTTTTTTTT - Identificación de la cuenta individual
*-- V - Dígito verificador de las anteriores 13 posiciones
*--
*-- Para el cálculo de los dígitos verificadores se
*-- debe aplicar la clave 10 con el ponderador 9713
*------------------------------------------------------------
FUNCTION ValidarCBU(tcCBU)
LOCAL lcCBU, lcBloque1, lcBloque2
lcCBU = CHRTRAN(tcCBU,CHRTRAN(tcCBU,"1234567890",""),"")
IF LEN(lcCBU) = 22
lcBloque1 = SUBSTR(lcCBU, 1, 8)
lcBloque2 = SUBSTR(lcCBU, 9, 14)
RETURN ValidarDigito(lcBloque1) ;
AND ValidarDigito(lcBloque2)
ELSE
RETURN .F. && Largo de CBU incorrecto
ENDIF
ENDFUNC
*------------------------------------------------------------
* FUNCTION ValidarDigito(tcBloque)
*------------------------------------------------------------
* Valida Dígito Verificador
*------------------------------------------------------------
FUNCTION ValidarDigito(tcBloque)
*-- Ponderador '9713'
#DEFINE Pond '9713'
LOCAL lnSuma, lnLargo, ln, lcDigito, lcBloque
lnSuma = 0
lnLargo = LEN(tcBloque)
lcDigito = SUBSTR(tcBloque, lnLargo, 1)
lcBloque = SUBSTR(tcBloque, 1, lnLargo - 1)
FOR ln = 1 TO lnLargo - 1
lnSuma = lnSuma + ;
VAL(SUBSTR(lcBloque, lnLargo - ln, 1)) * ;
VAL(SUBSTR(Pond, MOD(4-ln,4) + 1, 1))
ENDFOR
RETURN lcDigito = RIGHT(STR(10 - MOD(lnSuma, 10)),1)
ENDFUNC
*------------------------------------------------------------
Luis María Guayán
17 de junio de 2002
Validar CBU (solo para Argentina)
Rutina que valida la CBU (Clave Bancaria Uniforme) para Argentina
Suscribirse a:
Comentarios de la entrada
(
Atom
)
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.