Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Registros de Facturacion y Eventos (XML) (https://www.clubdelphi.com/foros/forumdisplay.php?f=67)
-   -   Creando el XML (https://www.clubdelphi.com/foros/showthread.php?t=97211)

Ramon88 05-02-2025 22:21:09

Creando el XML
 
Hola, me he decidido a probar a meter el WSDL y crear el XML como dios manda, pero no me aclaro... Por cierto, trabajo con visual studio
Lo primero es que hay veces que no encuentro la clase para crear el nodo.

Por ejemplo, estoy en la parte Detalles tengo la clase DetalleType, peero esta clase no tiene CalificacionOperacion.
En Encadenamiento, no encuentro nada que haga referencia a PrimerRegistro

Ahí ando atascado!:(
Alguien me puede orientar?


Gracias!

bmfranky 06-02-2025 09:20:42

Mas detalles
 
Cita:

Empezado por Ramon88 (Mensaje 561769)
Hola, me he decidido a probar a meter el WSDL y crear el XML como dios manda, pero no me aclaro... Por cierto, trabajo con visual studio
Lo primero es que hay veces que no encuentro la clase para crear el nodo.

Por ejemplo, estoy en la parte Detalles tengo la clase DetalleType, peero esta clase no tiene CalificacionOperacion.
En Encadenamiento, no encuentro nada que haga referencia a PrimerRegistro

Ahí ando atascado!:(
Alguien me puede orientar?


Gracias!

Hola, en que lenguaje programa C++,C#, ?
Si no lo indica sera dificil ayudarle.

Ramon88 06-02-2025 13:02:27

Cita:

Empezado por bmfranky (Mensaje 561776)
Hola, en que lenguaje programa C++,C#, ?
Si no lo indica sera dificil ayudarle.

Perdón!
vb.net

Jarogo08 10-02-2025 11:06:33

Cita:

Empezado por Ramon88 (Mensaje 561769)
Hola, me he decidido a probar a meter el WSDL y crear el XML como dios manda, pero no me aclaro... Por cierto, trabajo con visual studio
Lo primero es que hay veces que no encuentro la clase para crear el nodo.

Por ejemplo, estoy en la parte Detalles tengo la clase DetalleType, peero esta clase no tiene CalificacionOperacion.
En Encadenamiento, no encuentro nada que haga referencia a PrimerRegistro

Ahí ando atascado!
Alguien me puede orientar?


Gracias!


yo lo hago así:


Código:

CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Desglose(y).Item = New CalificacionOperacionType
CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Desglose(y).Item = CalificacionOperacionType.S1

en cuanto al encadenamiento:


Código:

CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento = New RegistroFacturacionAltaTypeEncadenamiento

If HuellaVerifactuAnterior = "" Then
    CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento.Item = New PrimerRegistroCadenaType
Else
    CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento.Item = New EncadenamientoFacturaAnteriorType
    CType(CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento.Item, EncadenamientoFacturaAnteriorType).IDEmisorFactura = RowVerifactu.Item("IdEmisorFacturaAnterior")
    CType(CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento.Item, EncadenamientoFacturaAnteriorType).NumSerieFactura = RowVerifactu.Item("NumSerieFacturaAnterior")
    CType(CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento.Item, EncadenamientoFacturaAnteriorType).FechaExpedicionFactura = Format(CDate(RowVerifactu.Item("FechaExpedicionFacturaAnterior")), "dd-MM-yyyy")
    CType(CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento.Item, EncadenamientoFacturaAnteriorType).Huella = RowVerifactu.Item("HuellaVerifactuAnterior")
End If

Espero que te sirva!

Ramon88 10-02-2025 19:03:00

Gracias!
Creo que ya lo tengo más o menos!
Me genera el XML pero me pone dos veces
Código:

<?xml version="1.0" encoding="utf-8"?>
<RegFactuSistemaFacturacion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
    <ObligadoEmision xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
      <NombreRazon>OPTIPLUS SOFTWARE S.L.</NombreRazon>
      <NIF>B44724680</NIF>
    </ObligadoEmision>
  </Cabecera>
  <RegistroFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
    <RegistroAlta xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
      <IDVersion>1.0</IDVersion>
      <IDFactura>

Este es parte de mi código:
Código:

        ' Crear el objeto que contiene la información de la factura (según el WSDL)
        Dim factura As New Verifactu.sf.RegFactuSistemaFacturacion

Luego asigno la cabecera con sus datos:
Código:

Dim Cabecera = New Verifactu.sf.CabeceraType
Código:

'Creamos la cabecera
        factura.Cabecera = Cabecera

el problema lo tengo al asignar la otra parte:
Código:

Dim regAlta = New Verifactu.sf.RegistroFacturacionAltaType
Código:

        Dim registro = New sf.RegistroFacturaType
        With registro
            .Item = regAlta
        End With

        Dim lista As New List(Of sf.RegistroFacturaType)
        lista.Add(registro)

        factura.RegistroFactura = lista.ToArray()

Cita:

Empezado por Jarogo08 (Mensaje 561873)
yo lo hago así:


Código:

CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Desglose(y).Item = New CalificacionOperacionType
CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Desglose(y).Item = CalificacionOperacionType.S1

en cuanto al encadenamiento:


Código:

CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento = New RegistroFacturacionAltaTypeEncadenamiento

If HuellaVerifactuAnterior = "" Then
    CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento.Item = New PrimerRegistroCadenaType
Else
    CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento.Item = New EncadenamientoFacturaAnteriorType
    CType(CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento.Item, EncadenamientoFacturaAnteriorType).IDEmisorFactura = RowVerifactu.Item("IdEmisorFacturaAnterior")
    CType(CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento.Item, EncadenamientoFacturaAnteriorType).NumSerieFactura = RowVerifactu.Item("NumSerieFacturaAnterior")
    CType(CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento.Item, EncadenamientoFacturaAnteriorType).FechaExpedicionFactura = Format(CDate(RowVerifactu.Item("FechaExpedicionFacturaAnterior")), "dd-MM-yyyy")
    CType(CType(objectoFactEmitida.RegistroFactura(x).Item, RegistroFacturacionAltaType).Encadenamiento.Item, EncadenamientoFacturaAnteriorType).Huella = RowVerifactu.Item("HuellaVerifactuAnterior")
End If

Espero que te sirva!


Ramon88 17-02-2025 19:12:27

Este es el XML que se me queda, cuando lo mando, la respuesta me devuelve un wsdl, no entiendo por que...
Código:

<?xml version="1.0" encoding="utf-8"?>
<RegFactuSistemaFacturacion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Cabecera xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
    <ObligadoEmision xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
      <NombreRazon>SOFTWARE SL</NombreRazon>
      <NIF>B22222222</NIF>
    </ObligadoEmision>
  </Cabecera>
  <RegistroFactura xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd">
    <RegistroAlta xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd">
      <IDVersion>1.0</IDVersion>
      <IDFactura>
        <IDEmisorFactura>B000000</IDEmisorFactura>
        <NumSerieFactura>12346579</NumSerieFactura>
        <FechaExpedicionFactura>01-01-2005</FechaExpedicionFactura>
      </IDFactura>
      <NombreRazonEmisor>Nombre Razón Emisor</NombreRazonEmisor>
      <TipoFactura>F2</TipoFactura>
      <DescripcionOperacion>Factura Simplificada Paciente</DescripcionOperacion>
      <Desglose>
        <DetalleDesglose>
          <CalificacionOperacion>S1</CalificacionOperacion>
          <TipoImpositivo>21</TipoImpositivo>
          <BaseImponibleOimporteNoSujeto>100</BaseImponibleOimporteNoSujeto>
          <CuotaRepercutida>21</CuotaRepercutida>
        </DetalleDesglose>
      </Desglose>
      <CuotaTotal>21</CuotaTotal>
      <ImporteTotal>100</ImporteTotal>
      <Encadenamiento>
        <PrimerRegistro>S</PrimerRegistro>
      </Encadenamiento>
      <SistemaInformatico>
        <NombreRazon>SOFTWARE S.L.</NombreRazon>
        <NombreSistemaInformatico>XXXX</NombreSistemaInformatico>
        <IdSistemaInformatico>01</IdSistemaInformatico>
        <Version>1.0</Version>
        <NumeroInstalacion>001</NumeroInstalacion>
        <TipoUsoPosibleSoloVerifactu>N</TipoUsoPosibleSoloVerifactu>
        <TipoUsoPosibleMultiOT>S</TipoUsoPosibleMultiOT>
        <IndicadorMultiplesOT>S</IndicadorMultiplesOT>
      </SistemaInformatico>
      <FechaHoraHusoGenRegistro>2025-02-12T13:29:10+01:00</FechaHoraHusoGenRegistro>
      <TipoHuella>01</TipoHuella>
      <Huella>0AA53561F084A6EE52576624ACCF006D1BFA14F502F2A2D77CF8D031D9A88D46</Huella>
    </RegistroAlta>
  </RegistroFactura>
</RegFactuSistemaFacturacion>


rdea 18-02-2025 17:45:07

Hola, si no me equivoco te falta el Soap envelope


La franja horaria es GMT +2. Ahora son las 17:41:12.

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