FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#821
|
|||
|
|||
Sí, se como funciona gracias, era por si habías visto algo de los parametros para firmas que se me escapara.
|
#822
|
||||
|
||||
Voy a compartir mi experiencia hasta hoy, me gustaría por favor que la comentarais
NO conozco bien los terminos tecnicos para expresar, asi que ya disculpareis. Publicacion de los servicios WSDL por la AEAT https://prewww2.aeat.es/static_files...cturacion.wsdl Para mi la publicacion de los esquemas WSDL estan incompletos, no hay forma de crear ninguna estructura y faltan definiciones. Por tanto es imposible probar nada desde ahi. si quiera invocar el procedimiento de envio. Ni compilar. Publicacion de los XSD por la AEAT https://prewww2.aeat.es/static_files...nformacion.xsd Es una publicacion completa, que aparentemente se puede importar en delphi, mediante XML Binding para componer mas facilmente el esquema XML En mi caso no he sabido como hacerla funcionar mas alla de rellenar el apartado "cabecera" y sus subnodos he sido incapaz de seguir completando el resto de nodos. Composicion manual del XML https://www.clubdelphi.com/foros/sho...&postcount=811 Visto lo anterir, he tenido que componer manualmente los XML, en mi opinion no ha quedado mal. (vease el codigo que publique) post #811 Ese codigo lo he mejorado, en espera de publicarlo cuando tengamos alguna informacion mas. Firma del XML Creo que autofirma command line, puede hacerse cargo de la firma del XML Envio del XML Aunque nadie del hilo se ha pronunciado como enviar el XML firmado, se puede utilizar un THTTPRIO crear -un objeto del tipo requerido vacio- e interceptar el evento BeforeExecute para cargar el XML. Eso ahora mismo no se puede hacer, porque como he indicado en el primer punto veo el WSDL incompleto. (pero lo he probado con el SII, y funciona) Respuesta de la AEAT Cita:
Un saludo a tod@s y buen fin de semana. |
#823
|
||||
|
||||
Cita:
Ya lo he dicho en varias ocasiones. Creo que no vale la pena seguir hasta que no se publique la documentación técnica necesarias. Es dar palos de ciego.
__________________
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. |
#824
|
||||
|
||||
buenas tardes !
tras varias consultas con la AEAT, he llegado a la conclusión que hoy no hay mucha mas información disponible. Tras leer el PDF informativo, parece que el envio al sistema verifactu sera opcional: https://www.agenciatributaria.es/sta...tubre_2022.pdf Pagina 9 Sobre programacion, como no puedo quedarme quieto y no tengo los WSDL, he desarrollado una funcion capaz de convertir un TRecord a XML, usando las rttis, incluyendo anidaciones y toda clase arrays, de tal forma que facilmente se puede componer no solo la factura, sino cualquier estructura TRecord. Actualmente los tipos que he creado han sido para el alta de facturacion y anulacion. Este foro me ayudo mucho con el SII, y me gustaria viendo que tenemos tiempo, aportar lo que pueda, y que os animeis a colgar codigo, en mi caso para devolver lo aprendido. Pero como no quiero crear mas confusion voy a postear unas porciones de ejemplo: para que os hagais una idea. (Ha costado un par de minutos desarrollar la anulacion de facturas). type (parcial) Código:
TRegistroFacturacion=record PeriodoLiquidacion:TPeriodoliquidacion; IDFactura:TIDFactura; tipoFactura:string; FechaOperacion:string; DescripcionOperacion:String; Desglose:array of TDesglose; ImporteTotal:string; Contraparte:TContraparte; EncadenamientoFacturaAnterior:TEncadenamiento; SistemaInformatico:TSistemaInformatico; end; TDatosControl=record huella:string; TipoHash:string; FechaGenRegistro:string; HoraGenRegistro:string; HUsoHorarioGenRegistro:string; Incidencia:string; end; TRegistroAltaFacturas=record empty:boolean; //<- interpretado por la funcion xmlRecord (no genera XML), permite incluir o no el nodo. (es opcional, y se puede añadir en cualquier nodo) RegistroFacturacion: TRegistroFacturacion; DatosControl: TDatosControl; end; TSistemaFacturacionAltaFact=record Cabecera:TCabecera; RegistroAltaFacturas:array[1..1000] of TRegistroAltaFacturas; // <- diseñado fijo pero podria ser un array dinamico, como desglose. (cada elemento incluye empty para determinar si hay factura) end; codigo: (parcial) Código:
var j:integer; begin // vaciar array de facturas for j:=1 to 1000 do veriFactu.RegistroAltaFacturas[j].empty:=true; // <-propiedad opcional "empty" no genera XML pero permite decidir si se genera el nodo, o no. // empezar a cargar datos: veriFactu.Cabecera.IDVersion:='0.1'; veriFactu.Cabecera.ObligadoEmision.NombreRazon:='EMPRESA PRUEBAS'; veriFactu.Cabecera.ObligadoEmision.NIF:='00000006Y'; // cargar facturas veriFactu.RegistroAltaFacturas[1].empty:=false; veriFactu.RegistroAltaFacturas[1].RegistroFacturacion.PeriodoLiquidacion.ejercicio:='2022'; veriFactu.RegistroAltaFacturas[1].RegistroFacturacion.PeriodoLiquidacion.periodo:='3T'; veriFactu.RegistroAltaFacturas[1].RegistroFacturacion.IDFactura.IdEmisorFactura.NIF:='00000006Y'; veriFactu.RegistroAltaFacturas[1].RegistroFacturacion.IDFactura.NumSerieFacturaEmisor:='84.2.1.2566'; veriFactu.RegistroAltaFacturas[1].RegistroFacturacion.IDFactura.FechaExpedicionFacturaEmisor:='31/07/2022'; veriFactu.RegistroAltaFacturas[1].RegistroFacturacion.tipoFactura:='F2'; veriFactu.RegistroAltaFacturas[1].RegistroFacturacion.FechaOperacion:='31/07/2022'; veriFactu.RegistroAltaFacturas[1].RegistroFacturacion.DescripcionOperacion:='VENTA MINORISTA'; // un desglose setLength(veriFactu.RegistroAltaFacturas[1].RegistroFacturacion.Desglose,1); veriFactu.RegistroAltaFacturas[1].RegistroFacturacion.Desglose[0].claveRegimen:='01'; veriFactu.RegistroAltaFacturas[1].RegistroFacturacion.Desglose[0].calificacionOperacion:='S1'; .... etc.... llenando el record.... y finalmente: // crear archivo XML desde el record (aqui se hace la magia) // parametros: tipo de dato, el record "master" del alta, un pointer a la variable de ese record, el archivo xml a crear, y el callback para calcular huellas y lo que haga falta. (opcional) recordToXML('uVeriExp.TSistemaFacturacionAltaFact', @veriFactu, 'c:\pruebas\v1.xml', calcularHuellas ); Es decir cuando se va construyendo el XML desde el record, se va llamando a este callback y se intercepta el nodo registrofacturacion para calcular la huella. Código:
// CALLBACK de nodos y valores parametros del callback: xmlFile en construccion, xmlArray: indice si se esta dentro de un array dentro del record, xmlNodo y xmlLabel identificador del nodo y etiqueta de valor, xmlValue, valor de la etiqueta, que puede ser alterado en el callback, y xmlLabelFin, etiqueta marcador de fin de valor. </ Segun en que momento se este procesado el record, el callback recibe unos u otros valores. xmlArray en nuestro ejemplo tendria sentido, dentro de la zona desglose o registrodefacturacion, fuera marcara -1. procedure calcularHuellas(xmlFile:TStringList; xmlarray:integer; xmlNodo, xmlLabel:string; var xmlValue:string; xmlLabelFin:string); var j:integer; numeroAnterior:string; begin // // calcular huella // if (uppercase(xmlNodo)='<CABECERA>') then begin _huella:=''; _huella256:=''; end; if (uppercase(xmlNodo)='<REGISTROFACTURACION>') then // empezamos a guardar el registro begin _huella:=xmlNodo; exit; end; if (uppercase(xmlNodo)='</REGISTROFACTURACION>') then // finalizamos y calculamos begin _huella:=_huella+xmlNodo; _huella256:=THashSHA2.GetHashString(_huella, SHA256); veriFactu.RegistroAltaFacturas[xmlArray+1].DatosControl.huella:=_huella256; _huella:=''; exit; end; if _huella<>'' then // vamos guardando la huella por cada nodo y valor _huella:=_huella+xmlLabel+xmlValue+xmlLabelFin; if uppercase(xmlLabel)='<HUELLA>' then // colocamos la huella begin xmlValue:=_huella256; _huella256:=''; exit; end; /////// HUELLA FACTURA ANTERIOR ////////////// if uppercase(xmlLabel)='<HUELLAFACTURAANTERIOR>' then begin numeroAnterior:=veriFactu.RegistroAltaFacturas[xmlArray+1].RegistroFacturacion.EncadenamientoFacturaAnterior.NumSerieFacturaAnterior; for j:=1 to 1000 do begin if (veriFactu.RegistroAltaFacturas[j].RegistroFacturacion.IDFactura.NumSerieFacturaEmisor=numeroAnterior)and (not veriFactu.RegistroAltaFacturas[j].empty) then begin xmlValue:=veriFactu.RegistroAltaFacturas[j].DatosControl.huella; exit; end; end; xmlValue:=''; end; // si no estuviera en este bloque habria que buscarla ¿en una base de datos? end; |
#825
|
|||
|
|||
Buenas tardes, a ver si me aclaro con todo esto:
por una parte tenemos la ley, que salió en el boe en julio 2021: https://www.boe.es/buscar/doc.php?id=BOE-A-2021-11473 por otra parte tenemos el reglamento de digitalización, donde se incluyen los requisitos informaticos...etc, con fecha febrero 2022: https://www.hacienda.gob.es/Document...talizacion.pdf luego, tenemos en la web de verifactu:https://www.agenciatributaria.es/AEA...ERI_FACTU.html un enlace a un pdf con unas novedades en el reglamento de digitalización, con fecha junio 2022: https://www.agenciatributaria.es/sta.../Novedades.pdf. En este enlace se indican cambios en el reglamento de digitalización, como por ejemplo: Se elimina la referencia a la función de cierre del periodo impositivo. Asimismo, se cambia la redacción para simplificarla y aclararla con la intención de que se entienda que se ciñe al encadenamiento (vía huellas) de los registros de facturación, y no a su posible paso por distintos sistemas informáticos. Y mi duda es, todos estos cambios que se indican en el ultimo link que he puesto... están ya bien redactados en algún sitio? es decir, en el reglamento de digitalización, pero actualizado?? porque estamos ya en septiembre 2023.... saludos |
#826
|
|||
|
|||
Cita:
|
#827
|
|||
|
|||
vale,gracias por la respuesta , veremos a ver en que acaba todo esto....
|
#828
|
|||
|
|||
Es curioso, hay quien afirma que la AEAT ya está sancionando por esta nueva ley.
Evidentemente no por todos los apartados nuevos como verifactu Tenéis noticias al respecto ? |
#829
|
||||
|
||||
Cita:
Si hace un par de meses comentábamos esto: https://www.clubdelphi.com/foros/sho...&postcount=823 No es posible que estén sancionando por la "Ley Antifraude" (que no existe). Otra cosa sería sancionar por la "Ley de Facturación" (por ejemplo) que ya hace años que está vigente.
__________________
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. |
#830
|
|||
|
|||
En la web leyantifraude.com
Última edición por Casimiro Notevi fecha: 20-09-2023 a las 11:44:09. |
#831
|
||||
|
||||
En esa web dice al principio, en grande:
Cita:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#832
|
|||
|
|||
Esa web me da a mí que no es más que un metemiedos para intentar colar alguna suscripción a las empresas, o alguna homologación, etc
|
#833
|
|||
|
|||
Cita:
No creo que puedan sancionar si no hay ni orden ministerial ni nada..... |
#834
|
|||
|
|||
Entiendo que puedan sancionar por no cumplir la normativa, que creo que es de 2003 (pero NADIE cumple), y que impide borrar facturas, modificarlas, etc. Supuestamente, por Ley, habría que crear una rectificativa, etc.
Nosotros todavía tenemos (muchos) clientes que te preguntan cómo esconder facturas, borrarlas como si no se hubieran hecho, cambiarles el número, etc. y eso supuestamente sí que está prohibido, y creo recordar que la multa iba incluso para los desarrolladores de software por permitirlo. Pero claro, eso es una cosa, y Veri*Factu es otra. |
#835
|
||||
|
||||
Cita:
Me lo ha quitado de la boca y no lo puedo explicar mejor. Primero te asusto con los 150.000€ en grande. Luego te vendo auditorías, adaptaciones, asesoramiento, cursos, servicios legales,...
__________________
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. |
#836
|
||||
|
||||
Bueno... a mi un distribuidor ya me dice que algún cliente le ha comprado a alguna empresa que afirma que su software es totalmente compatible con Verifactu y el nuestro no. Así está la cosa...
__________________
Be water my friend. |
#837
|
|||
|
|||
Según he leído, de la Ley Antifraude sí están vigentes las sanciones por estos apartados:
a) permitan llevar contabilidades distintas en los términos del artículo 200.1.d) de esta Ley; b) permitan no reflejar, total o parcialmente, la anotación de transacciones realizadas; c) permitan registrar transacciones distintas a las anotaciones realizadas; d) permitan alterar transacciones ya registradas incumpliendo la normativa aplicable; La verdad es que estoy perdido, por ejemplo un albarán es transacción ? o se refiere solo a facturas ? Puedo borrar/modificar albaranes ? y presupuestos ? Muchas gracias por responder |
#838
|
||||
|
||||
Cita:
Cita:
Si.
__________________
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. |
#839
|
|||
|
|||
Puedo borrar/modificar albaranes ? y presupuestos ?
Siempre que no se haya emitido la factura correspondiente a esos documentos. |
#840
|
|||
|
|||
Muchas gracias por contestar a todos.
Otra consulta cuando hacéis una factura la trabáis directamente ? trabajáis con facturas borrador ? Permitís modificar facturas total o parcialmente ? muchas gracias de nuevo |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Hijo de Informáticos | gluglu | Humor | 3 | 13-03-2007 12:05:35 |
Adictos informaticos ... | Trigger | Humor | 2 | 11-10-2004 13:18:32 |
Nosotros los Informáticos | Trigger | Humor | 1 | 10-10-2004 15:58:09 |
Patrón de los Informáticos. | obiwuan | Varios | 20 | 10-09-2003 15:44:54 |
Chistes Informaticos | jhonny | Humor | 2 | 11-08-2003 22:59:09 |
|