Les dejo el codigo de ejemplo:
----------------------------------------------------------------------------
--------------------
CREATE OR REPLACE FUNCTION "public"."validar_cuit" (bigint) RETURNS varchar
AS
$body$
DECLARE
RES BIGINT;
DIG BIGINT;
NUM BIGINT;
CUIT ALIAS FOR $1;
BEGIN
IF LENGTH(CUIT) != 11 OR SUBSTR(CUIT, 1, 2) = '00' THEN
RETURN 0;
END IF;
RES = 0;
FOR I IN 1..10 LOOP
NUM := (SUBSTR(CUIT, I, 1));
IF (I = 1 OR I = 7) THEN RES := RES + NUM * 5;
ELSIF (I = 2 OR I = 8) THEN RES := RES + NUM * 4;
ELSIF (I = 3 OR I = 9) THEN RES := RES + NUM * 3;
ELSIF (I = 4 OR I = 10) THEN RES := RES + NUM * 2;
ELSIF (I = 5) THEN RES := RES + NUM * 7;
ELSIF (I = 6) THEN RES := RES + NUM * 6;
END IF;
END LOOP;
DIG := 11 - MOD(RES,11);
IF DIG = 11 THEN
DIG := 0;
END IF;
IF DIG = (SUBSTR(CUIT,11,1)) THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER;
COMMENT ON FUNCTION "public"."validar_cuit"(bigint)
IS 'Valida el CUIT segun formato 99999999999
Devuelve 0 para los CUIT No Válidos
Devuelve 1 para los CUIT Válidos';
----------------------------------------------------------------------------
--------------------
-----Mensaje original-----
De: pgsql-es-ayuda-owner@postgresql.org
[mailto:pgsql-es-ayuda-owner@postgresql.org] En nombre de Damian Culotta
Enviado el: Martes, 30 de Septiembre de 2008 05:28 p.m.
Para: pgsql-es-ayuda@postgresql.org
Asunto: Re: [pgsql-es-ayuda] Validación de CUIT - Argentina
2008/9/30 Daniel Ferrer <daniel.ferrer@ctd.com.ar>:
> Buenas Tardes a todos:
> Alguien tiene armada alguna función para validar el
> CUIT (Clave Única de Identificación Tributaria) de Argentina.
>
> Desde ya les agradezco.
>
> Atte.
> ___________________________
> ASC Daniel Ferrer
> Gerente de Sistemas - CTD SRL
> Rosario - Argentina
> mailto:daniel.ferrer@ctd.com.ar
> ___________________________
>
> --
> TIP 7: no olvides aumentar la configuración del "free space map"
>
Salvo que se haya actualizado el asunto, hasta donde recuerdo, no está
definida formalmente la función para calcular la validez de un CUIT.
Si bien hay funciones dando vueltas (yo no tengo encima ninguna en
este momento) que servirían para hacerlo, no son "oficiles".
Ojalá me esté equivocando y alquien pueda darte la referncia a un
instructivo de la AFIP.
Saludos.
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
http://archives.postgresql.org/pgsql-es-ayuda
--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
No comments:
Post a Comment