Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-01-2024
sglorka sglorka is offline
Miembro
 
Registrado: mar 2017
Posts: 93
Poder: 8
sglorka Va por buen camino
Nodo RegistroFacturacion

A alguien le ha ocurrido que al serializar el registro individual (no montado dentro de <AltaFactuSistemaFacturacion>) el nodo <RegistroFacturacion> aparece con su namespace

<?xml version="1.0" encoding="utf-8"?>
<FacturasEmitidasType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RegistroFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDEmisorFactura>
<NIF>xxxxxxxxx</NIF>
</IDEmisorFactura> ........

pero al incorporarlo al nodo <AltaFactuSistemaFacturacion> para ser enviado la serialización elimina el namespace de dicho nodo

<AltaFactuSistemaFacturacion xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDVersion>1.0</IDVersion>
<ObligadoEmision>
<NombreRazon>xxxxx</NombreRazon>
<NIF>xxxxx</NIF>
</ObligadoEmision>
<TipoRegistroAEAT>T0</TipoRegistroAEAT>
</Cabecera>
<RegistroAltaFacturas xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<RegistroFacturacion>
<IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDEmisorFactura> ....

Esto tiene la implicación de que el hash que calcularán en la aeat del nodo RegistroFacturacion no incluirá los carácteres relativos al namespace y por tanto, no coincidirá

¿ Alguien está en este caso ?
Responder Con Cita
  #2  
Antiguo 11-01-2024
Avatar de ramherfer
ramherfer ramherfer is offline
Miembro
 
Registrado: may 2013
Ubicación: Valencia
Posts: 51
Poder: 11
ramherfer Va por buen camino
Buenas noches.
A ver por favor estamos trabajando con 3 ficheros que subio German (Neftali):

SistemaFacturacionSOAPv11.pas
SistemaFacturacionSOAPv12.pas
SistemaFacturacionSOAPvRec.pas

Alguien podría indicar el proceso, los pasos para obtenerlos.
Gracias.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos.
Responder Con Cita
  #3  
Antiguo 12-01-2024
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
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
Cita:
Empezado por ramherfer Ver Mensaje
Alguien podría indicar el proceso, los pasos para obtenerlos.
Desde el IDE de Delphi:
  1. Crear un proyecto nuevo
  2. File/New/Other/Web/WSDL Importer
  3. Location: https://prewww2.aeat.es/static_files...cturacion.wsdl
  4. Siguente, Siguiente, Finish,...
Desde una ventana de MS-DOS:
Código:
c:\Program Files (x86)\Borland\Delphi7\Bin>WSDLImp.exe -p -Dc:\temp -soap12 https://prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/SistemaFacturacion.wsdl
__________________
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.

Última edición por Neftali [Germán.Estévez] fecha: 12-01-2024 a las 08:54:38.
Responder Con Cita
  #4  
Antiguo 12-01-2024
antoine0 antoine0 is offline
Miembro
 
Registrado: oct 2021
Posts: 144
Poder: 3
antoine0 Va por buen camino
Cita:
Empezado por sglorka Ver Mensaje
A alguien le ha ocurrido que al serializar el registro individual (no montado dentro de <AltaFactuSistemaFacturacion>) el nodo <RegistroFacturacion> aparece con su namespace

<?xml version="1.0" encoding="utf-8"?>
<FacturasEmitidasType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RegistroFacturacion xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDEmisorFactura>
<NIF>xxxxxxxxx</NIF>
</IDEmisorFactura> ........

pero al incorporarlo al nodo <AltaFactuSistemaFacturacion> para ser enviado la serialización elimina el namespace de dicho nodo

<AltaFactuSistemaFacturacion xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDVersion>1.0</IDVersion>
<ObligadoEmision>
<NombreRazon>xxxxx</NombreRazon>
<NIF>xxxxx</NIF>
</ObligadoEmision>
<TipoRegistroAEAT>T0</TipoRegistroAEAT>
</Cabecera>
<RegistroAltaFacturas xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<RegistroFacturacion>
<IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDEmisorFactura> ....
Yo lo haría de una forma un poco distinta:
<AltaFactuSistemaFacturacion xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> ... </Cabecera>
<Alta:RegistroAltaFacturas xmlns:Alta="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<LR:RegistroFacturacion xmlns:LR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDEmisorFactura> ....
La idea es que los espacios de nombres Alta y LR aparecen distintos dentro del documento pero en realidad son el mismo esquema. Habrá que probar con la herramienta de Hacienda pero creo que en XML es válido.
Lo he hecho con dos espacios de nombres explícitos para que se entiende mejor, pero supongo que el segundo puede ser el espacio por defecto. Evidentemente hay que ponerlo para que al final lo que aparece en lo que se está enviando a Hacienda siga exactamente lo mismo que lo que se ha usado para calcular la huella y eventualmente firmar.
Responder Con Cita
  #5  
Antiguo 12-01-2024
sglorka sglorka is offline
Miembro
 
Registrado: mar 2017
Posts: 93
Poder: 8
sglorka Va por buen camino
Cita:
Empezado por antoine0 Ver Mensaje
Yo lo haría de una forma un poco distinta:
<AltaFactuSistemaFacturacion xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd"> ... </Cabecera>
<Alta:RegistroAltaFacturas xmlns:Alta="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<LR:RegistroFacturacion xmlns:LR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
<IDFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
<IDEmisorFactura> ....
La idea es que los espacios de nombres Alta y LR aparecen distintos dentro del documento pero en realidad son el mismo esquema. Habrá que probar con la herramienta de Hacienda pero creo que en XML es válido.
Lo he hecho con dos espacios de nombres explícitos para que se entiende mejor, pero supongo que el segundo puede ser el espacio por defecto. Evidentemente hay que ponerlo para que al final lo que aparece en lo que se está enviando a Hacienda siga exactamente lo mismo que lo que se ha usado para calcular la huella y eventualmente firmar.
Se te ocurre cómo incluir esos espacios de nombres con el objeto serialiazer

Dim AltaRegistro as ServicioVeriFactu.AltaFactuSistemaFacturacion
Dim serializer As New System.Xml.Serialization.XmlSerializer(GetType(ServicioVeriFactu.AltaFactuSistemaFacturacion))
Dim writer As New System.IO.StreamWriter("RegistroAltaFactura.Xml")

serializer.Serialize(writer, AltaRegistro)
writer.Close()
Responder Con Cita
  #6  
Antiguo 12-01-2024
antoine0 antoine0 is offline
Miembro
 
Registrado: oct 2021
Posts: 144
Poder: 3
antoine0 Va por buen camino
Cita:
Empezado por sglorka Ver Mensaje
Se te ocurre cómo incluir esos espacios de nombres con el objeto serialiazer

Dim AltaRegistro as ServicioVeriFactu.AltaFactuSistemaFacturacion
Dim serializer As New System.Xml.Serialization.XmlSerializer(GetType(ServicioVeriFactu.AltaFactuSistemaFacturacion))
Dim writer As New System.IO.StreamWriter("RegistroAltaFactura.Xml")

serializer.Serialize(writer, AltaRegistro)
writer.Close()
¿Has intentado crear dos objetos del mismo tipo ServicioVeriFactu.AltaFactuSistemaFacturacion?
Algo como
Código:
Dim ServicioAltaRegistro as ServicioVeriFactu.AltaFactuSistemaFacturacion
Dim RegistroEnSi as ServicioVeriFactu.AltaFactuSistemaFacturacion
... y luego pasar por dos objetos XmlSerializer, uno que escribe dentro del segundo (si se ve mucho que no tengo práctica, concretamente nula con dotNet, es que es así ).

La idea subyacente es que hay que separar las dos partes, de una parte la generación del registro (y su posterior almacenamiento) del envío a Hacienda con el servicio web. El segundo se debe alimentar del resultado del primero, no se debería volver a crear el XML entero porqué, como bien has dicho antes, es problemático volver a generar el mismo contenido que él con cual se calculó la huella.
Responder Con Cita
  #7  
Antiguo 12-01-2024
sglorka sglorka is offline
Miembro
 
Registrado: mar 2017
Posts: 93
Poder: 8
sglorka Va por buen camino
Cita:
Empezado por antoine0 Ver Mensaje
¿Has intentado crear dos objetos del mismo tipo ServicioVeriFactu.AltaFactuSistemaFacturacion?
Algo como
Código:
Dim ServicioAltaRegistro as ServicioVeriFactu.AltaFactuSistemaFacturacion
Dim RegistroEnSi as ServicioVeriFactu.AltaFactuSistemaFacturacion
... y luego pasar por dos objetos XmlSerializer, uno que escribe dentro del segundo (si se ve mucho que no tengo práctica, concretamente nula con dotNet, es que es así ).

La idea subyacente es que hay que separar las dos partes, de una parte la generación del registro (y su posterior almacenamiento) del envío a Hacienda con el servicio web. El segundo se debe alimentar del resultado del primero, no se debería volver a crear el XML entero porqué, como bien has dicho antes, es problemático volver a generar el mismo contenido que él con cual se calculó la huella.
Se podría crear el registro inicial que se va a almacenar del tipo ServicioVeriFactu.AltaFactuSistemaFacturacion, luego no hay problema al crear el mensaje de envío con todos los registros pendientes ya que se puede extraer de cada registro individual el objeto <Registrofacturación> y añadirlos al mensaje de envío para enviar varios a la vez. Este método si funciona pero lo que me echa para atrás es que en el diseño que proponen DR_Alta CE, que se supone que es para almacenar los registros individuales, exigen que el objeto sea del tipo <FacturaExpedidaType> y no sé si eso puede crear problemas.
En resumen, entiendo que los registros de facturación generados deben almacenarse en Xml bajo la estructura <FacturaExpedidaType> y una vez que los vas a comunicar construyes el objeto ServicioVeriFactu.AltaFactuSistemaFacturacion
Responder Con Cita
  #8  
Antiguo 12-01-2024
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
El tema del orden no debería de ser problema. Aprovechando que todavía no sé cómo aislar el nodo de cada factura para generar el hash lo que estoy barruntando es que al emitir la factura se genere un XML con el nodo de esa factura en alguna carpeta, que haya un programa que esté leyendo esa carpeta y que según vayan entrando vaya leyendo el XML, generando el hash y meterlo en una "pila" donde se irá generando el XML definitivo con su cabecera para enviarlo. Claro, esto obligaría a crear y enviar el XML de forma manual, cosa que no sé si mola mucho.


No sé vosotros cómo lo veis.


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #9  
Antiguo 13-01-2024
sglorka sglorka is offline
Miembro
 
Registrado: mar 2017
Posts: 93
Poder: 8
sglorka Va por buen camino
Cita:
Empezado por sglorka Ver Mensaje
Se podría crear el registro inicial que se va a almacenar del tipo ServicioVeriFactu.AltaFactuSistemaFacturacion, luego no hay problema al crear el mensaje de envío con todos los registros pendientes ya que se puede extraer de cada registro individual el objeto <Registrofacturación> y añadirlos al mensaje de envío para enviar varios a la vez. Este método si funciona pero lo que me echa para atrás es que en el diseño que proponen DR_Alta CE, que se supone que es para almacenar los registros individuales, exigen que el objeto sea del tipo <FacturaExpedidaType> y no sé si eso puede crear problemas.
En resumen, entiendo que los registros de facturación generados deben almacenarse en Xml bajo la estructura <FacturaExpedidaType> y una vez que los vas a comunicar construyes el objeto ServicioVeriFactu.AltaFactuSistemaFacturacion
Creo que este problema está resuelto. Si el sistema es VeriFactu, no estamos obligados a almacenar, conservar y exportar los registros de facturación, por lo tanto, se pueden generar de inicio como si lo fuéramos a enviar de 1 en 1 <AltaFactuSistemaFacturacion>. Dependiendo luego del control de flujo, podemos enviarlos de 1 en 1 ó empaquetarlos para su envío según indique la tupla (n,t)
Responder Con Cita
  #10  
