PDA

Ver la Versión Completa : Consulta a traves de PHP


freddiaz07
29-08-2011, 22:28:53
hola amigos(as), consegui un codigo en internet de como consultar
los datos de una persona o empresa en el seniat que es comprobar como esta registrado, http://contribuyente.seniat.gob.ve/BuscaRif/BuscaRif.jsp

estoy realizando una aplicacion que me muestre los datos al colocar
el numero de Cedula o Rif, esto es solo para venezuela, quisiera saber como implemento este codigo en delphi 7. Saludos




(001
<?php
002
/*************************************************************************
003
Clase de Validación del RIF (Registro de información fiscal) en Venezuela
004
Autor : Gunther González
005
Empresa : Igloo Web Studio
006
E-mail : hide@address.com
007
Web : http://www.igloo.com.ve
008
Fecha : 28/09/2006
009
Versión : 2.0
010
**************************************************************************/
011

012
//clase validarRIF
013
class vRIF
014
{
015
//**Atributos de la clase
016
var $URL;
017
var $pref;
018
var $mensaje;
019
var $RIF;
020
var $empresa;
021

022
//Constructor
023
function vRIF($RIF, $empresa)
024
{
025
$this->URL = "http://www.seniat.gov.ve/BuscaRif/BuscaRif.jsp?p_rif=";
026
$this->pref = "J,V,P,E,G";
027
$this->RIF = $RIF;
028
$this->empresa = $empresa;
029
}
030

031
//Función consultarRIF
032
//Consulta con la base de datos del SENIAT si el RIF existe
033
//y si esta asignado a la empresa dada.
034
function consultarRIF()
035
{
036
//Si la función formatearRIF devuelve TRUE
037
//se ejecuta el codigo
038
if ($this->formatearRIF($this->RIF))
039
{
040
//Abre la conexión con la BD del SENIAT
041
$file = fopen ($this->URL.$this->RIF, "r");
042

043
//Si no se puede establecer la conexión
044
//se emite un mensaje de error.
045
if (!$file)
046
{
047
$this->mensaje = $this->mensajes(05);
048
return;
049
}
050

051
//Lee el resultado de la consulta a la BD del SENIAT
052
while (!feof($file)) {
053
$consulta = fread($file, 8192);
054
}
055

056
//Busca el nombre de la empresa en el resultado de
057
//la BD del SENIAT
058
$consulta = stristr(strip_tags($consulta), $this->empresa);
059

060

061
//Si el RIF no existe o no está asignado a la empresa dada
062
//se emite un mensaje de error.
063
if (!$consulta)
064
{
065
$this->mensaje = $this->mensajes(06);
066
return;
067
}
068

069
//Si el RIF existe y está asignado a la empresa dada
070
//se emite un mensaje de exito.
071
else
072
{
073
$this->mensaje = $this->mensajes(07);
074
return;
075
}
076

077
//Cierra la conexión con la BD del SENIAT
078
fclose($file);
079
}
080
}
081

082
//Función formatearRIF
083
//Da formato y valida la estructura del RIF recibido
084
function formatearRIF($RIF)
085
{
086
//Elimina espacios al comienzo y al final del RIF
087
//Convierte todos los caracteres del RIF a MAYUSCULAS
088
//Elimina el guión (-) del número de RIF
089
$result = trim(strtoupper(str_replace("-","",$RIF)));
090

091
//Comprueba la longitud del RIF
092
//este solo puede tener una longitud de 10 caracteres
093
if (strlen($result) != 10)
094
{
095
$this->mensaje = $this->mensajes(01);
096
return false;
097
}
098
else
099
{
100
//Comprueba si el primer digito del RIF es un nmero
101
//este caracter solo puede ser una letra
102
if (is_numeric(substr($result,0,1)))
103
{
104
$this->mensaje = $this->mensajes(02);
105
return false;
106
}
107

108
//Comprueba si el primer digito del RIF contiene
109
//un caracter vlido este solo puede ser:
110
// "V" (Venezolanos)
111
// "E" (Extranjeros
112
// "P" (Pasaporte)
113
// "J" (Persona jurÃ*dica)
114
// "G" (Ente gubernamental)
115
elseif (!strrchr($this->pref,substr($result,0,1)))
116
{
117
$this->mensaje = $this->mensajes(03);
118
return false;
119
}
120

121
//Comprueba si los últimos 9 digitos del RIF son números
122
//estos no pueden contener letras
123
elseif (!is_numeric(substr($result,1)))
124
{
125
$this->mensaje = $this->mensajes(04);
126
return false;
127
}
128
else
129
{
130
//Devuelve el RIF una vez que ha sido formateado y validado
131
$this->RIF = $result;
132
return true;
133
}
134
}
135
}
136

137
function mensajes($num)
138
{
139
$msj[01] = "Recuerde que el RIF debe poseer 10 digitos (12 con los guiones).";
140
$msj[02] = "El primer caracter del RIF no puede ser un número.";
141
$msj[03] = "El primer caracter del RIF solo puede ser 'J', 'V', 'P', 'E' o 'G'.";
142
$msj[04] = "Los últimos 9 digitos del RIF solo pueden ser números.";
143
$msj[05] = "No se puede acceder al servidor en este momento.";
144
$msj[06] = "El RIF (".$this->RIF.") no está asignado a ".strtoupper($this->empresa)." o no existe";
145
$msj[07] = "El RIF esta perfecto";
146

147
return $msj[$num];
148
}
149
}
150
?>