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 09-03-2017
Francisco1973 Francisco1973 is offline
Miembro
 
Registrado: abr 2008
Posts: 10
Poder: 0
Francisco1973 Va por buen camino
Suministro de cobros

Hola a todos, ¿ alguien ha conseguido enviar cobros ?. Yo lo hago a través del WSDL importer construyendo el objeto, en el XML que se genera obtengo:

-<Cobros xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
-<Cobro xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd">
<Fecha xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">01-01-2017</Fecha>
<Importe xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">20</Importe>
<Medio xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">01</Medio>
<Cuenta_O_Medio xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">ES00000000????</Cuenta_O_Medio>
</Cobro>
</Cobros>

En hacienda me dicen que los xsd que he marcado en rojo están intercambiados, o sea, en Cobros ha de ser SuministroLR.xsd y en Cobro SuministroInformacion.xsd. ¿ A alguien le ha pasado esto ?
Por otro lado, ¿ Sabeis como quitar las etiquetas xmlns de cada nodo e incluirlas solo en la etiqueta Envelope ?
Saludos,
Responder Con Cita
  #2  
Antiguo 09-03-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.035
Poder: 22
keys Va por buen camino
En los libros de cobros como los de pagos. El delphi no genera bien el fichero, falta un xmlns en uno de los nodos y la aeat genera un error. Para solucionarlo he tenido que cambiar el fichero XML por codigo para incluirlo. En concreto son el nodo <Cobro> y <Pago>.

en Cobro hay que poner esto.

<Cobro xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">

en pago hay que poner esto.

<Pago xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">

Los xmlns no se pueden ni se deben quitar ya que como no esten hacienda da error. En concreto en los cobros y pagos el error es que faltaba uno.

Se me olvidada. El nodo <cobros> y <pagos> no lleva xmlns

Igual es esto l oque te esta pasando.
Responder Con Cita
  #3  
Antiguo 09-03-2017
Francisco1973 Francisco1973 is offline
Miembro
 
Registrado: abr 2008
Posts: 10
Poder: 0
Francisco1973 Va por buen camino
Gracias por tu respuesta, es exactamente lo que me está pasando. ¿Y como lo cambias ? Tienes algún ejemplo?
Saludos
Responder Con Cita
  #4  
Antiguo 09-03-2017
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.035
Poder: 22
keys Va por buen camino
Lo que hago es en el objeto THTTPTRIO en el evento OnbeforeExecute capturar el xml y cambiarlo a mano.

Código Delphi [-]
    var
      ss:TFileStream;
      Fichero : TStringList;
      i : Integer;
     nficheroTemp : string;
   begin
     
     NficheroTemp := 'c:\tmp\LCFTemporal.Xml';
     if FileExists(NficheroTemp) then
         DeleteFile(NficheroTemp);

     ss := TFileStream.Create(NficheroTemp, fmCreate);
     SOAPRequest.Position := 0;
     ss.CopyFrom(SOAPRequest, SOAPRequest.size);
     ss.Free;
     SOAPRequest.Position := 0;

     Fichero := TStringList.Create;
     Fichero.LoadFromFile(NficheroTemp);
     for i := 0 to Fichero.Count - 1 do
       Fichero.Strings[i] := StringReplace(Fichero.Strings[i],'','', [rfReplaceAll]);
     Fichero.SaveToFile(NficheroTemp);

     SOAPRequest.Size:=0;
     ss:=TFileStream.Create(NficheroTemp, fmOpenRead);
     SOAPRequest.Position := 0;
     SOAPRequest.CopyFrom( ss, ss.Size);
     ss.Free;

     SOAPRequest.Position := 0;

Perdona el texto no sale bien en el codigo. es así

Fichero.Strings[i] := StringReplace(Fichero.Strings[i],'<Cobro>','<Cobro xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">', [rfReplaceAll]);

Por cierto esto tambien te sirve para guardar el xml en una carpeta y poder ver lo que estás enviando.
Responder Con Cita
  #5  
Antiguo 09-03-2017
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 249
Poder: 18
Nasca Va por buen camino
Yo sigo pensando, y haciendo, que es mejor olvidarse de los objetos y montar los xml a mano.
No es prácticamente código y terminas obviando todos esos detalles tontos.
El control sobre el resultado es completo.

Idem con las respuestas.