Antiguo 13-01-2024
rkinformatika rkinformatika is offline
Registrado
 
Registrado: feb 2021
Posts: 5
Poder: 0
rkinformatika Va por buen camino
Buenas noches,

Estan disponibles los entornos de prueba? Estoy intentando buscar y no llego a encontrar. Veo en el XSDL (SistemaFacturacion.wsdl) sale address location="xxxxxxxxxx".

<wsdl:service name="sfService">
<!-- Entorno de PRODUCCION -->
<wsdlort name="SistemaFacturacion" binding="sfWdsl:sfBinding">
<soap:address location="xxxxxxxxxx"/>
</wsdlort>
<!-- Entorno de PRODUCCION para acceso con certificado de sello -->
<wsdlort name="SistemaFacturacionSello" binding="sfWdsl:sfBinding">
<soap:address location="xxxxxxxxxx"/>
</wsdlort>
<!-- Entorno de PRUEBAS -->
<wsdlort name="SistemaFacturacionPruebas" binding="sfWdsl:sfBinding">
<soap:address location="xxxxxxxxxx"/>
</wsdlort>
<!-- Entorno de PRUEBAS para acceso con certificado de sello -->
<wsdlort name="SistemaFacturacionPruebasSello" binding="sfWdsl:sfBinding">
<soap:address location="xxxxxxxxxx"/>
</wsdlort>
</wsdl:service>

¿Eso quiere decir que aun no estan disponibles?

Muchas gracias.
Responder Con Cita
  #11  
Antiguo 13-01-2024
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Según Newton. Hacienda respondió

Cita:

Para un determinado obligado tributario, el sistema informático producirá una única cadena de registros de facturación, es decir, todos los registros de facturación generados por un mismo sistema informático deberán formar parte de la misma cadena. Si hay varios terminales o dispositivos de facturación pertenecientes al mismo sistema informático, todos ellos deberán generar registros que se integrarán en la única cadena existente para dicho sistema informático"
Eso creo que impide que existan terminales que envíen de forma independiente. Mi idea: Pienso que los terminales generarán prefecturas (por poner un nombre) y se irán encolando en un sistema que procederá a la “facturación” con todo lo que impliqque (generación del xml, encadenado, huella, envio, QR…). Si el sistema es ágil el cliente saldrá por la puerta con su factura verificable… si se produce una sobrecarga o una avería o desconexión de la central, se le podrá poner un QR para que en breve pueda descargarse en el móvil su factura verifactu, o reclamarla posteriormente. Tengo cadenas de supermercados y te aseguro que me cuelgan si se crean colas en las cajas por culpa de tener que esperar por esta normativa… varias están en SII, pero me han pedido cumplir con el verifactu también, y otras varias están fuera del SII…. Es lógico que la entrega de mercancía o prestación de servicio pueda ser en fecha y hora diferente a la de su fiscalización. Y la fiscalización será secuencial, ordenada, inmediata, fehaciente y bla, bla, bla….
__________________
Amar al mundo apasionadamente.
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
Hijo de Informáticos gluglu Humor 3 13-03-2007 11:05:35
Adictos informaticos ... Trigger Humor 2 11-10-2004 12:18:32
Nosotros los Informáticos Trigger Humor 1 10-10-2004 14:58:09
Patrón de los Informáticos. obiwuan Varios 20 10-09-2003 14:44:54
Chistes Informaticos jhonny Humor 2 11-08-2003 21:59:09


La franja horaria es GMT +2. Ahora son las 06:56:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi