![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Hola
Conozco softwares que están trabajando normalmente online contra un servidor en la nube. Ese servidor es el que tiene la base datos de tiquets y en la que se proceda, genera, guarda tiquets, contadores y series. Pero, en las tiendas tienen un tpv que hace de backup y si cae la nube este tpv es el que hace de principal ahora. Que pasaría si hacemos caso al planteamiento que hemos interpretado todos, incluido yo. Ese tpv central en la Red local ya no tiene acceso a la nube y por tanto pierde el encadenamiento con el r4sto de tpvs del mismo cif que estén en otras sedes que no sean de la red local. Con lo cual se nos plantea un lío impresionante. Hasta ahora estos tpvs cuando entraban de nuevo en marcha con la nube volcaban a la nube lo que han generado localmente, pero seria imposible de insertar en el encadenamiento con el resto de equipos de otras sedes. Ahora el mismo planteamiento a nivel local. Un servidor central que lo genera todo en la Red local, y si cae. Cada tpv sigue generando independientemente. Por tanto, al menos en estas circunstancias y para mí el SIF debe ser cada tpv. |
|
#2
|
|||
|
|||
|
Cita:
por eso yo he hecho ese planteamiento en mi pregunta anterior porque si extrapolamos lo que yo planteaba sobre la fecha/hora de cierre de factura a la fecha/hora de llegada al servidor de la factura y se pudiera encadenar los registros por dicha fecha/hora de llegada sin importar la serie y numero seria solo el servidor el que generara secuencialmente el encadenamiento y envio pero sino es asi coincido contigo en que "el SIF debe ser cada tpv". Yo lo que voy buscando es precisamente quitar a los tpvs el trabajo de encadenar y enviar,¿porque?, pues porque despues caducan los certificados, el cliente pasa de todo o no se quiere enterar y cuando se entera te pasa un embolao de mil pares de demonios que tu debes de solucionar para ayer. En fin, sigo dando vueltas al tema. |
|
#3
|
|||
|
|||
|
Cita:
|
|
#4
|
|||
|
|||
|
Cita:
|
|
#5
|
|||
|
|||
|
Por si os sirve como lo he hecho yo:
Aunque tengo certificados instalados en cada tpv, si se pegan un mes caducados me da un poco igual, por que solo lo uso para una última comprobación de los números de identificación fiscal y nombres de clientes contra el servicio de la AEAt, y si están caducados a pasado al menos por la comprobación del cif. A ver, 1. Genero la factura con su XML HASH, QR y encadenamiento en el tpv 2.Envio el XML verifactu,el xml face y el pdf de la factura a un servidor que es el que se va a encargar de mandarlo COMO TERCERO a verifactu. Con lo cual he encadenado en un SIF y he enviado desde otro punto. 2.El control de errores lo lleva ese servidor que me envía un email con el reporte de Oks o KOs cada cierto tiempo. 3. Si el servidor central detecta que un tpv lleva 30horas sin enviar, me lo incluye en el reporte (durante 1 semana cada dia,mas tiempo es innecesario indica que se ha dejado de usar o ya es conocido el problema) de que ese tpv de ese comercio no está enviando desde tal fecha a tal hora. 4. Si un tpv empieza a enviar cosas extrañas, duplicadas, saltos de numeración etc, me manda un reporte inmediato. Llevo con este diseño desde 2020 y me va del carajo Algo de tranquilidad da. |
|
#6
|
|||
|
|||
|
Cita:
Muchas gracias |
|
#7
|
|||
|
|||
|
Cita:
Si tienes como yo montón de tpvs, además de varias empresas, franquicias, etc. Es un sistema que funciona bastante bien. Eso sí, ten en cuenta el numero de tpvs que estén simultáneamente enviando, si vas hacer muchas comprobaciones como hago yo, para dimensionar bien el que pongas, lo tuvimos que cambiar por la carga tan inmensa ee tantos tiquets por wegundo Por que yo compruebo hasta el hash y el encadenamiento, no me fio ni de mí |
|
#8
|
||||
|
||||
|
Cita:
|
|
#9
|
|||
|
|||
|
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 |
|
#10
|
|||
|
|||
|
Cita:
|
|
#11
|
|||
|
|||
|
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. |
|
#12
|
||||
|
||||
|
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. |
|
#13
|
|||
|
|||
|
Cita:
Hay otra alternativa, mientras haya conexión con la nube o con la red de área local, se puede trabajar con un sólo SIF que sería el central y éste se encargaría de generar, encadenar y emitir los registros de facturación. Si un tpv queda fuera de la red por problemas técnicos, podría convertirse automáticamente en SIF dicho tpv y seguir generando sus facturas, encadenamientos y registros de facturación siguiendo otros contadores propios preparados para tal efecto. EN cuanto recupere la conexión, ese tpv deja de actuar como un SIF, mantiene sus contadores para la próxima vez, y se vuelve a integrar en el SIF central. EL caso extremo, se cae la nube o servidor central, todos los tpv pasarían a trabajar en modo SIF. Ojo, siempre el mismo identificador de SIF para cada Tpv, o sea, que no lo cambie cada vez que cae. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|