Y de carambola no generas dependencias de librerías externas al programa.
Responder Con Cita
  #6  
Antiguo 09-03-2017
CMB CMB is offline
Miembro
 
Registrado: ene 2017
Posts: 349
Poder: 8
CMB Va por buen camino
Construir un XML y olvidarse de las clases

Cita:
Empezado por Nasca Ver Mensaje
Yo sigo pensando, y haciendo, que es mejor olvidarse de los objetos y montar los xml a mano.
No es prácticamente código y terminas obviando todos esos detalles tontos.
El control sobre el resultado es completo.
Idem con las respuestas.
Y de carambola no generas dependencias de librerías externas al programa.
Yo lo estoy haciendo así y me encuentro muy cómodo. Construir un XML con los namespaces que correspondan y los contenidos correctos es la mar de fácil. Un rato, con un poco de paciencia, y ya queda para siempre. Y si algún día hay que tocar algo, pues son unos minutos.

No soy un gran experto en Delphi aunque me defiendo bastante bien, pero no comprendo el interés que hay con tantos líos de clases y dependencias. Llevas toda la razón, El control sobre el resultado es completo. Y el envío a la AEAT me funciona a la perfección tanto con facturas emitidas como recibidas. Por lo menos de momento
Responder Con Cita
  #7  
Antiguo 09-03-2017
Francisco1973 Francisco1973 is offline
Miembro
 
Registrado: abr 2008
Posts: 10
Poder: 0
Francisco1973 Va por buen camino
Gracias Keys, funciona perfectamente !!
Responder Con Cita
  #8  
Antiguo 09-03-2017
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.473
Poder: 21
newtron Va camino a la fama
Hola de nuevo.

¿Alguien ha resuelto las facturas de venta por alquileres de locales comerciales? No soy capaz de crear los objetos.

Me da error en esta línea:

Código Delphi [-]
          ARegistroLRFacturasEmitidas[N].FacturaExpedida.DatosInmueble:=DatosInmueble2.create;

Gracias y un saludo
__________________
Be water my friend.
Responder Con Cita
  #9  
Antiguo 09-03-2017
Francisco1973 Francisco1973 is offline
Miembro
 
Registrado: abr 2008
Posts: 10
Poder: 0
Francisco1973 Va por buen camino
Te pongo un ejemplo:
SetLength(ADatosInmueble, Inmuebles.RowsFetched);
Inmuebles.First;
for L := 0 to Inmuebles.RowsFetched - 1 do
Begin
ADatosInmueble[L]:=DetalleInmueble.Create;
ADatosInmueble[L].SituacionInmueble:=SituacionInmuebleType(InmueblesSITUACION.Value - 1);
ADatosInmueble[L].ReferenciaCatastral:=InmueblesREFCATASTRAL.Value;
Inmuebles.Next;
End;

ARegLRFacturasEmitidas[i].FacturaExpedida.DatosInmueble:=ADatosInmueble;
Responder Con Cita
  #10  
Antiguo 25-07-2017
PepCat PepCat is offline
Miembro
 
Registrado: mar 2017
Posts: 96
Poder: 8
PepCat Va por buen camino
Muchisimas Gracias a "Keys" por el aviso y la solución!



Cita:
Empezado por keys Ver Mensaje
En los libros de cobros como los de pagos. El delphi no genera bien el fichero, falta un xmlns en uno de los nodos y la aeat genera un error. Para solucionarlo he tenido que cambiar el fichero XML por codigo para incluirlo. En concreto son el nodo <Cobro> y <Pago>.

en Cobro hay que poner esto.

<Cobro xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">

en pago hay que poner esto.

<Pago xmlns="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">

Los xmlns no se pueden ni se deben quitar ya que como no esten hacienda da error. En concreto en los cobros y pagos el error es que faltaba uno.

Se me olvidada. El nodo <cobros> y <pagos> no lleva xmlns

Igual es esto l oque te esta pasando.
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
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco keys Internet 4170 Hace 2 Semanas 17:29:05
AEAT envio de datos vía Webservice problemas con WSDL CelsoO Internet 11 09-10-2019 20:03:41
webService Soap de la Administración Digital Española notific@ apicito Internet 3 31-01-2017 11:25:28
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 20:10:29
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 15:49:20


La franja horaria es GMT +2. Ahora son las 00:36:27.


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