![]() |
![]() |
| 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
Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución. Lo comento por si a alguien le ha pasado lo mismo. Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más. Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad. ¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística? ![]() |
|
#2
|
|||
|
|||
|
Porque tardas 2 segundos en obtener el QR? Nosotros trabajamos también con grandes volúmenes de facturas y el proceso que consume más tiempo es el firmado de la factura al tener que encolar las facturas para conservar el encadenamiento. Una vez firmada ya la factura la generación del QR es instantáneo e independiente del envío.
|
|
#3
|
||||
|
||||
|
Cita:
|
|
#4
|
|||
|
|||
|
Cita:
2 segundos es una barbaridad de tiempo para generar y firmar el XML. Sólo se me ocurren varios casos en que se pudiese tardar tanto: 1- Que la generación y firma del XML la hagas sobre un servidor en Internet que esté situado en la superficie de la Luna (justo un ping de 2 segundos) 2- Que utilices para la firma el software Autofirma-Tortuga del Ministerio de Hacienda (un auténtico ejemplo de software ultralento) 3- Que para el proceso utilices red con protocolo TCP/Paloma_mensajera_lenta ![]() Si quieres un sistema de firma rápida en red, te basta con montar un simple microordenador Raspberry PI de unos 30€ en tu propia red local con el software de firma firmador.php de nuestro colega (y nunca bien alabado) Bilbur. Con este sistema, lo normal será que no pases de 10 milisegundos en tiempo para obtener la firma. Con 1.000 facturas por minuto el Raspberry Pi estará aburrido por tan poca carga de trabajo ![]() Saludos |
|
#5
|
|||
|
|||
|
Cita:
Estoy preparando una API en PHP Una pregunta para Sistel, El fichero json que envías a la API viene a ser el xml completo previo a la firma del mismo o es una conjunto pequeño de datos con los que generar el xml (código empresa, código cliente, fecha, etc) Estoy optando por esto último pero así la API resulta menos "genérica" y mas "personalizada" Gracias |
|
#6
|
|||
|
|||
|
Cita:
El fichero JSON que se envía a mi API contiene sólo los datos básicos: - Identificación del emisor - Datos del destinatario (si lo hay, como en el caso de factura completa) - Tipo de factura y características esenciales - Líneas de detalle (nombres de productos, importes unitarios, cantidades, descuentos, tipo de IVA, ...) No se envían ni serie, ni número ni fecha de factura ni datos económicos ni total. La API se encarga de: - Verificar los datos que le llegan - Recabar los datos de la última factura (de ese tipo) del emisor desde la base de datos - Crear líneas de detalles adicionales si hay descuentos globales en la factura - Calcular datos económicos como bases, cuotas de IVA, totales, ... - Asignar serie, número y fecha de factura - Crear el XML - Firmar el XML - Comprobar la validez del XML firmado (con el esquema XSD) - Grabar los datos de la factura, los detalles y los importes en la base de datos - Devolver un JSON con todos los datos calculados (bases, cuotas, totales, líneas de detalle), serie, número y fecha de la factura y códigos TBAI y QR - Enviar a la correspondiente Hacienda Foral el XML TicketBAI y registrar el envío en la base de datos. Opté porque la API lo haga todo y retorne todo lo necesario para crear el documento de la factura. No puedo confiar en que llegue, del emisor, el total correcto o el número de factura o fecha correcta. Prefiero que eso lo genere mi API. Saludos Última edición por Sistel fecha: 02-06-2022 a las 09:13:31. |
|
#7
|
||||
|
||||
|
Buenas a todos, tengo un pequeño dolor de muelas:
Estoy intentando parsear la respuesta de Batuz a objeto y con el 140 perfecto, pero el 240 no hay manera, he descargado los últimos XSDs publicados por Bizkaia y he regenerado la clase varias veces pero en todos los casos me peta diciendo: "No se esperaba <LROEPJ240FacturasEmitidasConSGAltaRespuesta xmlns='https://www.batu etc..." La clase parece haberse generado bien y el XML de respuesta tiene buena pinta así que no sé que más hacer ¿Habéis tenido algún problema similar? Gracias y buen finde! ![]() |
|
#8
|
||||
|
||||
|
Cita:
¿El error que obtienes, te da ejecutando algún código (dices que la generación parace correcta)? Puedes poner el código.
__________________
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. |
|
#9
|
||||
|
||||
|
Cita:
El XSD es el siguiente: "LROE_PJ_240_1_1_FacturasEmitidas_ConSG_AltaRespuesta_V1_0_1.xsd", que a su vez depende de "batuz_Enumerados.xsd", "batuz_TiposBasicos.xsd" y "batuz_TiposComplejos.xsd" El comando que empleo para generarlo es: (En la consola para desarrolladores de visual studio) Código:
"/c LROE_PJ_240_1_1_FacturasEmitidas_ConSG_AltaRespuesta_V1_0_1.xsd batuz_TiposComplejos.xsd batuz_Enumerados.xsd batuz_TiposBasicos.xsd /namespace:TicketBaiBatuzAlta240Respuesta" Código:
LROEPJ240FacturasEmitidasConSGAltaRespuesta batuz240RespuestaAlta = new LROEPJ240FacturasEmitidasConSGAltaRespuesta();
using (var reader = new StringReader(respuestaBatuz))
{
batuz240RespuestaAlta = (LROEPJ240FacturasEmitidasConSGAltaRespuesta)serializer.Deserialize(reader);
}
Gracias de antemano ![]() |
|
#10
|
|||
|
|||
|
Cita:
|
|
#11
|
|||
|
|||
|
Hola y muchas gracias por vuestra colaboración,
Estoy haciendo pruebas con el envío de XMLs de Consultas a Bizkaia y me da el siguiente error: Date: Fri, 25 Mar 2022 16:38:49 GMT Server: JBoss-EAP/7 Content-Encoding: gzip eus-bizkaia-n3-identificativo: nnnnnnnnnn (ID de la operación) X-Powered-By: Undertow/1 eus-bizkaia-n3-mensaje-respuesta: =?windows-1252?Q?Operaci=F3n_err=F3nea.?= eus-bizkaia-n3-codigo-respuesta: B4_1000025 eus-bizkaia-n3-numero-registro: eus-bizkaia-n3-tipo-respuesta: Incorrecto Content-Type: application/xml; charset=UTF-8 Content-Length: 0 El XML que envío es el siguiente: <?xml version="1.0" encoding="utf-8"?> <lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion xmlns:lrpficfcsgcp="https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_ConsultaPeticion_V1_0_0.xsd"> <Cabecera> <Modelo>140</Modelo> <Capitulo>1</Capitulo> <Subcapitulo>1.1</Subcapitulo> <Operacion>C00</Operacion> <Version>1.0</Version> <Ejercicio>2022</Ejercicio> <ObligadoTributario> <NIF>-----------</NIF> (NIF y Nombre y apellidos que me han otorgado para pruebas) <ApellidosNombreRazonSocial>nombre apellido1 apellido2</ApellidosNombreRazonSocial> </ObligadoTributario> </Cabecera> <FiltroConsultaIngresosConSG> <CabeceraFactura> <SerieFactura>VT21</SerieFactura> </CabeceraFactura> <NumPaginaConsulta>1</NumPaginaConsulta> </FiltroConsultaIngresosConSG> </lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion> Estoy viendo los ejemplos que tienen ellos y no consigo ver donde se encuentra el fallo. ¿Problemas de ...? Saludos y buen fin de semana, Joselu |
|
#12
|
|||
|
|||
|
Cita:
<complexType name="FiltroConsultaIngresosConFacturaType"> <sequence> <element name="Destinatario" type="tiposcomplejos ocumentoType" minOccurs="0"/><element name="CabeceraFactura" type="tiposconsulta:CabeceraFacturaConsultaType" minOccurs="0"/> <element name="Epigrafe" type="tiposbasicos:stringMax7Digits" minOccurs="0"/> <element name="Estado" type="enum:EstadoRegistroConsultaEnum" minOccurs="0"/> <element name="NumPaginaConsulta" type="tiposbasicos:intPositiveType"/> </sequence> </complexType> |
|
#13
|
|||
|
|||
|
Cita:
Al final el problema era que estaba llamando a la a la URI de alta, modificación y anulación y debía ser a la de consulta: https://pruesarrerak.bizkaia.eus/N3B4001M/kontsulta Saludos y muchas gracias, Joselu |
|
#14
|
|||
|
|||
|
Cita:
No sé si te servirá, pero yo hago lo siguiente: - Lo primero de todo genero el registro de factura vacío, con solo el número, y fecha y hora de expedición. - Genero un registro en la "cola" de facturas para ese ID. - Empiezo a procesar los datos enviados (factura, líneas detalle, etc.) - Actualizo la tabla de factura con los datos definitivos, guardo las líneas de factura en otra tabla etc. - Genero XML, QR, etc... La instrucción SQL que utilizo genera el número y actualiza al mismo tiempo por lo que nunca se van a repetir. Tengo una tabla de "configuración" donde guardo el último número para cada CIF y serie (son dos empresas). Código PHP:
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice | newtron | Internet | 3716 | 19-01-2026 20:01:34 |
| Como utilizar la ayuda del nuevo Sistema Operativo | gluglu | Humor | 3 | 24-09-2007 09:39:05 |
| Aplicacion Agencia De Viajes | ArdiIIa | Varios | 9 | 20-01-2007 16:49:53 |
| El Vasco Aguirre | Al González | La Taberna | 5 | 26-05-2006 09:22:28 |
| Microsoft ha lanzado su nuevo sistema operativo | DarkByte | Humor | 0 | 25-01-2004 09:21:14 |
|