Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/08/2010, 14:17
mysql
 
Fecha de Ingreso: junio-2010
Mensajes: 11
Antigüedad: 14 años, 5 meses
Puntos: 0
Información Validar CUIT en mysql

Necesitaba una funcion que me valide los cuit desde mysql, encontre una en postgresql y la adapte a mysql, ya que no encontre una hecha en mysql.

Retorna 0 si el cuit es invalido y 1 si es valido.
Hay que pasarle el numero de corrido sin los guiones.

aca va el codigo por si alguno la necesita...

CREATE FUNCTION `validar_cuit`(
CUIT BIGINT
)
RETURNS varchar(18) CHARSET latin1
DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN

DECLARE RES, DIG, NUM BIGINT;
DECLARE i INT;


IF LENGTH(CUIT) != 11 OR SUBSTR(CUIT, 1, 2) = '00' THEN
RETURN 0;
END IF;

SET RES = 0;
SET i = 1;
WHILE i < 11 DO
SET NUM = (SUBSTR(CUIT, I, 1));

IF (i = 1 OR i = 7) THEN
SET RES = RES + NUM * 5;
ELSEIF (I = 2 OR I = 8) THEN
SET RES = RES + NUM * 4;
ELSEIF (I = 3 OR I = 9) THEN
SET RES = RES + NUM * 3;
ELSEIF (I = 4 OR I = 10) THEN
SET RES = RES + NUM * 2;
ELSEIF (I = 5) THEN
SET RES = RES + NUM * 7;
ELSEIF (I = 6) THEN
SET RES = RES + NUM * 6;
END IF;
SET i = i+1;
END WHILE;


SET DIG = 11 - MOD(RES,11);
IF DIG = 11 THEN
SET DIG = 0;
END IF;

IF DIG = (SUBSTR(CUIT,11,1)) THEN
RETURN 1;
ELSE
RETURN 0;
END IF;


END;