![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
|
|
#2
|
|||
|
|||
|
Me respondo a mi mismo por si le sirve a alguien.
Es un tipo enumerado y hay funciones específicas. Seguro que hay alguna forma mas simple, pero esta me funciona. De esta forma si cambia la lista en versiones futuras, seguirá funcionando. uses ..., typinfo ; var idpais,ci:integer; codigopais:string; begin CodigoPais:='IT'; idpais:=-1; for ci := ord(Low(countrytype2)) to ord(High(countrytype2)) do if CodigoPais= GetEnumName(TypeInfo(countrytype2),ci) then begin idpais:=ci; ShowMessage( GetEnumName(TypeInfo(countrytype2),ci)); // solo para comprobar valor. end; ... if idPais>-1 then ARegLRFacturasEmitidas[0].FacturaExpedida.Contraparte.IDOtro.CodigoPais:=CountryType2(idpais); ... |
|
#3
|
||||
|
||||
|
Voy comentando, la descripcion se puede programar en plan factura tal de tal en fecha tal
|
|
#4
|
||||
|
||||
|
El retraso se multa con 0.5 del importe min 300 max 6000
|
|
#5
|
|||
|
|||
|
Me respondo a mi mismo por si le sirve al alguien.
|
|
#6
|
|||
|
|||
|
Cita:
Hay una manera muy sencilla y directa de asignarle el código de país sin tener que hacer conversiones de código ni nada de eso. Sería de la siguiente manera:
Y esto mismo sirve para cualquier otro campo. El GetEnumValue nos devuelve el valor del tipo que queramos. |
|
#7
|
|||
|
|||
|
WebService
Cita:
No sé si te han respondido. Yo trabajo con .NET, pero supongo que en Java sería igual o parecido, aunque aquí dependerá del IDE que utilices. Tendrás que crearte una referencia Web al WSDL correspondiente (en este caso al de facturas emitidas) de la AEAT. Por ejemplo en Eclipse: Adding a Web Reference in Eclipse To develop Java programs that consume Location Intelligence Module web services in Eclipse, you first create a reference to the web service in your Java project. When the reference is created, the client-side stub code required to use the web service is generated. Start Eclipse. On the File menu, select New > Project. The New Project wizard opens. In the New Project wizard, select Java > Java Project. Click Next. In the Project Name field, enter the name you want to give your project. Click Finish to close the wizard. The new project folder appears in the Package Explorer. In the Package Explorer, right-click on the project folder you created in the previous step. On the pop-up menu, select New > Other. The New wizard opens. In the New wizard, select Web Services > Web Service Client. Click Next. In the Service Definition field, enter the URL to the web service's WSDL document. Select Develop Client on the slider bar. Click Finish to close the wizard. The stub code for the web service is generated in the project folder. Esto te generará una clase proxy con los métodos disponibles del servicio Web. En el método de altas de facturas emitidas, le pones tu objeto SuministroLRFacturasEmitidas y recibes la respuesta. |
|
#8
|
|||
|
|||
|
SIIHacienda
Cita:
Yo lo he hecho a base de XElements (Estructura XML) y Strings. Te digo más o menos como lo he hecho (Que supongo que no será la forma más óptima pero es como se me ha ocurrido) Para poner los prefijos de Sii, SiiLR y demás he usado esto: public static XNamespace NAMESPACE = @"*/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd"; Para crear los nodos XElement con sus prefijos: XElement root = new XElement(NAMESPACE + "SuministroLRFacturasEmitidas"); Para poner la cabecera yo he usado esto: XElement Envelope = new XElement(soapenv + "Envelope", new XAttribute(XNamespace.Xmlns + "soapenv", @"*schemas.xmlsoap.org/soap/envelope/"), new XAttribute(XNamespace.Xmlns + "siiLR", @"*/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd"), new XAttribute(XNamespace.Xmlns + "sii", @"*/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd")); XElement Header = new XElement(soapenv + "Header"); Envelope.Add(Header); String file = Utilidades.CreateXMLFile(Envelope, i, "Alta Facturas Emitidas"); Mi Utilidades.CreateXMLFile: XmlTextWriter writer = new XmlTextWriter(archivoPath, Encoding.UTF8); //Con esto de aquí le pones la primera línea esa "<?xml version="1.0" encoding="UTF-8"?>" writer.WriteStartDocument(); writer.Formatting = Formatting.Indented; xml.WriteTo(writer); writer.Flush(); writer.Close(); Espero haberte ayudado. P.D. donde pongo * me refiero a una enlace (No me deja copiarlos tal cual) xD |
|
#9
|
|||
|
|||
|
Cita:
Si, muchas gracias,me ha sido util tu codigo. Yo tenia ya algo parecido hecho con XmlWriter. De todas formas , me faltaria saber que contiene la variable soapenv, que tu pones en varias partes del codigo, p.e. Código:
XElement Header = new XElement(soapenv + "Header"); Código:
resul = proxy.SuministroLRFacturasEmitidas(AsuminstroFacturasEmitidas) |
|
#10
|
|||
|
|||
|
Cita:
resul = proxy.SuministroLRFacturasEmitidas(AsuminstroFacturasEmitidas) pero al serializar me da errores. Gracias |
|
#11
|
|||
|
|||
|
Cita:
Hola angelhorse, Estoy siguiendo un metodo parecido al tuyo, es decir lo hago en VB.Net, pero generando el archivo xml de forma manual (es decir son uso objetos generados al importa la referencia al servicio web). Bueno el tema es que creo tener todo bien pero estoy en un atasco del que no puedo salir y ando ya desesperado, creo que tu me puedes echar un cable. Tengo el archivo xml correcto y bien formado y con datos reales Tengo un certificado (en archivo .pfx) correcto y verificado (he hecho envios de otra forma y funciona) Al final la empresa ha decidido hacerlo todo sin usar los objetos generados al importar la referencia al servicio web, es decir que no tengo un objeto de tipo SuministroLRFacturasEmitidas con el que hacer las usuales lineas: Código:
Dim resul As RespuestaLRFEmitidasType
resul = proxy.SuministroLRFacturasEmitidas(testC)
Código:
Dim req As System.Net.HttpWebRequest
Dim url As String = "*://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
'inicializar propiedades request--------------------------------
req = HttpWebRequest.Create(url)
req.Headers.Add("SOAP:Action")
req.ContentType = "text/xml;charset=""utf-8"""
req.Accept = "text/xml"
req.Method = "POST"
Dim soapEnvelopeXml As XmlDocument = New XmlDocument()
'cargar xml desde archivo
Dim filename As String = "h:\facturaEmitidaMODEL1_1_1.xml"
soapEnvelopeXml.Load(filename)
'certificado---------------------------------------------------
Dim cert As System.Security.Cryptography.X509Certificates.X509Certificate2
Dim sRutaCert As String = "H:\Certificado.pfx"
Dim sClaveCert As String = "xy123"
cert = New System.Security.Cryptography.X509Certificates.X509Certificate2(sRutaCert, sClaveCert)
req.ClientCertificates.Add(cert)
'recoger respuesta 1-----------------------------------------
Dim resp As WebResponse = req.GetResponse()
Dim reader As StreamReader = New StreamReader(resp.GetResponseStream())
Dim soapResult As String = reader.ReadToEnd()
Código:
<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="*://schemas.xmlsoap.org/soap/envelope/"><env:Body><env:Fault><faultcode>env:Client</faultcode><faultstring>Codigo[1304].Fin prematuro del archivo. (-1,-1)</faultstring><detail><callstack>XML no válido o mal formado ¿Qué codigo usas tu para enviarlo? Muchas gracias por tu ayuda Saludos P.D. donde pongo * me refiero a una enlace (No me deja copiarlos tal cual) xD[/quote] |
|
#12
|
|||
|
|||
|
Cita:
Saludos, Última edición por CMB fecha: 12-03-2017 a las 22:56:19. Razón: Error ortográfico |
|
#13
|
|||
|
|||
|
Error controlado
Buenos días.
Gracias por toda la información que habéis ido poniendo. Me ha sido de gran utilidad. A ver si me podéis echar una mano o le ha ocurrido a alguien. El caso es que hago la llamada al método para dar de alta facturas emitidas y la AEAT me devuelve el siguiente error: Codigo[4114].El titular del certificado debe ser el Titular del libro de Registro, Colaborador Social o Apoderado Me he puesto en contacto con ellos, pero no me contestan. El caso es que hace poco pusieron un enlace para comprobar la identificación fiscal (por Web y por Servicio Web) y me deja pasar con el certificado. Alguna idea? Muchas gracias. |
|
#14
|
|||
|
|||
|
Las pruebas de envío tienen que hacerse con un certificado que corresponda al titular del envío.
Usa tu propio certificado, pero tendrás que poner como titular tu nombre y NIF. Como es para pruebas, no tiene mayor relevancia. Pero lo que no podrás es presentar registros de otro titular diferente, salvo que tengas certificado de colaborador social (asesorías) o seas apoderado. Lo que no creo que sea tu caso, igual que del resto que andamos por aquí. Última edición por Nasca fecha: 13-03-2017 a las 09:15:46. |
|
#15
|
|||
|
|||
|
Cita:
El certificado debe ser el del mismo Cif que el que envias las facturas. Como lo estas haciendo de pruebas en el cif del emisor pon el mismo que el del certificado y te funcionará. Saludos |
|
#16
|
|||
|
|||
|
Cita:
Si meto el CIF (he ocultado el válido) en el campo NIF: _SuministroLRFacturasEmitidas.Cabecera.Titular.NombreRazon = "EMPRESA" _SuministroLRFacturasEmitidas.Cabecera.Titular.NIF = "AXXXXXXXX" _SuministroLRFacturasEmitidas.RegistroLRFacturasEmitidas(0).IDFactura.IDEmisorFactura.NIF = "AXXXXXXXX" Me dice "Valor o tipo incorrecto del campo NIF". ¿Es ahí dónde te refieres? Gracias. |
|
#17
|
|||
|
|||
|
Hola CMB
Gracias por la respuesta. Uso 3 archivos diferentes, pues no se cual puede ser el bueno para hacienda. Los 3 archivos los he validado en Firefox, en Chrome y en http://W**.freeformatter.com/xml-validator-xsd.html y son correctos, pero me sale siempre el mismo error, ahora es: Cita:
Te adjunto los 3 archivos, para que por lo menos me digas cual es el que tu usarias Y si alguien lo ha hecho de la misma forma que yo o sabe algo sobre este tipo de error, cualquier ayuda sera bienvenida, por que estoy al limite de todo (tiempo y energia) Muchas gracias |
|
#18
|
|||
|
|||
|
Cita:
Saludos, |
|
#19
|
|||
|
|||
|
Facturas emitidas en C#
Hola,
Varios me lo habéis pedido por privado, lo pongo aqui a disposición de todos, son las clases necesarias para subir facturas emitidas. Como pasáis el NIF del emisor en facturas Recibidas?????, a mi solo me aparece una propiedad Item me falta una que sea NIF, en emitidas aparece. LA clase que me genera del WS contiene: Cita:
|
|
#20
|
|||
|
|||
|
Cita:
Buenas tardes, He estado utilizando el código que has puesto, porque me parece la mejor solución, utilizando un XML que me he generado yo, también me da error al hacer el envío. Lo que no me queda claro de este código, es en que instrucción se le dice al objeto req, que utilice el soapEnvolveXML como documento de envío. Un saludo y muchas gracias. |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco | keys | Internet | 4524 | Hace 3 Días 16:17:40 |
| 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 |
|