*------------------------------------------------------------ * 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.