Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-08-2022
Ja Mon Ja Mon is offline
Miembro
 
Registrado: ene 2017
Posts: 12
Poder: 0
Ja Mon Va por buen camino
Cita:
Empezado por Sistel Ver Mensaje
Hola Ja Mon,

No debe retrasarse la firma y envío en ningún caso.
(El envío sólo podría retrasarse en Bizkaia que se envía mediante LROE)

Yo considero que la emisión de la factura tiene lugar en el momento que se firma crea y firma el XML y debe llevar esa fecha y hora.
No se puede crear un XML y firmar más adelante.
Se trata de que todas las facturas sean consecutivas, con fecha y hora de la emisión y con envío inmediato.

Saludos
La duda que tengo no es el momento de firma y envio, sino si, al haber varios usuarios creando facturas simultaneamente, se pueden firmar y enviar por orden de solicitud o tiene que ser por orden de numeración. Es decir, un usuario acaba la factura 100, crea el xml y lo quiere firmar y enviar; pero hay otro usuario que está revisando la factura 99 antes de firmarla y otro la 98 que ha salido a almorzar, por ejemplo, y no lo las firmarán hasta pasado un tiempo. ¿Supone un problema enviar antes la 100 que la 99 y 98? Es que esto ocurre muy a menudo
Responder Con Cita
  #2  
Antiguo 17-08-2022
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 373
Poder: 5
Sistel Va por buen camino
Cita:
Empezado por Ja Mon Ver Mensaje
La duda que tengo no es el momento de firma y envio, sino si, al haber varios usuarios creando facturas simultaneamente, se pueden firmar y enviar por orden de solicitud o tiene que ser por orden de numeración. Es decir, un usuario acaba la factura 100, crea el xml y lo quiere firmar y enviar; pero hay otro usuario que está revisando la factura 99 antes de firmarla y otro la 98 que ha salido a almorzar, por ejemplo, y no lo las firmarán hasta pasado un tiempo. ¿Supone un problema enviar antes la 100 que la 99 y 98? Es que esto ocurre muy a menudo
Hola Ja Mon,

Las facturas deben ser consecutivas en número, fecha y hora.
Yo considero 2 estados:
- Recopilación de datos para la factura (no considero aún emitida la factura)
- Emisión de la factura: asignación de nº de factura (siguiente a la última emitida), fecha y hora y creación y firma del XML

Si la asignación de nº de factura, fecha y hora y creación del XML y firma lo haces en servidor, te olvidas del problema de que haya varios puestos diferentes creando facturas y no sean consecutivas.

Saludos
Responder Con Cita
  #3  
Antiguo 01-09-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 3
Irreo Va por buen camino
Buenos días a todos,

Ando redactando la memoria para Gipuzkoa, y repasando en mi código el tema del encadenamiento, a la hora de redactar cómo funciona, me han entrado algunas dudas sobre si lo que tengo montado se puede considerar correcto.

En la documentación mencionan que en Gipuzkoa la comunicación debe ser "inmediata". Pero claro, no estoy seguro qué consideran ellos inmediato...

El sistema que tengo montado (todavía en fase de pruebas) funciona así:

Infraestructura:
- Servidor con un API propio, que viene a ser un "proxy" entre las personas que crean las facturas, y Hacienda.
- Tiendas físicas con software Windows para venta y emisión de tickets.

Servidor:
- Se recibe un JSON con una factura.
- Se crea un registro en la BBDD con todos los datos.
- Se firma y se guarda todo.
- Si es nueva factura queda marcada como "pendiente de enviar", y si es una corregida se guarda como "a reenviar"

Cronjob que se está ejecutando constantemente en el servidor:
- Cada 10 segundos, y en orden de creación de factura, se lee una factura de la tabla anterior y se envía.
- Si es una factura sin intento de envío previo, obtengo el XML ya firmado que estaba guardado.
- Si es una factura a corregir, genero de nuevo el XML a partir de los datos de la factura, que no va firmado.

Con esto me aseguro de que el encadenamiento esté siempre bien. Es decir, aunque una factura sea rechazada, ya se considera como "factura anterior" para el encadenamiento.
Y al haber solo un hilo del sistema dedicado al envío de facturas, con los 10 segundos de margen se evitan situaciones donde dos envíos se pisan entre ellos, si el primero por ejemplo tarda varios segundos.

Otro de los motivos de tener esto así, es poder emitir el ticket con el QR incluso aunque todavía no hayamos comunicado con Hacienda.

Es decir:
- Un cliente compra un producto en la tienda.
- El software del ordenador envía los datos a nuestro API, y le entrega el QR y TBAI.
- La factura todavía no sabemos si tiene el XML incorrecto, si va a ser rechazada o aceptada, pero entiendo que me da igual.
- El cliente se va con su ticket.
- En los segundos siguientes a haberse guardado la factura, ya se va a enviar a Hacienda mediante el cronjob.

¿Mi preocupación?
Que por lo que sea, se generen muchas facturas en algún momento, y en lugar de tardar de 1 a 9 segundos en estar funcional el QR, tarde 50 segundos por ejemplo... o más.

¿Debe ser inmediato.... inmediato?

¿Sabéis algo de si el inspector que hace verificaciones presenciales crea una factura e intenta leer el QR en el mismísimo instante?

Gracias!
Saludos.
Responder Con Cita
  #4  
Antiguo 01-09-2022
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 373
Poder: 5
Sistel Va por buen camino
Cita:
Empezado por Irreo Ver Mensaje
Buenos días a todos,

Ando redactando la memoria para Gipuzkoa, y repasando en mi código el tema del encadenamiento, a la hora de redactar cómo funciona, me han entrado algunas dudas sobre si lo que tengo montado se puede considerar correcto.

En la documentación mencionan que en Gipuzkoa la comunicación debe ser "inmediata". Pero claro, no estoy seguro qué consideran ellos inmediato...

El sistema que tengo montado (todavía en fase de pruebas) funciona así:

Infraestructura:
- Servidor con un API propio, que viene a ser un "proxy" entre las personas que crean las facturas, y Hacienda.
- Tiendas físicas con software Windows para venta y emisión de tickets.

Servidor:
- Se recibe un JSON con una factura.
- Se crea un registro en la BBDD con todos los datos.
- Se firma y se guarda todo.
- Si es nueva factura queda marcada como "pendiente de enviar", y si es una corregida se guarda como "a reenviar"

Cronjob que se está ejecutando constantemente en el servidor:
- Cada 10 segundos, y en orden de creación de factura, se lee una factura de la tabla anterior y se envía.
- Si es una factura sin intento de envío previo, obtengo el XML ya firmado que estaba guardado.
- Si es una factura a corregir, genero de nuevo el XML a partir de los datos de la factura, que no va firmado.

Con esto me aseguro de que el encadenamiento esté siempre bien. Es decir, aunque una factura sea rechazada, ya se considera como "factura anterior" para el encadenamiento.
Y al haber solo un hilo del sistema dedicado al envío de facturas, con los 10 segundos de margen se evitan situaciones donde dos envíos se pisan entre ellos, si el primero por ejemplo tarda varios segundos.

Otro de los motivos de tener esto así, es poder emitir el ticket con el QR incluso aunque todavía no hayamos comunicado con Hacienda.

Es decir:
- Un cliente compra un producto en la tienda.
- El software del ordenador envía los datos a nuestro API, y le entrega el QR y TBAI.
- La factura todavía no sabemos si tiene el XML incorrecto, si va a ser rechazada o aceptada, pero entiendo que me da igual.
- El cliente se va con su ticket.
- En los segundos siguientes a haberse guardado la factura, ya se va a enviar a Hacienda mediante el cronjob.

¿Mi preocupación?
Que por lo que sea, se generen muchas facturas en algún momento, y en lugar de tardar de 1 a 9 segundos en estar funcional el QR, tarde 50 segundos por ejemplo... o más.

¿Debe ser inmediato.... inmediato?

¿Sabéis algo de si el inspector que hace verificaciones presenciales crea una factura e intenta leer el QR en el mismísimo instante?

Gracias!
Saludos.
Hola,

Parece correcto.
Aunque tienes que tener en cuenta algunos matices:

- Cuando dices "Se recibe un JSON con una factura", no es del todo correcto.
Deberías decir "Se recibe un JSON con los datos para emitir la factura", ya que la factura no existe hasta que no se emite, que es en el momento que se crea y firma el XML.

Y, por supuesto, es totalmente correcto que, a partir del tener el XML firmado obtengas el código TBAI y el código QR y los imprimas en el documento de la factura (independientemente de que aún no se haya enviado a Hacienda)

El término "envío inmediato" no supone ir a la velocidad de la luz.
Al igual que tú, yo lanzo un cronjob (yo lo hago cada minuto). Y se encarga de enviar cada una de los XML firmados que aún no se han enviado.
Yo entiendo que 1 minuto es inmediato.

Respecto al tema de la Verificación Presencial, entiendo que si un inspector se persona en el domicilio desde el que se emiten las facturas, puede solicitar ver el resultado que muestra el botón de "Verificación Presencial" (o como se quiera llamar en la aplicación), pero no creo que un inspector pueda tocar nada y, menos aún, emitir una factura.
Entiendo que podría solicitar ver una factura y escanear, con su smartphone el código QR para comprobar el estado y datos en la web de Hacienda Foral.

Saludos
Responder Con Cita
  #5  
Antiguo 01-09-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 3
Irreo Va por buen camino
Buenas Sistel,

Muchas gracias por la respuesta.

Vamos respondiendo:

Cita:
Empezado por Sistel Ver Mensaje
Deberías decir "Se recibe un JSON con los datos para emitir la factura", ya que la factura no existe hasta que no se emite, que es en el momento que se crea y firma el XML.
Entiendo lo que dices, pero en nuestro caso no es así

Tenemos por un lado un servidor con un SQLServer, y por otro lado un Access VBA en Windows que es el punto de venta de las tiendas físicas.

Para poder realizar cualquier venta hace falta conexión a Internet ya que todo el tema de stock, pedidos, etc. se visualizan en la tienda, pero se sincroniza con la central, donde está el servidor.

Hasta ahora sólo se generaban pedidos con sus líneas. Ahora, en el momento de realizar una venta, es el propio SQL Server el que obtiene el "próximo número de factura", y guarda una nueva factura con sus líneas en la base de datos central.

Después de esto, se envía a este API nuestro el JSON con todo. Ten en cuenta que tenemos dos CIF, y la intención es que toda la facturación esté centralizada (antes iba con tablas separadas), de forma que cada vez que se genera una nueva factura, con su numeración correspondiente, se envíe a nuestro API para obtener TBAI, QR....

Cita:
Empezado por Sistel Ver Mensaje
Respecto al tema de la Verificación Presencial, entiendo que si un inspector se persona en el domicilio desde el que se emiten las facturas, puede solicitar ver el resultado que muestra el botón de "Verificación Presencial" (o como se quiera llamar en la aplicación), pero no creo que un inspector pueda tocar nada y, menos aún, emitir una factura.
Entiendo que podría solicitar ver una factura y escanear, con su smartphone el código QR para comprobar el estado y datos en la web de Hacienda Foral.
Con esto tengo mis dudas. En la documentación se menciona:

Cita:
(...) el personal inspector podrá verificar el correcto funcionamiento del software de
facturación y podrá requerir la aportación de los ficheros TBAI generados tanto en el proceso de verificación
como aquellos que el contribuyente tiene la obligación de conservar, (...)
Con esto entiendo que pueden realizar algún tipo de prueba que genere ficheros TBAI.

