![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#2101
|
||||
|
||||
|
Cita:
|
|
#2102
|
|||
|
|||
|
Cita:
Código:
Function compruebacif() As Integer
compruebacif = 0
Dim esCIF As Boolean = Verificar_CIF(TextBox3.Text)
If Len(TextBox3.Text) = 0 Then
MsgBox("El valor introducido no es correcto.Corrija el problema y vuelva a intentarlo", MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, "Atencion")
Exit Function
End If
Dim esNIF As Boolean = Verificar_NIF(TextBox3.Text)
If esCIF = True Or esNIF = True Then
' LabelInfo.Text &= vbCrLf & "Es un CIF: " & TextBox10.Text
compruebacif = 1
End If
End Function
Public Function Verificar_NIF(ByVal valor As String) As Boolean
Dim aux As String
valor = valor.ToUpper ' ponemos la letra en mayúscula
aux = valor.Substring(0, valor.Length - 1) ' quitamos la letra del NIF
If aux.Length >= 7 AndAlso IsNumeric(aux) Then
aux = CalculaNIF(aux) ' calculamos la letra del NIF para comparar con la que tenemos
Else
Return False
End If
If valor <> aux Then ' comparamos las letras
Return False
End If
Return True
End Function
Private Function CalculaNIF(ByVal strA As String) As String
Const cCADENA As String = "TRWAGMYFPDXBNJZSQVHLCKE"
Const cNUMEROS As String = "0123456789"
Dim a, b, c, NIF As Integer
Dim sb As New StringBuilder
strA = Trim(strA)
If Len(strA) = 0 Then Return ""
' Dejar sólo los números
For i As Integer = 0 To strA.Length - 1
If cNUMEROS.IndexOf(strA(i)) > -1 Then
sb.Append(strA(i))
End If
Next
strA = sb.ToString
a = 0
NIF = CInt(Val(strA))
Do
b = CInt(Int(NIF / 24))
c = NIF - (24 * b)
a = a + c
NIF = b
Loop While b <> 0
b = CInt(Int(a / 23))
c = a - (23 * b)
Return strA & Mid(cCADENA, CInt(c + 1), 1)
End Function
Public Function Verificar_CIF(ByVal valor As String) As Boolean
Dim strLetra As String, strNumero As String, strDigit As String
Dim strDigitAux As String
Dim auxNum As Integer
Dim i As Integer
Dim suma As Integer
Dim letras As String
letras = "ABCDEFGHJNPQRSUVW"
'KLM
valor = UCase(valor)
If Len(valor) < 9 OrElse Not IsNumeric(Mid(valor, 2, 7)) Then
Return False
End If
strLetra = Mid(valor, 1, 1) ' letra del CIF
strNumero = Mid(valor, 2, 7) ' Código de Control
strDigit = Mid(valor, 9) ' CIF menos primera y última posición
If InStr(letras, strLetra) = 0 Then ' comprobamos la letra del CIF (1ª posición)
Return False
End If
For i = 1 To 7
If i Mod 2 = 0 Then
suma = suma + CInt(Mid(strNumero, i, 1))
Else
auxNum = CInt(Mid(strNumero, i, 1)) * 2
suma = suma + (auxNum \ 10) + (auxNum Mod 10)
End If
Next
suma = (10 - (suma Mod 10)) Mod 10
Select Case strLetra
Case "K", "P", "Q", "S"
suma = suma + 64
strDigitAux = Chr(suma)
Case "X"
strDigitAux = Mid(CalculaNIF(strNumero), 8, 1)
Case Else
strDigitAux = CStr(suma)
End Select
If strDigit = strDigitAux Then
Return True
Else
Return False
End If
End Function
MINIF=reemplazar por cif-nif MINOMBRE=reemplazar por el nombre o razon social <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vnif="http://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/burt/jdit/ws/VNifV2Ent.xsd" xmlns:LocalPart="http://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/burt/jdit/ws/VNifV2Ent.xsd"> <soapenv:Header/> <soapenv:Body> <vnif:VNifV2Ent> <vnif:Contribuyente> <vnif:Nif>MINIF</vnif:Nif> <vnif:Nombre>MINOMBRE</vnif:Nombre> </vnif:Contribuyente> </vnif:VNifV2Ent> </soapenv:Body> </soapenv:Envelope> un saludo Última edición por Neftali [Germán.Estévez] fecha: 11-07-2024 a las 11:42:19. Razón: Añadir TAGs al código |
|
#2103
|
|||
|
|||
|
Servicio consulta Identificadores fiscales
Cita:
pero te lo dejo aquí, teniendo en cuenta que está para ejecutarlo desde Curl.exe tendrás que pasarlo a los comandos curl de la aplicación que uses, delphi, php.... Ya alguno creo que lo hicieron y lo subieron también.: Cita:
Código PHP:
Cita:
Fichero ejemplo a enviar en la llamada (EnvioNif_extranjero.xml) Código PHP:
A tener en cuenta: -Se puede hacer consultas de cifs españoles de entidades Juridicas sin poner nombre y devuelve nombre -Las consultas de los nifs de personas fisicas deben ir acompañado del nombre y apellidos y devolveria el nombre y apellidos exactos registrado en la aeat si hay una coincidencia de un %del nombre. -Las consultas al VIES(Extranjero) devuelve ademas la direccion. - Hay que tener en cuenta que tanto en las llamadas como en las respuestas los nombres/apellidos y direcciones deben ser en UTF8 Última edición por ermendalenda fecha: 11-07-2024 a las 11:23:00. |
|
#2104
|
|||
|
|||
|
Cita:
|
|
#2105
|
|||
|
|||
|
Cita:
Se puede comprobar. NIES, CIFS de organismo oficiales, personas fisicas y entidades juridicas, cada caso tiene sus algoritmos. Lo fui sacando de internet. |
|
#2106
|
||||
|
||||
|
Cita:
Cita:
Hola, gracias, por la respuesta, la cusetion de la opcion de curl, no la veo viable para mi, puesto que mi aplicacion es de escritorio y en c#, asi que intentare migrar la version que me ha facilitado jlmoli_67, si lo consigo hacer funcionar os la pasare aqui, por si a alguien le interesa. Lo que tengo es una verificacion de la estructura y "crc" del NIF,CIF Y NIE en el momento de ingresarlos, lo que me interesaba es consultar si es real y pertenece al cliente, gracias. |
|
#2107
|
|||
|
|||
|
Cita:
Identificado No identificado Identificado-revocado |
|
#2108
|
||||
|
||||
|
Ok, gracias, lo tendre en cuenta al interpretar la respuesta.
|
|
#2109
|
|||
|
|||
|
Cita:
Si empieza por X,Y,Z,K,L,M es una persona física, tratarle como una persona española (NIF empezando con dígito) es decir poner nombre, en orden. Además el algoritmo de comprobación de la letra final es el mismo que para los españoles (módulo 23), después de remplazar la Y por 1, la Z por 2 y los demás por 0. Todos los demás casos (A-J, N-W) son administraciones, empresas y demás entidades jurídicas, extranjeras o mezcladas. La letra de control es realmente un dígito convertido a letra (1->A, 2->B ... 9->I y 0->J) por tanto debe ser entre A y J. Y no debe ser preciso enviar el nombre al servicio. |
|
#2110
|
|||
|
|||
|
Cita:
Para el tema de compras/ ventas con la U.E. Hace años estuve viendo lo de comprobar los VAT de empresas U.E. vía VIES Me llamo la atencion el caos que habia: Una empresa puede estar realizando operaciones intracomunitarias sin estar de alta en VIES. No lo implementé porque entendí que no valía para nada, aunque era muy facil |
|
#2111
|
|||
|
|||
|
¿Huh? A mi no me parecen operaciones intracomunitarias entonces, al menos en el marco del IVA (entregas intracomunitarias exentas, adquisiciones intracomunitarias con mecanismo de inversión de sujeto pasivo, modelo 349 etc.) ¿Puedes detallar un poco los casos que has encontrado?
|
|
#2112
|
||||
|
||||
|
En verifactu no lo se. Pero en el SII me encontrado con algún caso de hacer una factura Intracomunitaria contra un cliente/proveedor que no esta en el VIES y devolver un error el sistema.
Última edición por keys fecha: 12-07-2024 a las 09:34:23. |
|
#2113
|
|||
|
|||
|
noticias
El amigo FRANCHE acaba de enviarme este enlace
https://technical-regulation-informa...6031/text/D/ES Parece que algo se mueve |
|
#2114
|
|||
|
|||
|
Cita:
Hay una forma sencilla de comprobar si un negocio de la UE está dado de alta o no en el VIES: https://ec.europa.eu/taxation_custom.../vat/YYYYYYYYY Sustituyes XX por las dos letras del código del país Sustituyes YYYYYYYYY por el NIF o identificador que se use en ese país. En el resultado te aparecerá: ..."isValid" : true... O bien: ..."isValid" : false... Saludos |
|
#2115
|
||||
|
||||
|
Cita:
|
|
#2116
|
|||
|
|||
|
Cita:
Importante informacion |
|
#2117
|
|||
|
|||
|
Cita:
Habéis probado el de check vat? |
|
#2118
|
|||
|
|||
|
Pues a ver donde va a ir la url del QR de Facturae
Debe ser un </AdditionalData> Cita:
|
|
#2119
|
||||
|
||||
|
No. Como el otro funciona bien
![]() |
|
#2120
|
||||
|
||||
|
Publicado hoy en el portal d desarrolladores:
Corrección de erratas en esquemas XSD en sistemas VER*FACTU y no VER*FACTU Se ha corregido una errata en uno de los esquemas XSD asociado a los sistemas VERI*FACTU y no VERI*FACTU , concretamente en el esquema "SuministroInformacion.xsd". El campo IDFacturasSustituida pasa a denominarse IDFacturaSustituida dentro de la agrupación FacturasSustituidas en consonancia con FacturasRectificadas y por coherencia con el Diseño de registro publicado. Este cambio ya se encuentra publicado en los distintos enlaces dispuestos en el Portal de Desarrolladores. Ante cualquier duda/sugerencia y/o falta de corrección sobre la nueva información publicada, se recuerda el buzón de consultas técnicas de VERI*FACTU: [email protected] El Link lleva aquí.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Hijo de Informáticos | gluglu | Humor | 3 | 13-03-2007 11:05:35 |
| Adictos informaticos ... | Trigger | Humor | 2 | 11-10-2004 12:18:32 |
| Nosotros los Informáticos | Trigger | Humor | 1 | 10-10-2004 14:58:09 |
| Patrón de los Informáticos. | obiwuan | Varios | 20 | 10-09-2003 14:44:54 |
| Chistes Informaticos | jhonny | Humor | 2 | 11-08-2003 21:59:09 |
|