Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Envío de registros y sus respuestas (https://www.clubdelphi.com/foros/forumdisplay.php?f=66)
-   -   Demo con código Verifactu.dll para (delphi 7) (https://www.clubdelphi.com/foros/showthread.php?t=97004)

CarlosMz 26-03-2025 11:28:20

Cita:

Si esta en Recargo de Equivalencia el OT no puede emitir facturas con RE, por lo tanto sera la clave 01 u otra.
Si el emisor de facturas está en recargo de equivalencia no puede emitir facturas con recargo de equivalencia ?

starlet 26-03-2025 12:59:05

Cita:

Empezado por seccion_31 (Mensaje 563105)
Ya esta corregido !

gracias por el aviso.

Por cierto starlet ¿has podido probar la demo?


slds !

No, y no tengo ni idea que puede ser. Tengo claro que es algo de mi equipo, pero ni idea.

He puesto el form en visible, he instalado Capicom (ambas cosas las hice al principio).

Es un poco más complejo ver la operativa sin poder debuguear la demo, pero poco a poco me voy enterando.

Muchas gracias.

seccion_31 26-03-2025 13:30:54

Cita:

Empezado por starlet (Mensaje 563138)
No, y no tengo ni idea que puede ser. Tengo claro que es algo de mi equipo, pero ni idea.

He puesto el form en visible, he instalado Capicom (ambas cosas las hice al principio).

Es un poco más complejo ver la operativa sin poder debuguear la demo, pero poco a poco me voy enterando.

Muchas gracias.

Asegurate que tengas la version 2

El codigo fuente de la demo (carpeta DEMO_D7 ) y la DLL esta ahi puedes ir viendo que hace.

Abres el prouecto de la Demo, y tienes dos eventos, oncreate y el onshow, empieza por seguir el codigo.

Saludos !

delphiGar 26-03-2025 14:41:23

Cita:

Empezado por CarlosMz (Mensaje 563127)
Si el emisor de facturas está en recargo de equivalencia no puede emitir facturas con recargo de equivalencia ?

Exacto, no puede.

ramherfer 26-03-2025 20:28:48

Cita:

Empezado por delphiGar (Mensaje 563126)

Si la factura lleva Recago de Equivalencia la ClaveRegimen tiene que ser 18, y aclaro, si la emite es por que puede hacerlo con recargo. Si esta en Recargo de Equivalencia el OT no puede emitir facturas con RE, por lo tanto sera la clave 01 u otra.

Esto ya lo comenté hace un par de semanas:

Cita:

Empezado por ramherfer (Mensaje 562513)
Buenas tardes.
Si se le factura a un cliente con recargo de equivalencia no se si está asignando la clave de régimen 01 (Operación de Régimen General).
Creo que en este caso debería de asignar la clave de regimen 18 (Recargo de equivalencia).

Por favor corregirme si me equivoco.

Lo que no tenía ni idea es que si estas en regimen de recargo de equivalencia, no puedas emitir facturas con recargo de equivalencia. Lógica tiene, pero me quedo patidifuso.

seccion_31 26-03-2025 22:11:54

Cita:

Empezado por ramherfer (Mensaje 563168)
Esto ya lo comenté hace un par de semanas:

Pues si, Me acordé de ti ...


Saludos !

delphiGar 27-03-2025 09:16:15

Cita:

Empezado por ramherfer (Mensaje 563168)
Esto ya lo comenté hace un par de semanas:



Lo que no tenía ni idea es que si estas en regimen de recargo de equivalencia, no puedas emitir facturas con recargo de equivalencia. Lógica tiene, pero me quedo patidifuso.

Pero esto hasta el dia 18 de Marzo no era asi, hasta esa fecha habia que poner la clave 18 al que estaba en Regimen de equivalencia aunque facture sin recargo, y el que emite la factura con recargo emitia con 01 u otra clave.

Ahora desde el 18 es como he comentado.

ramherfer 28-03-2025 10:50:18

A ver, yo sigo con el tema de comprobación del servicio soap esté activo o no. Soy cabezón por naturaleza :D

He estado probando con el tema de consulta vacia a la AEAT, pero me da errores "Consultando a la AEAT" y la verdad, tampoco he conseguido averiguar el motivo, ya que la consulta esta calcada de la que se realiza en la pantalla de consultas que funciona a la perfección.

Si la comprobación la realizo solo al entrar en la aplicación, tengo el inconveniente que si la aplicación no se cierra y el servicio deja de estar activo y se emite una o varias facturas, ya tenemos el lio montado.

Si la comprobación la realizo antes de realizar un envío, se va a poner a realizar consulta tras consulta hasta que detecte que el servicio está activo y la envie.

Todo ello desconociendo si hay algún limite de consultas, o si la operación de consultas continuadas puede desembocar en algún tipo de baneo por parte de mis amigos de la AEAT.

Entonces basandome en que la URL del EndPoint de mis amigos del fisco responde con una redirección, eso debiera bastar para indicar que está activo ya que si no se encuentra activo, no debiera de haber respuesta con esa redirección. Entonces con la siguiente función trato de hacer esa comprobación que activaría o desactivaría un flag y la imagen correspondiente en el StatusBar para que el usuario sea consciente en todo momento de como está el patio. La he probado con https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP y con https://prewww1.aeat.es/wlpl/TIKE-CO...factuSOAP?wsdl y aparentemente cumple su función.

Código Delphi [-]
 
Function VerificarServicioSOAP(URL:String): Boolean;
var
  HTTP: TIdHTTP;
  SSLIO: TIdSSLIOHandlerSocketOpenSSL;

begin
  result := false;

  HTTP := TIdHTTP.Create(nil);
  SSLIO := TIdSSLIOHandlerSocketOpenSSL.Create(HTTP);

  try
    try
      // Forzar el uso de TLS 1.2
      SSLIO.SSLOptions.Method := sslvTLSv1_2;
      SSLIO.SSLOptions.Mode := sslmClient;
      HTTP.IOHandler := SSLIO;

      HTTP.Head(URL);
      //ShowMessage(Format('%s Disponible', [url]));
      result := true;
    except
      on E: EIdHTTPProtocolException do
      begin
        if (E.ErrorCode = 302) then begin
          //ShowMessage(Format('%s Disponible (Redireccionando)', [url]));
          result := True;
        end else begin
          //ShowMessage(Format('%s No Disponible: %s', [URL, E.Message]));
          result := False;
        end;
      end;
      on E: Exception do
        //ShowMessage(Format('%s No Disponible: %s', [URL, E.Message]));
    end;
  finally
    HTTP.Free;
  end;

end;

No se si estoy en un error. A ver que os parece y me alegraría que fuera válido.

Un saludo,

mqm 28-03-2025 14:04:20

Buenas tardes.
Siguiendo con las pruebas, me delvuelve este error.
Las pruebas las realizo con el "CERTIFICADO FISICA PRUEBAS - 99999910G".

Si proceso al envio de 1-6 facturas , veo que se lo traga todo del tiron, todo Correcto..
Sin embargo al meter 10 facturas en el envio me devuelve el error que muestro en el codigo siguiente.

Es problema mio, del codigo o del certificado que estoy usando?
Le ha pasado a alguien más?




Cita:

Se ha realizado el envío

Estado Del Envio: Enviado
CSV: A-PMM4K6MFKQS5MA
TimeStamp: 28/03/2025 13:53:15

A0000073-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000074-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000075-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000076-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000077-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000078-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000079-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000080-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000081-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60
A0000082-2024 Correcto 0
Se Ha Establecido Un Tiempo De Espera Proximo Envio De 60

Facturas Aceptadas: 10
Facturas Aceptadas Con Errores: 0
Facturas Con Errores: 0
El envío no ha podido ser realizado
Error Al Enviar
(ESOAPHTTPException)-Se requiere un certificado para completar la autenticación de cliente - URL:https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP - SOAPAction:""

newtron 28-03-2025 16:47:32

Cita:

Empezado por mqm (Mensaje 563220)
Buenas tardes.
Siguiendo con las pruebas, me delvuelve este error.
Las pruebas las realizo con el "CERTIFICADO FISICA PRUEBAS - 99999910G".

Si proceso al envio de 1-6 facturas , veo que se lo traga todo del tiron, todo Correcto..
Sin embargo al meter 10 facturas en el envio me devuelve el error que muestro en el codigo siguiente.

Es problema mio, del codigo o del certificado que estoy usando?
Le ha pasado a alguien más?


¿Estás enviando las facturas en un solo paquete o una a una?

mqm 28-03-2025 17:19:50

la envio en paquete de 2, 3, 4, ..... pero al llegar a 10 es cuando me salta el error.

newtron 28-03-2025 17:31:06

Cita:

Empezado por mqm (Mensaje 563232)
la envio en paquete de 2, 3, 4, ..... pero al llegar a 10 es cuando me salta el error.


¿Y esperas el tiempo indicado entre envíos? porque ese mensaje da la impresión que dice que estás enviando antes de tiempo.

Edito: Ah... no... leyendo bien parece que es algo relacionado con el certificado...

mqm 28-03-2025 17:58:13

Espero los tiempo indicado y mas. Ahora acabo de subie 15 de golpe y han pasado.
Espero que no se repita. Gracias por todo.

seccion_31 29-03-2025 08:27:03

a mi tambien me han pasado errores al enviar 15 o 20 de golpe y luego en otro paquete se han enviado bien. Enviando 1, 2,3 nunca he tenido problemas. Un poco random cuantos mas envias.

Por otro lado antes de publicar la version 2.1 tengo algunas dudas sobre esto: (Los añadire, pero querria vuestra opinion)
Ahora mismo no los estoy enviando, y los registros son aceptados.
Pero dice que es obligatorio y en la hoja de calculo informativa NO aparecen en rojo.

Cita:

TipoUsoPosibleMultiOT
Especifica si el sistema informático de facturación permite llevar independientemente la facturación de varios obligados tributarios (valor "S") o solo de uno (valor "N"). Obligatorio en registros de facturación de alta y de anulación, y opcional en registros de evento.
Entiendo que es para indicar que el programa permite en teoria la facturacion de varios emisores.


Cita:

IndicadorMultiplesOT
Indicador de que el sistema informático, en el momento de la generación de este registro, está soportando la facturación de más de un obligado tributario. Este valor deberá obtenerlo automáticamente el sistema informático a partir del número de obligados tributarios contenidos y/o gestionados en él en ese momento, independientemente de su estado operativo (alta, baja...), no pudiendo obtenerse a partir de otra información ni ser introducido directamente por el usuario del sistema informático ni cambiado por él. El valor "N" significará que el sistema informático solo contiene y/o gestiona un único obligado tributario (de alta o de baja o en cualquier otro estado), que se corresponderá con el obligado a expedir factura de este registro de facturación. En cualquier otro caso, se deberá informar este campo con el valor "S". Obligatorio en registros de facturación de alta y de anulación, y opcional en registros de evento.
Entiendo que es para indicar si en el programa de facturacion tienes registrados al menos dos emisores. (envien registros o no), pero que en tu base de datos figuran. Es decir un programa tiene dos emisores en su bd, envia registros de alta de uno de ellos, pero al tener dos emisores registrados este campo sera true.

¿porque no aparecen en rojo en la hoja de calculo? (como obligatorios)

¿estoy interpretando bien esos campos?

Saludos !

seccion_31 29-03-2025 08:57:24

otra cosa que no entiendo

en el portal de pruebas cuando consultas una factura, al final en el encadenamiento ¿porque colocan el NIF de la factura anterior? los encadenamientos son del mismo obligado tributario entiendo que del mismo nif, dato que saca de su registro de facturas ya enviadas... no veo porque coloca ese dato.

lo que no coloca en el portal de pruebas es el numero de factura rectificada. Yo no lo he visto.

saludos !

seccion_31 29-03-2025 09:08:42

Cita:

Empezado por mqm (Mensaje 563220)
Buenas tardes.
Siguiendo con las pruebas, me delvuelve este error.
Las pruebas las realizo con el "CERTIFICADO FISICA PRUEBAS - 99999910G".

Si proceso al envio de 1-6 facturas , veo que se lo traga todo del tiron, todo Correcto..
Sin embargo al meter 10 facturas en el envio me devuelve el error que muestro en el codigo siguiente.

Es problema mio, del codigo o del certificado que estoy usando?
Le ha pasado a alguien más?

El log que muestras es raro. (dejando como he dicho que en su momento yo tambien tuve problemas con pruebas de varios registros, ahora ya no las hago).

Pero leyendolo:
Las 10 facturas han sido aceptadas, y tienen su CSV, es decir el envio SI ha sido exitoso y ha habido respuesta. No entiendo los errores posteriores. Si el envio no hubiera sido exitoso no se habria procesado la consulta y por tanto no habria registro de resultado.

seccion_31 29-03-2025 10:34:19

Cita:

Empezado por ramherfer (Mensaje 563218)
A ver, yo sigo con el tema de comprobación del servicio soap esté activo o no. Soy cabezón por naturaleza :D

He estado probando con el tema de consulta vacia a la AEAT, pero me da errores "Consultando a la AEAT" y la verdad, tampoco he conseguido averiguar el motivo, ya que la consulta esta calcada de la que se realiza en la pantalla de consultas que funciona a la perfección.

Si la comprobación la realizo solo al entrar en la aplicación, tengo el inconveniente que si la aplicación no se cierra y el servicio deja de estar activo y se emite una o varias facturas, ya tenemos el lio montado.

Si la comprobación la realizo antes de realizar un envío, se va a poner a realizar consulta tras consulta hasta que detecte que el servicio está activo y la envie.

Todo ello desconociendo si hay algún limite de consultas, o si la operación de consultas continuadas puede desembocar en algún tipo de baneo por parte de mis amigos de la AEAT.

Entonces basandome en que la URL del EndPoint de mis amigos del fisco responde con una redirección, eso debiera bastar para indicar que está activo ya que si no se encuentra activo, no debiera de haber respuesta con esa redirección. Entonces con la siguiente función trato de hacer esa comprobación que activaría o desactivaría un flag y la imagen correspondiente en el StatusBar para que el usuario sea consciente en todo momento de como está el patio. La he probado con https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP y con https://prewww1.aeat.es/wlpl/TIKE-CO...factuSOAP?wsdl y aparentemente cumple su función.

Código Delphi [-]
 
Function VerificarServicioSOAP(URL:String): Boolean;
var
  HTTP: TIdHTTP;
  SSLIO: TIdSSLIOHandlerSocketOpenSSL;

begin
  result := false;

  HTTP := TIdHTTP.Create(nil);
  SSLIO := TIdSSLIOHandlerSocketOpenSSL.Create(HTTP);

  try
    try
      // Forzar el uso de TLS 1.2
      SSLIO.SSLOptions.Method := sslvTLSv1_2;
      SSLIO.SSLOptions.Mode := sslmClient;
      HTTP.IOHandler := SSLIO;

      HTTP.Head(URL);
      //ShowMessage(Format('%s Disponible', [url]));
      result := true;
    except
      on E: EIdHTTPProtocolException do
      begin
        if (E.ErrorCode = 302) then begin
          //ShowMessage(Format('%s Disponible (Redireccionando)', [url]));
          result := True;
        end else begin
          //ShowMessage(Format('%s No Disponible: %s', [URL, E.Message]));
          result := False;
        end;
      end;
      on E: Exception do
        //ShowMessage(Format('%s No Disponible: %s', [URL, E.Message]));
    end;
  finally
    HTTP.Free;
  end;

end;

No se si estoy en un error. A ver que os parece y me alegraría que fuera válido.

Un saludo,


gracias por el aporte !

Hoy con el error del fin de semana, lamentablamente, sigue dando como valida (al menos en las pruebas que acabo de hacer).... cuando realmente no esta disponible. Si pongo una URL inexistente SI salta el error.


Cita:

Codigo[20009].UNSUCCESSFUL EXECUTION CAUSED BY AN UNAVAILABLE RESOURCE. REASON 00C90081, TYPE OF RESOURCE 00000210, AND RESOURCE NAME DBTCCSOR.TSTCCSOR.00000001. SQLCODE=-904, SQLSTATE=57011, DRIVER=4.33.43
en la version 2.1 , a cambio la consulta "nula" da como inactiva.

Saludos !

ramherfer 29-03-2025 10:58:32

Cita:

Empezado por seccion_31 (Mensaje 563244)
gracias por el aporte !

Hoy con el error del fin de semana, lamentablamente, sigue dando como valida (al menos en las pruebas que acabo de hacer).... cuando realmente no esta disponible. Si pongo una URL inexistente SI salta el error.




en la version 2.1 , a cambio la consulta "nula" da como inactiva.

Saludos !

Ufff, pues a mi en estos momentos me aparece como activa. A ver si tengo suerte y en algún momento se desactiva y puedo probar la función.

seccion_31 29-03-2025 11:05:42

Cita:

Empezado por ramherfer (Mensaje 563245)
Ufff, pues a mi en estos momentos me aparece como activa. A ver si tengo suerte y en algún momento se desactiva y puedo probar la función.


efectivamente ahora esta activa de nuevo. 11:05

saludos !

: )

ramherfer 29-03-2025 11:22:01

Cita:

Empezado por seccion_31 (Mensaje 563241)

Por otro lado antes de publicar la version 2.1 tengo algunas dudas sobre esto: (Los añadire, pero querria vuestra opinion)
Ahora mismo no los estoy enviando, y los registros son aceptados.
Pero dice que es obligatorio y en la hoja de calculo informativa NO aparecen en rojo.



Entiendo que es para indicar que el programa permite en teoria la facturacion de varios emisores.




Entiendo que es para indicar si en el programa de facturacion tienes registrados al menos dos emisores. (envien registros o no), pero que en tu base de datos figuran. Es decir un programa tiene dos emisores en su bd, envia registros de alta de uno de ellos, pero al tener dos emisores registrados este campo sera true.

¿porque no aparecen en rojo en la hoja de calculo? (como obligatorios)

¿estoy interpretando bien esos campos?

Saludos !

TipoUsoPosibleMultiOT
Yo los dejaría y que la aplicación informe en el momento del envío. En mi aplicación informa de los OT que se están gestionando en el StatusBar. con lo que si es mayor de 1 debería ser S y si es = 1 debería de ser N. Esto sería bien fácil que lo envíe y gestione la aplicación. Normalmente hoy en día casi todos los ERP son multiempresa.



IndicadorMultiplesOT
Idem de lo mismo.

Mi humilde opinión cuanta más información de el ERP al respecto, menos intento por parte de los usuarios para intentos desesperados de ocultar información y mejor cara a la AEAT que vea que no se está tratando de ocultar ningún dato. Sea obligatorio o no si se envía, mejor que mejor.

Un saludo,


La franja horaria es GMT +2. Ahora son las 18:38:10.

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