Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > SDK Componente Verifactu para Delphi 7+ - Subforo Avisos/consultas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-10-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
Ejemplos De Codigo util

Se me ha ocurrido que podriamos publicar extractos de codigo utiles usando la libreria.

Esta porcion de codigo comprueba la version de tipos del ejecutable y de la DLL.
Es muy importante que los tipos, que son la definicion de los records y estructuras de datos que intercambian la DLL y el ejecutable sean iguales, de lo contrario podemos tener efectos indeseados graves.

Creo que no deberia faltar al inicio de la ejecucion:

Código:
    Verifactu:=TVerifactu.create(nil);
    if Verifactu.versionTiposDLL<>Verifactu.versionTiposEXE then
    begin
          showmessage('Tipos VeriFactu Diferentes:'+^M+
                      'DLL='+Verifactu.versionTiposDLL+^M+
                      'EXE='+Verifactu.versionTiposEXE );
                      
    end;
    Verifactu.free;

Última edición por seccion_31 fecha: 11-10-2025 a las 10:17:41.
Responder Con Cita
  #2  
Antiguo 11-10-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
Este otro codigo, guarda en una base de datos de incidencias, problemas tecnicos de envio:


Código:
    ok:=Verifactu.envio( resultado );

    if not resultado.envioOk then 	// el envio ha sido fallido por causas tecnicas (ha salido del try... except)
    begin
                // lo anotamos en el libro de incidencias
                for f:=1 to resultado.nFacturas do
                begin
                       dbIncidencias.insert;							
               	       dbIncidencias.fieldbyName('fecha').asdatetime:=date;
    		       dbIncidencias.fieldbyName('hora').text:=timetostr(time);
                       dbIncidencias.fieldbyName('motivo').text:=resultado.error;
                       dbIncidencias.fieldbyName('NumSerie').text:=resultado.facturas[f].NumSerieFactura;
    		       dbIncidencias.post;
                end;
    end;
Responder Con Cita
  #3  
Antiguo 13-10-2025
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.435
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
__________________
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
  #4  
Antiguo 16-10-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
Varias indicaciones:

Indices de elementos:

Los indices de array para ivas y exentas empiezan en 0 hasta n-1 elementos

Los indices en la consulta / recepcion de resultados empiezan en 1 hasta n elementos


Recoger huellas sin envio

Si es necesario podemos calcular todas las huellas del paquete de envio sin enviarlo realmente, para ello colocaremos el registro inicial, añadiremos las facturas a enviar, y marcaremos simular a true. Verifactu.Simular:=true;
Tras el envio (que no se realizara) en el resultado tendremos las huellas calculadas. y en VeriFactu.getRegistroFinal( ... ) la ultima huella calculada.

Si es necesario deshabilitar los paths con '' para guardar el XML del envio y registro de factura, etc...

En resultado.EstadoEnvio tendremos el texto 'Envio Simulado'

Última edición por seccion_31 fecha: 16-10-2025 a las 11:14:03.
Responder Con Cita
  #5  
Antiguo 17-10-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
Es importante recordar que antes de cargar el TRegistrofactura llamar a la funcion

TVeriFactu.clearFactura(afactura);

Para dejar en blanco todos los campos del registro TRegistrofactura


Anular o abonar una factura sin registro previo en la AEAT:

Basta con indicar en los datos de la factura TRegistrofactura.sinregistroPrevio:=true
Responder Con Cita
  #6  
Antiguo 24-10-2025
Avatar de DarkDudae
DarkDudae DarkDudae is offline
Miembro
 
Registrado: abr 2006
Posts: 177
Poder: 21
DarkDudae Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
Es importante recordar que antes de cargar el TRegistrofactura llamar a la funcion

TVeriFactu.clearFactura(afactura);

Para dejar en blanco todos los campos del registro TRegistrofactura


Anular o abonar una factura sin registro previo en la AEAT:

Basta con indicar en los datos de la factura TRegistrofactura.sinregistroPrevio:=true
Pues esta sería una mejora sencilla de implementar en el componente.

Una propiedad llamada FechaInicioVerifactu (por defecto en blanco) pero que el usuario pueda asignar en tiempo de ejecución.
De esta forma, sabemos que si se realiza una operación de anulación/abono/rectificación/sustitución sobre facturas previas al campo FechaInicioVeriFactu, por defecto la propiedad sinregistroPrevio se ponga a True.
__________________
El recuerdo es la prisión en la que el alma sueña pasado, cuando no vive el presente, ni quiere un futuro.
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
664 ejemplos sencillos de código de Delphi rrf Varios 18 15-04-2012 00:38:33
Muy util - Trucos Firefox. marcoszorrilla La Taberna 24 27-08-2011 14:49:41
Delphi: Historia, Función principal, Ejemplos de Codigo. Kwodahn_120 Varios 14 23-01-2009 02:47:14
Ejemplos con código fuente nemesio La Taberna 4 17-07-2006 20:10:27
Secciones Ejemplos y Codigo Fuente Colgueit Varios 9 10-05-2006 10:04:07


La franja horaria es GMT +2. Ahora son las 20:12:24.


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
Copyright 1996-2007 Club Delphi