De todas formas, sobre esto he preguntado hace un rato a Hacienda, porque tenemos varias tiendas físicas (sin oficina ni responsables), y no sé exactamente cómo puede ser una visita de un inspector... como si entra al Fnac y le pide a una de las cajeras ficheros TBAI...

De todas formas tiene pinta que será como dices, irán a la dirección que sea el domicilio fiscal. Y aquí de nuevo me quedo bloqueado, porque es una de las tiendas.. aunque creo que una de las jefas suele andar por allá, así que ya pensaremos algo

En cualquier caso, con lo que me respondan informo aquí, por si le sirve a alguien.

Cita:
Empezado por Sistel Ver Mensaje
El término "envío inmediato" no supone ir a la velocidad de la luz.
Al igual que tú, yo lanzo un cronjob (yo lo hago cada minuto). Y se encarga de enviar cada una de los XML firmados que aún no se han enviado.
Yo entiendo que 1 minuto es inmediato.
Con esto ya me quedo más tranquilo. Aunque sí que es cierto que en mi caso el cron no es solo para las facturas que se hayan quedado sin enviar, sino para todas las que se van generando. Según las recibe el API, la guarda en la tabla marcada como "PTE", y en el siguiente ciclo se intenta enviar cualquiera que esté PTE, una por una.

Saludos!
Responder Con Cita
  #6  
Antiguo 06-09-2022
Avatar de thinkows
thinkows thinkows is offline
Miembro
 
Registrado: mar 2020
Ubicación: Sabadell
Posts: 70
Poder: 5
thinkows Va por buen camino
Certificados de firma de código

Buenos días, alguno de vosotros ha utilizado o utiliza Comodo Code Signing, para firmar los ejecutables i/o instaladores de una aplicación de escritorio Windows, para ticketbai ?

Tengo una cotización de LeaderSSL de certificado de organización a 196€ por tres años.

Que os parece, alguna alternativa ?

Gracias de antemano.
Responder Con Cita
  #7  
Antiguo 16-09-2022
josevalle josevalle is offline
Miembro
 
Registrado: may 2017
Posts: 13
Poder: 0
josevalle Va por buen camino
Cita:
Empezado por thinkows Ver Mensaje
Buenos días, alguno de vosotros ha utilizado o utiliza Comodo Code Signing, para firmar los ejecutables i/o instaladores de una aplicación de escritorio Windows, para ticketbai ?

Tengo una cotización de LeaderSSL de certificado de organización a 196€ por tres años.

Que os parece, alguna alternativa ?

Gracias de antemano.
Hola:

Me parece que en Bizkaia si es obligatorio firmar los ejecutables, pero en Álava me parece que no.
Responder Con Cita
  #8  
Antiguo 06-09-2022
amontes amontes is offline
Registrado
 
Registrado: oct 2021
Posts: 1
Poder: 0
amontes Va por buen camino
Zuzendu Guipuzkoa

Hola a todos!

Estoy pegandome con el servicio Zuzendu tanto de modificación (modificar/Subsanar) como la baja de Zuzendu, y siempre me lo rechazan con el error "Fichero no cumple el esquema XSD. El elemento principal debe ser SubsanacionModificacionTicketBAI." y "Fichero no cumple el esquema XSD. El elemento principal debe ser AnulaTicketBai.", ¿alguien ha tenido este problema? He revisado el XML con el XSD y lo veo todo correcto...

Código:
<?xml version="1.0" encoding="UTF-8"?>
<T:AnulaTicketBai xmlns:T="urn:ticketbai:zuzendu-baja">
  <Cabecera>
    <IDVersion>1.2</IDVersion>
  </Cabecera>
  <IDFactura>
    <Emisor>
      <NIF>XXXXXXXXXX</NIF>
      <ApellidosNombreRazonSocial>XXXXXXXXXXXXXXXX</ApellidosNombreRazonSocial>
    </Emisor>
    <CabeceraFactura>
      <SerieFactura>V-FAC1</SerieFactura>
      <NumFactura>XXXXXX</NumFactura>
      <FechaExpedicionFactura>12/01/22</FechaExpedicionFactura>
    </CabeceraFactura>
  </IDFactura>
  <HuellaTBAI>
    <Software>
      <LicenciaTBAI>TBAIGIPRE00000000XXX</LicenciaTBAI>
      <EntidadDesarrolladora>
        <NIF>XXXXXXXXX</NIF>
      </EntidadDesarrolladora>
      <Nombre>XXXXXXXXX</Nombre>
      <Version>1.0</Version>
    </Software>
  </HuellaTBAI>
  <SignatureValueFirmaAnulacion>yWMDh71bZ+4ZU9XXXe28HqrJY9QEUB3qsVwJrmxXYQUeKFBAFygZrO0RnPc7WUvQxTXSUi1+n6BAXotZsXGf5rgHxIq84JK0tPgs</SignatureValueFirmaAnulacion>
</T:AnulaTicketBai>

Última edición por dec fecha: 06-09-2022 a las 18:56:06. Razón: Añadir etiqueta CODE
Responder Con Cita
  #9  
Antiguo 07-09-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 3
Irreo Va por buen camino
@amontes:

T:AnulaTicketBai es el servicio de anulación.

Si miras el XML de ejemplo de Hacienda, el servicio Zuzendu para bajas es así:

T:SubsanacionAnulacionTicketBAI

A ver si con eso se te soluciona...

Por otro lado, la fecha en este formato creo que no es correcta: 12/01/22

Debería ser 12-01-2022.

Saludos.
Responder Con Cita
  #10  
Antiguo 09-09-2022
Ramon88 Ramon88 is offline
Miembro
 
Registrado: ago 2021
Posts: 125
Poder: 3
Ramon88 Va por buen camino
Thumbs up

Termina de surgirme algo que la verdad no pensé...


Un cliente empezó en Julio, y ha intentado anular una factura que realizó en Febrero (Vamos, no esta subida y no hay datos de ella)
Que pongo en:


Código:
<CabeceraFactura>
   <SerieFactura>XXX</SerieFactura>
   <NumFactura>XXX</NumFactura>
   <FechaExpedicionFactura>XXX</FechaExpedicionFactura>
 </CabeceraFactura>

Alguna idea?
Responder Con Cita
  #11  
Antiguo 09-09-2022
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.035
Poder: 22
keys Va por buen camino
Cita:
Empezado por Ramon88 Ver Mensaje
Termina de surgirme algo que la verdad no pensé...


Un cliente empezó en Julio, y ha intentado anular una factura que realizó en Febrero (Vamos, no esta subida y no hay datos de ella)
Que pongo en:


Código:
<CabeceraFactura>
   <SerieFactura>XXX</SerieFactura>
   <NumFactura>XXX</NumFactura>
   <FechaExpedicionFactura>XXX</FechaExpedicionFactura>
 </CabeceraFactura>

Alguna idea?
Solo se pueden anular facturas que esten en el sistema.
Responder Con Cita
  #12  
Antiguo 09-09-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Ramon88 Ver Mensaje
Termina de surgirme algo que la verdad no pensé...

Un cliente empezó en Julio, y ha intentado anular una factura que realizó en Febrero (Vamos, no esta subida y no hay datos de ella)
Que pongo en:


Código:
<CabeceraFactura>
   <SerieFactura>XXX</SerieFactura>
   <NumFactura>XXX</NumFactura>
   <FechaExpedicionFactura>XXX</FechaExpedicionFactura>
 </CabeceraFactura>
Alguna idea?
Para las facturas que no están en TickeBAI no debes enviar nada. No están en el sistema y por tanto no hay que hacer referencia a ellas para nada.
Digamos que tu sistema sólo debe entrar en el circuito de TicketBAI, para aquellas facturas posteriores a la fecha de alta de tu cliente en TBAI.
__________________
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.
Responder Con Cita
  #13  
Antiguo 17-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 886
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por Ja Mon Ver Mensaje
La duda que tengo no es el momento de firma y envio, sino si, al haber varios usuarios creando facturas simultaneamente, se pueden firmar y enviar por orden de solicitud o tiene que ser por orden de numeración. Es decir, un usuario acaba la factura 100, crea el xml y lo quiere firmar y enviar; pero hay otro usuario que está revisando la factura 99 antes de firmarla y otro la 98 que ha salido a almorzar, por ejemplo, y no lo las firmarán hasta pasado un tiempo. ¿Supone un problema enviar antes la 100 que la 99 y 98? Es que esto ocurre muy a menudo
No.puedes asignat el número por adelantado.
La tecnica normal es jugar con el bloqueo del numerador ir generando la factura temporalmente y cuando aceptes coger el nuevo número por orden correlativo, si esta bloqueado el numerador dejarlo en bucle reintentado el tiempo que consideres lógico y que bloquee el primero que pueda.
Responder Con Cita
  #14  
Antiguo 17-08-2022
Ja Mon Ja Mon is offline
Miembro
 
Registrado: ene 2017
Posts: 12
Poder: 0
Ja Mon Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
No.puedes asignat el número por adelantado.
La tecnica normal es jugar con el bloqueo del numerador ir generando la factura temporalmente y cuando aceptes coger el nuevo número por orden correlativo, si esta bloqueado el numerador dejarlo en bucle reintentado el tiempo que consideres lógico y que bloquee el primero que pueda.

Lo que he hecho ahora ha sido configurar el programa para que se pueda crear un número temporal. Este número es un número negativo correlativo en la serie y el ejercicio de forma que puedo tener varios documentos temporales.

Luego, he creado un procedimiento en la base de datos que busca en el ejercicio y la serie el último número positivo creado más 1. De esta forma, evito los problemas del uso de un numerador.
Cuando vaya a imprimir, crear xml, etc., ejecuto el procedimiento que le cambiará el número negativo por el nuevo positivo correlativo y sustituirá la fecha y hora por la del sistema.

Ahora crearé un registro con los datos de la factura firmada que se usará para el encadenamiento de la próxima.


Muchas gracias a los dos, poco a poco voy resolviendo las dudas.
Responder Con Cita
  #15  
Antiguo 17-08-2022
Ja Mon Ja Mon is offline
Miembro
 
Registrado: ene 2017
Posts: 12
Poder: 0
Ja Mon Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
No.puedes asignat el número por adelantado.
La tecnica normal es jugar con el bloqueo del numerador ir generando la factura temporalmente y cuando aceptes coger el nuevo número por orden correlativo, si esta bloqueado el numerador dejarlo en bucle reintentado el tiempo que consideres lógico y que bloquee el primero que pueda.

Lo que he hecho ahora ha sido configurar el programa para que se pueda crear un número temporal. Este número es un número negativo correlativo en la serie y el ejercicio de forma que puedo tener varios documentos temporales.

Luego, he creado un procedimiento en la base de datos que busca en el ejercicio y la serie el último número positivo creado más 1. De esta forma, evito los problemas del uso de un numerador.
Cuando vaya a imprimir, crear xml, etc., ejecuto el procedimiento que le cambiará el número negativo por el nuevo positivo correlativo y sustituirá la fecha y hora por la del sistema.

Ahora crearé un registro con los datos de la factura firmada que se usará para el encadenamiento de la próxima.


Otra duda:
Cuando se imprime la factura se imprimen los vencimientos con su fecha. Una vez firmada, si el cliente desea cambiar la fecha de los vencimientos, dividirlos en varios, etc. Puede hacerlo pero, si sacamos un duplicado de la factura ¿los vencimientos nuevos (fechas e importes) que se imprimen deben ser los originales o pueden ser los nuevos? Si son los originales, habrá que buscar el fichero (pdf, o lo que sea) que se creó en su día e imprimirlo en vez de usar el metodo de impresión habitual...



Muchas gracias a los dos, poco a poco voy resolviendo las dudas.
Responder Con Cita
  #16  
Antiguo 17-08-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 886
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por Ja Mon Ver Mensaje
Lo que he hecho ahora ha sido configurar el programa para que se pueda crear un número temporal. Este número es un número negativo correlativo en la serie y el ejercicio de forma que puedo tener varios documentos temporales.

Luego, he creado un procedimiento en la base de datos que busca en el ejercicio y la serie el último número positivo creado más 1. De esta forma, evito los problemas del uso de un numerador.
Cuando vaya a imprimir, crear xml, etc., ejecuto el procedimiento que le cambiará el número negativo por el nuevo positivo correlativo y sustituirá la fecha y hora por la del sistema.

Ahora crearé un registro con los datos de la factura firmada que se usará para el encadenamiento de la próxima.


Otra duda:
Cuando se imprime la factura se imprimen los vencimientos con su fecha. Una vez firmada, si el cliente desea cambiar la fecha de los vencimientos, dividirlos en varios, etc. Puede hacerlo pero, si sacamos un duplicado de la factura ¿los vencimientos nuevos (fechas e importes) que se imprimen deben ser los originales o pueden ser los nuevos? Si son los originales, habrá que buscar el fichero (pdf, o lo que sea) que se creó en su día e imprimirlo en vez de usar el metodo de impresión habitual...



Muchas gracias a los dos, poco a poco voy resolviendo las dudas.
Que yosepa los vencimientos no tienen que ver con ticketbai, puedes cambiar datos que no afecten a los datos solicitados em el xml, y tanpoco puedes generar de nuevo el xml..si tienes que hacer alguna modificación que afecte al xml, cliente, importe,ivas... tienes que crear una anulación o un xml de rectif8cacion según proceda.
Responder Con Cita
  #17  
Antiguo 18-08-2022
trumbolt trumbolt is offline
Miembro
 
Registrado: may 2022
Posts: 31
Poder: 0
trumbolt Va por buen camino
Cita:
Empezado por Ja Mon Ver Mensaje
Otra duda:
Cuando se imprime la factura se imprimen los vencimientos con su fecha. Una vez firmada, si el cliente desea cambiar la fecha de los vencimientos, dividirlos en varios, etc. Puede hacerlo pero, si sacamos un duplicado de la factura ¿los vencimientos nuevos (fechas e importes) que se imprimen deben ser los originales o pueden ser los nuevos? Si son los originales, habrá que buscar el fichero (pdf, o lo que sea) que se creó en su día e imprimirlo en vez de usar el metodo de impresión habitual...
Esa info no va en el XML de TicketBAI así que supongo que se puede modificar sin problema. Otra cosa son aquellos datos que si que van referenciados como importes, ivas, titular, etc ...
Responder Con Cita
  #18  
Antiguo 18-08-2022
trumbolt trumbolt is offline
Miembro
 
Registrado: may 2022
Posts: 31
Poder: 0
trumbolt Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
No.puedes asignat el número por adelantado.
La tecnica normal es jugar con el bloqueo del numerador ir generando la factura temporalmente y cuando aceptes coger el nuevo número por orden correlativo, si esta bloqueado el numerador dejarlo en bucle reintentado el tiempo que consideres lógico y que bloquee el primero que pueda.
Algo así hacemos nosotros. La primera estación que empieza a emitir una factura digamos que bloquea el contador de facturas y no lo libera hasta que queda finalizada la firma del XML. Si otra fuese a facturar justo en ese momento, queda en espera a que el contador si libere (mirando con las pruebas es cuestión de 1 segundo o así) y toma el control para facturar él. Esto lógicamente en entornos en donde las estaciones de trabajo funcionen con la misma serie. En otros donde cada PC factura con la suya propia y sin interrelación con el resto, no es necesario esperar ya que el encadenamiento sólo afectaría a sus facturas. Ideal para entornos como restaurantes o tiendas con varios TPVs trabajando a destajo ...
Responder Con Cita
  #19  
Antiguo 18-08-2022
trumbolt trumbolt is offline
Miembro
 
Registrado: may 2022
Posts: 31
Poder: 0
trumbolt Va por buen camino
Cita:
Empezado por Ja Mon Ver Mensaje
La duda que tengo no es el momento de firma y envio, sino si, al haber varios usuarios creando facturas simultaneamente, se pueden firmar y enviar por orden de solicitud o tiene que ser por orden de numeración. Es decir, un usuario acaba la factura 100, crea el xml y lo quiere firmar y enviar; pero hay otro usuario que está revisando la factura 99 antes de firmarla y otro la 98 que ha salido a almorzar, por ejemplo, y no lo las firmarán hasta pasado un tiempo. ¿Supone un problema enviar antes la 100 que la 99 y 98? Es que esto ocurre muy a menudo
El problema que veo con tu acercamiento es que parece un parche añadido a tu sistema en vez de una solución integrada sobretodo pensando que esto no va a ser sólo para el Pais Vasco sino que vamos camino de tenerlo en todo el territorio nacional.

Por lo que veo, diferencias entre emitir la factura (supongo que en tu programa) y firmar el xml. En realidad, tu programa no debería considerar que se ha emitido una factura si no se ha generado el XML y firmado. En mi software, tras grabar la factura físicamente en la bbdd, por así decirlo, se genera el XML y se firma y si no se puede por alguna razón (fallo de certificado, ...), se cancela la transacción y la factura deja de existir internamente. Es la manera de asegurar un encadenamiento correcto. Luego ya esos XML firmados tienes que hacerlos llegar a Hacienda, en mi caso con un servicio de cola de envío independiente al software principal.
Responder Con Cita
  #20  
Antiguo 19-08-2022
Ja Mon Ja Mon is offline
Miembro
 
Registrado: ene 2017
Posts: 12
Poder: 0
Ja Mon Va por buen camino
Cita:
Empezado por trumbolt Ver Mensaje
El problema que veo con tu acercamiento es que parece un parche añadido a tu sistema en vez de una solución integrada sobretodo pensando que esto no va a ser sólo para el Pais Vasco sino que vamos camino de tenerlo en todo el territorio nacional.

Por lo que veo, diferencias entre emitir la factura (supongo que en tu programa) y firmar el xml. En realidad, tu programa no debería considerar que se ha emitido una factura si no se ha generado el XML y firmado. En mi software, tras grabar la factura físicamente en la bbdd, por así decirlo, se genera el XML y se firma y si no se puede por alguna razón (fallo de certificado, ...), se cancela la transacción y la factura deja de existir internamente. Es la manera de asegurar un encadenamiento correcto. Luego ya esos XML firmados tienes que hacerlos llegar a Hacienda, en mi caso con un servicio de cola de envío independiente al software principal.
Tienes razón y, como me indicaba Sistel, lo que hago ahora es crear facturas temporales que se pueden eliminar en cualquier momento. Solo cuando el usuario imprime, exporta o envía por correo electrónico se asigna un número, fecha y hora definitivos Luego, otro proceso en el servidor se encarga de gestionar la cola de los xml que le van llegando.
Creo que desde el principio tenía confusión sobre crear, emitir, imprimir, expedir... Ahora todo es lo mismo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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 3557 Hace 1 Semana 17:42:47
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


La franja horaria es GMT +2. Ahora son las 09:06:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi