![]() |
Cita:
|
En teoría se pueden sustituir varias facturas simplificadas en 1 nominal, pero si lo ves más sencillo en 1 también vale pq en la gran mayoría de los casos 1 simplificada -> 1 nominal .
El nodo es <FacturasSustituidas> y dentro el array. Código:
<FacturasSustituidas> |
La versión 4.6 incluirá el tipo de factura F3.
Saludos ! |
En teoría se pueden sustituir varias facturas simplificadas en 1 nominal, pero si lo ves más sencillo en 1 también vale pq en la gran mayoría de los casos 1 simplificada -> 1 nominal .
El nodo es <FacturasSustituidas> y dentro el array. Código:
<FacturasSustituidas> |
Ya está la subida la versión 4.6a
Que como ha comentado [sección_31] incluye las facturas de tipo F3 Está en el FTP del club: https://terawiki.clubdelphi.com/Otro...%20Delphi%207/ |
Da igual si tienes variuas series. Simpre es sobre la ultima y por lo que he visto hasta ahora lo esta haciendo bien.
|
por cierto, yo diria que la ayuda de la 4.6a esta algo mal detallada sobre la F3, creo que con indicar los datos de cliente, emision, y el record de sustitucion deberia funcionar. Vamos que no lo tengo claro, pero funcionar, funciona.
Saludos ! : ) |
Consulta de RF enviados
Buenas tardes¡¡
Gracias anticipadas de nuevo a todos por el enorme esfuerzo. Acabo de darme cuenta de que al realizar la consulta de la AEAT de registros de facturación enviados, me aparecen todos como Subsanacion = 'S' y PrimerRegistro = 'S'. La consulta la hago por medio del componente, capturando los registros en el evento onRegConsultaD7. Los RF los envío sin valor en el campo Subsanacion, y trazando la función AddRegistroInicial el valor fPrimero tiene valor False, no entiendo por que al hacer la consulta me devuelve 'S' en esos dos campos (Subsanacion y RegistroInicial). El xml de envio esta bien generado y el encadenamiento es correcto. Y el xml de respuesta también es correcto A alguien le pasa esto? |
evento onRegTrasEspera
Quería comentaros, por si le sirve a alguien, que estoy utilizando el evento onRegTrasEspera para gestionar la cola de envío, y va de cine.
Mi software es de hostelería y comercio, y en principio había pensado en realizar los envíos cada vez que se cobra una factura, pero no las tenia todas conmigo, porque en muchos bares y comercios realizan varios cobros por minuto, y quien sabe si los banearían. Para gestionar la cola de envíos hago lo siguiente: Cuando cobro una factura compruebo la propiedad AutoEspera. Si está a False la pongo a true y realizo el envío. Y si esta a True guardo la factura en la cola (FIFO) sin realizar envío.
Luego en el evento onTrasEspera, si hay registros pendientes realizo el envío de las facturas guardadas en cola y si no hay registros pendientes de envío vuelvo a poner a False la propiedad AutoEspera.
Espero que le pueda servir a alguien. |
Cita:
uuummm... revisa en la web de la AEAT como estan esos registros. Si en la WEB DE LA AEAT estan correctos (es decir no aparece subsanacion y no son primer registro), entonces sera un problema de proceso de la consulta y lo reviso. Dimelo. (mira tambien si en el XML subsanacion no esta ni primer registro) (Yo no he proceso la consulta para obtener de vuelta esos valores, me fijo en otros campos, de ahi que quizas esten mal procesados) Saludos ! |
:) por cierto a estas alturas, me gustaría saber cuantos están usando mi componente... por curiosidad.
el timer del que habla [matorral] fue una aportación de [Darkdudae] |
re
Buenos días seccion_31, Yo lo estoy utilizando en mi aplicación personal (en modo prueba) y va todo de lujo, si bien, lo que no he sido capaz aún es de insertar la firma en el signature. Todo funciona correctamente y voy adaptándolo según los mensajes de respuesta de la aeta y con los apreciados consejos que posteais.
Un millón de gracias a todos |
Cita:
Me disteis la vida, porque ni por asombro podria conseguir todo esto por mi mismo. Creo que uno de los dias mas felices de mi vida fue cuando envie un RF a Hacienda y me contesto "Correcto" :D A estas alturas aun sigo peleando con la implementación del componente en mis aplicaciones y lo que mas me aterra ahora mismo es el tratamiento de los errores que devuelva (aceptado con errores, etc ... ), porque aun no me he puesto con ello. Pero que de verdad que os debo la vida¡¡ v:-)v||-||#:-)# |
Cita:
|
Cita:
|
Cita:
|
[quote=seccion_31;566402]:) por cierto a estas alturas, me gustaría saber cuantos están usando mi componente... por curiosidad.
Yo y no me cansaré de dar las gracias primero a ti y despues a todos aquellos que han colaborado para que funcione correctamente este magnífico componente. De momento no he detectado ningún problema |
Cita:
Acabo de comprobar los registros enviados y las dos columnas me aparecen en blanco (Subsanación y Sin registro previo). O sea, que el componente envía bien la información. :). |
Cita:
En tipos serializados esa importación de delphi NO permite saber si tiene valor asignado o no. La solucion es modificar el tipo SubsanacionType = (S, N); y dejarlo: SubsanacionType = (stNone, S, N); Y cambiar algo el codigo de proceso de Consulta y asi funciona correcto. Esto pasa con otros tipos. Pero me parece muy intrusivo. ¿alguna idea mejor? Saludos ! |
Cita:
Saludos ! |
Cita:
ya nos diras si funciona bien. saludos ! |
Cita:
|
Cita:
|
Cita:
Comentarte que el componente intercepta el tiempo de espera entre operaciones devuelto en cada envío desde la AEAT para modificar el timer interno que se usa antes de lanzar el evento OnTrasEspera. Se incorporó para hacer exactamente lo que estás haciendo y lo estás usando de forma muy similar a la que lo hago yo mismo. Un saludo! |
La 4.7 ya esta enviada para su publicación, corrigiendo esas variables de la consulta
Saludos ! |
|
Cita:
Gracias¡¡¡¡¡:) |
Cita:
Muchas gracias por tu aporte. |
vaya por delante el agradecimiento a Seccion31 por su código! :)
Con la versión 4.7 me ha saltado el siguiente error: "[dcc32 Error] uVerifactuFuncs.pas(...): E2361 Cannot access private symbol RespuestaDatosRegistroFacturacionType.Incidencia_Specified" Después de mucho mirar me he encontrado con que sistemafacturacion.pas (el .pas generado a partir del WSDL) está modificado! buscar esta linea: "PUBLIC // modificado aqui para disponer de las funciones _Specified" A mí me ha saltado el error porque no estoy utilizando el sistemafacturacion.pas que viene con el componente. Estoy utilizando un sistemafacturacion.pas generado por mi, posterior: Version : 1.0 (01/07/2025 10:20:16 - - $Rev: 116709 $) Lo digo para que lo tengaís en cuenta y el autor podrá confirmar si esto es así o me he liado yo. Y la cuestión... ¿es conveniente utilizar siempre el último WSDL? nos quedamos con una versión y ya? que consideraís que se debe hacer al respecto? gracias!! |
Cita:
La actual es: // Version : 1.0 (14/02/2025 11:14:56 - - $Rev: 90173 $) Pero yo creo que es la misma 1.0 que tienes tu, ¿importada en otra fecha? porque entiendo que la version deberia cambiar. (aqui ya no lo tengo claro) Cuando se publique otro WSDL es ir a esos lugares y colocar el PUBLIC y listo. Es la solucion menos intrusiva que encontre. No se si este problema se ha tratado en otros hilos del foro. Saludos ! |
Cita:
|
Diria que el componente, no utiliza CAPICOM.DLL
He desregistrado la DLL Eliminado capicom.dll de todo el disco Confirmo que en el registro no hay referencia alguna Reinicio El programa demo funciona perfecto Listo las dlls utilizadas por el programa de demo y no aparece ¿alguien puede confirmarlo? Slds ! |
He hecho los mismo pasos y me funciona tb.
Por otra parte, evidentemente otro más que lo utiliza y te confirmo 3 compañeros más que lo utilizan por referencias mías. Reitero mis agradecimientos por el enorme trabajo que has y estas haciendo. Saludos |
Podemos implementar facturas rectificativas por sustitución,
¿ alguien puede darme un registro XML de alta y una explicación para añadirlo ? Saludos ! Si me dais esa info lo añado. |
Buenas tardes¡¡
a mi tambien me funciona sin el capicom.dll estoy buscando algun ejemplo de xml de rectificativa por sustitucion, pero no encuentro ninguno. (yo no se como es). :confused: |
A ver si esto te sirve...
Factura 1: Código:
<sum:RegFactuSistemaFacturacion xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Código:
<sum:RegFactuSistemaFacturacion xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Código:
<sum:RegFactuSistemaFacturacion xmlns:ds="http://www.w3.org/2000/09/xmldsig#" |
Y nosotros generamos sustitutiva (que internamente son también como rectificativas).
Factura simplificada 1: Código:
<sum:RegFactuSistemaFacturacion xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Código:
<sum:RegFactuSistemaFacturacion xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Código:
<sum:RegFactuSistemaFacturacion xmlns:ds="http://www.w3.org/2000/09/xmldsig#" |
gracias Neftali,
Voy a darle una mirada, a ver.... ahora tenemos: La sustitutiva F3 la empleamos para cambiar un ticket a factura. La rectificativa por diferencias tipo I, para hacer abonos, (siempre negativos). Nos faltaría una rectificativa por sustitución, tipo S, entiendo para reemplazar una factura por otra. Saludos ! |
Estas 2 son las únicas que implementamos nosotros.
|
Cita:
Así que en realidad, lo propuesto por Neftali no deja de ser lo mismo que ahora hay implementado para las F3, con la excepción de que no se sustituye a un único ticket, sino a dos. En realidad esto es bastante común en pequeños comercios. Los grandes clientes a final del mes piden factura de todos los tickets que han ido adquiriendo durante el mes. |
| La franja horaria es GMT +2. Ahora son las 07:03:59. |
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