Mensaje de advertencia notificado como error #26
-
Hola. Soy el programador del plugin Ticketbai para FacturaScripts. Usamos la librería para generar el xml mediante json. Hasta aquí todo bien. Al enviar los datos a la diputación de Áraba (con Guipúzcoa no pasa) la factura se firma bien, se recibe un código 200 y un mensaje de advertencia. Al hacer la petición a hacienda la respuesta recibida compruebo que si el código es del estado es 200, y si las funciones isDelivered() e isCorrect() son falsas, muestro el mensaje y termino. Pero en realidad debería de mostrar el mensaje y continuar por que si que se firmo y el estado fue 200. La pregunta quizás es por que en Áraba al recibir un mensaje de advertencia con el código 009, las funciones isDelivered() e isCorrect() son falsas? en cambio la misma factura enviada a Guipúzcoa no devuelve dicho mensaje.
|
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 1 reply
-
Buenas @daniel89fg , la función A pesar de devolver un 200 como estado de HTTP, la factura no se ha registrado correctamente. Por su parte la función Para saber cual es el error, deberías poder recuperar la lista de errores utilizando el método Respecto al código 009, se trata de un error de encadenamiento: |
Beta Was this translation helpful? Give feedback.
-
El problema es que creamos una nueva serie, creamos la 1º factura de dicha serie. Enviamos a firmar la factura a la diputación de Araba y recibimos el error 009, "error de encadenamiento", no entendemos como es posible si es la 1º factura, no existen facturas anteriores. En cambio hacemos el mismo proceso pero enviando a la diputación de Guipúzcoa y todo correcto. Además, aunque dio error 009 en Araba, si que se registro. Quizás lo que debería de hacer es lo siguiente.
¿correcto?, esto sería lo ideal. |
Beta Was this translation helpful? Give feedback.
-
La verdad es que es raro que Araba y Gipuzkoa funcionen de manera diferente en este aspecto. Que devuelva un 009 no debería ser un problema cuándo se trata de la primera factura del emisor, pero no tengo claro como se debe proceder al cambiar de serie, cuando el emisor ya existe y el origen es del mismo software. Estoy mirando lo que ocurre con el isDelivered y el código devuelto por las APIs de las diputaciones, había dado por hecho que un "Rechazado" (01) significaba que la factura no se registra (que parecía lo más lógico), pero parece que al menos en el caso de Araba esta sí se registra, aunque tampoco sé si se registra en todos los casos (no sé si depende de la lista de errores devueltos). Habría que investigar un poco más. Mientras, parece que podrías mirar si el isDelivered es false y en caso de serlo comprobar si el status es distinto de 200... En ese caso seguro que ha habido un error de comunicación. |
Beta Was this translation helpful? Give feedback.
-
Vale, perfecto. Vamos a cambiar el if que tenemos:
por algo así:
Esta sería una propuesta ¿como la ve? |
Beta Was this translation helpful? Give feedback.
Vale, perfecto.
Vamos a cambiar el if que tenemos:
por algo así: