
17-03-2025
|
 |
Miembro
|
|
Registrado: ene 2017
Posts: 472
Poder: 10
|
|
Buenas noches
Ya esta enviada para publicacion la nueva version del componente la 2.0:
Cita:
version 2.0
----------------------------------------------------------------------------------------------------------------------------
-> ATENCION: aumentar el maxstack size minimo a: $00400000
-> ATENCION: Se recomienda deshabilitar range check
Tras recibir nueva informacion sobre el funcionamiento de los encadenanmientos en foro clubDelphi se ha modificado ampliamente
el funcionamiento del componente: Algunos de estos cambios pueden verse aplicados en la DEMO_D7
https://www.clubdelphi.com/foros/sho...d.php?p=559560
Los encadenamientos de un emisor son sobre el registro anterior generado cronologicamente, independientemente de si existe
o no en verifactu y de su serie. Asi ya no es necesario obtener el numero anterior de factura.
De esta forma eliminamos el parametro factura anterior y creamos la funcion registroInicial( ) para establecer el primer encadenamiento
del envio. (que deberia ser simplemente los datos el ultimo registro enviado, en el envio anterior)
TVeriFactu.addRegistroInicial(numserieFactura, fechaFactura, huella:string):boolean;
Asi tenemos la funcion registroInicial para establecer el encadenamiento cero y el resto de encadenamientos anteriores de los siguientes registros
como es cronologico se obtienen del registro indice del array de facturas - 1.
Si NO hay encadenamiento previo (registro Inicial), llamar a la funcion registroInicial con '' (string vacio) en todos los apartados. (o no llamarla).
---> Las huellas siempre se calculan en el momento del envio, (excepto la del registro inicial), dejar el campo huella de la factura sin valor al añadir la factura
Despues del envio se puede recuperar la factura con la nueva funcion TVerifactu.factura (ver abajo) y ahi estara la huella calculada - enviada.
---> ATENCION: Se ha publicado la funcion clear_factura( factura ) para limpiar todos los campos de una factura, previo a cargar datos por el usuario.
Es muy recomendable su uso, ya que algunos campos, especialmente los boolean tienden a quedar =true.
TVeriFactu.clearFactura(var afactura:TRegistroFactura);
Se añaden los siguientes campos en la factura: TRegistroFactura
subsanacion :boolean; // S
rechazoprevioExiste :boolean; // S
rechazoprevioNOExiste:boolean; // X
por defecto clear_factura los dejara a false (entre otros).
---> ATENCION: El indice inicial para analizar el resultado, consultas devueltas, etc... ahora comienzan en 1:
Los bucles quedaran asi:
for j:=1 to resultado.nFacturas do
....
for j:=1 to consulta.nfacturas do
Para una sola factura de consulta:
consulta.facturas[1]
---> ATENCION: Anulacion de facturas:
Añadido en el campo en factura, para la anulacion de factura: sinregistroPrevio:boolean;
Nueva funcion:
TVerifactu.factura(indice:integer; var aFactura:TRegistroFactura):boolean;
Devuelve la factura almacenada en la posicion indice del array. un indice de cero, devolvera los 3 apartados del registro inicial.
Ahora: En el array de resultado del envio de facturas, por cada factura, se envia su posicion indice en el array de facturas almacenadas
Al añadir una factura, se comprueba si existe en el array para ese numero y operacion, impidiendo añadir la misma factura dos veces en esa operacion.
Por tanto ahora las huellas y CSV en el resultado de envio se envian sin posibles fallos de identificacion.
Ver el formulario demo_d7 para comprobar estos cambios.
Modificaciones en consulta de registros:
Ahora la consulta se limpia correctamente antes de empezar su procesamiento
En TConsultaFactura
Timestamp se suprime (corresponde a fechaGenRegistro y horaGenRegistro)
Fecha pasa a FechaGenRegistro
Hora pasa a HoraGenRegistro
Se añaden: (todavia por comprobar)
idPeticion
FechaUltimaModificacion
HoraUltimaModificacion
TipoHuella
PrimerRegistro
Incidencia
clienteCodPais
clientetipoNIF
Subsanacion
RechazoPrevio
inversionSujetoPasivo
SinregistroPrevio
En el array de ivas
calificaciondeoperacion
Añadiendo facturas:
Chequeo de cuotas:
Ahora ya no es necesario indicar la cuotatotal en la factura
Si se indica cuotatotal=0 se sumaran las cuotas de iva y req del array de ivas
Si se indica cuotatotal<>0 debera cuadrar con las cuotas de iva y req del array de ivas
Parametros del sistema informatico:
Se suprime del envio y consulta por no obligatorio: TipoUsoPosibleSoloVerifactu y TipoUsoPosibleMultiOT
----------------------------------------------------------------------------------------------------------------------------
version 1.3 (no publicada)
-----------
Entrega de bienes a Canarias, ceuta y melilla, codigos postales 35 38, 51 y 52:->Automatizacion para entrega de bienes, regimen 02 exportacionn, E2, exentas por el capitulo 21
Corregida asignacion automatica de tiponif para ES
Correccion al enviar el nombre/password en certificados pfx p12
Mas correcciones en la carga de pfx y p12, ahora ya deberia estar correcto
Correccion en consultas, conDatos se quedaba a false, corregido
En tickets, F2 , automaticamente se coloca: canarias=false, e inversionSujetoPasivo=false
-> Se recomienda deshabilitar range check
Corregida asignacion de sesion al limpiar callbacks en inicio de sesion
|
|