![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cita:
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. |
#2
|
||||
|
||||
La demo no se cómo se comporta con facturas no aceptadas y huellas. En su envío, luego lo miro
Elimina facturas.xml y comienza otras pruebas Saludos |
#3
|
||||
|
||||
La demo solo coloca y añade la huella en las facturas enviadas OK. El resto lo ignorara en su BD xml.
He tenido que modificar un poco el programa demo para que lo ordene cronologicamente bien. y envie como huella anterior la ultima aceptada. (que en una aplicacion real, seria la ultima generada). Como digo es una demo. Estas modificaciones iran en la version 3.0 |
#4
|
||||
|
||||
donde si tiene un error es en la anulacion (DLL)
en la 3.0 estara corregido pero si quereis corregirlo ya: uverifactuFuncs.pas (D10): reemplazar esta funcion: Código:
function anulacionfactura_verifactu(sesion:integer; cabecera:TVeriFactuInicio; indice:integer):RegistroFacturaType; var Factura : RegistroFacturaType; Destinatario : PersonaFisicaJuridicaType; ListaDestinatarios : Destinatarios; ListaDesglose : DesgloseType; DetalleDesglose : DetalleType; XSDatetime : TXSDatetime; j:integer; _huellaAnterior : string; facturaRegistro : TRegistrofactura; begin facturaRegistro:=sesiones[sesion].facturas[indice]; Factura := RegistroFacturaType.Create; Factura.RegistroAnulacion := RegistroAnulacion.Create; Factura.RegistroAnulacion.IDVersion := VersionType._1_0; Factura.RegistroAnulacion.IDFactura := IDFacturaExpedidaBajaType.Create; Factura.RegistroAnulacion.IDFactura.IDEmisorFacturaAnulada := cabecera.emisor.nifEmisor; Factura.RegistroAnulacion.IDFactura.NumSerieFacturaAnulada := facturaRegistro.numSerieFactura; Factura.RegistroAnulacion.IDFactura.FechaExpedicionFacturaAnulada := verifactuFecha( facturaRegistro.fechafactura ) ; // (dd-mm-yyyy) // Encadenamiento Factura.RegistroAnulacion.Encadenamiento := Encadenamiento2.Create; // ¿ es el primer registro ? if sesiones[sesion].facturas[indice-1].huella='' then Factura.RegistroAnulacion.Encadenamiento.PrimerRegistro:=PrimerRegistroCadenaType(0) // S else begin Factura.RegistroAnulacion.Encadenamiento.RegistroAnterior:=EncadenamientoFacturaAnteriorType.Create; Factura.RegistroAnulacion.Encadenamiento.RegistroAnterior.IDEmisorFactura :=cabecera.emisor.nifEmisor; Factura.RegistroAnulacion.Encadenamiento.RegistroAnterior.NumSerieFactura :=sesiones[sesion].facturas[indice-1].numSerieFactura; Factura.RegistroAnulacion.Encadenamiento.RegistroAnterior.FechaExpedicionFactura :=sesiones[sesion].facturas[indice-1].fechaFactura; Factura.RegistroAnulacion.Encadenamiento.RegistroAnterior.Huella :=sesiones[sesion].facturas[indice-1].huella; end; // Sin registro previo: (anulacion de facturas fuera de verifactu) if sesiones[sesion].facturas[indice].sinregistroPrevio then Factura.RegistroAnulacion.SinRegistroPrevio:=SinRegistroPrevioType.S; // sistemaInformatico sistemaInformatico( cabecera, Factura ); //XSDatetime XSDatetime := TXSDatetime.Create; XSDatetime.UseZeroMilliseconds := False; XSDatetime.AsDateTime := Now; XSDatetime.Millisecond := 0; XSDatetime.UseZeroMilliseconds := False; XSDatetime.FractionalSeconds := 0; Factura.RegistroAnulacion.FechaHoraHusoGenRegistro := XSDatetime; // Formato: YYYY-MM-DDThh:mm:ssTZD (ej: 2024-01-01T19:20:30+01:00) (ISO 8601) // Huella facturaRegistro.Huella := GenerarHuella_anulacion_RegistroVerifactu( Factura.RegistroAnulacion ); sesiones[sesion].facturas[indice].huella:=facturaRegistro.Huella; Factura.RegistroAnulacion.TipoHuella := TipoHuellaType._01; Factura.RegistroAnulacion.Huella := facturaRegistro.Huella; // fin, devolver el objeto RegistroFacturacionAnulacionType creado desde la informacion contenida en el record TRegistroFactura (ver utiles.pas) result:=factura; end; |
#5
|
||||
|
||||
Cita:
Código:
<Encadenamiento> <RegistroAnterior> <IDEmisorFactura>25000000Z</IDEmisorFactura> <NumSerieFactura>37734AAA13D8E2D74A4FBDDAD7B34C4EA026C3112A80334FFEDC500ADFDE0128</NumSerieFactura> <FechaExpedicionFactura>04/04/2025</FechaExpedicionFactura> <Huella>37734AAA13D8E2D74A4FBDDAD7B34C4EA026C3112A80334FFEDC500ADFDE0128</Huella> </RegistroAnterior> </Encadenamiento> Le estoy pasando los parametros correctos, pero la simulación me graba esos datos en el registro de anulación. Estoy dando de baja una factura enviada ayer. En las altas funciona bien.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. Última edición por ramherfer fecha: Hace 3 Semanas a las 18:01:16. |
#6
|
||||
|
||||
Cita:
slds |
#7
|
||||
|
||||
Cita:
¡Gracias!
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Verifactu o por requerimiento (no-verifactu) ¿decisión del usuario? | Maska10 | Temas legales | 2 | 07-12-2024 12:34:47 |
Demo de una applicación para una estación de enfermera con RAD Studio | AgustinOrtu | La Taberna | 1 | 21-07-2015 17:41:35 |
Demo Delphi, EMail | Caral | Internet | 1 | 19-12-2006 00:37:56 |
Demo de delphi 2005 | mazinger | Varios | 2 | 18-12-2004 09:23:09 |
El Rave que viene con Delphi es una Demo? | apicito | Impresión | 0 | 04-06-2003 11:33:36 |
![]() |
|