FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
a esta hora y reimportando los wdsl y tal... ya puedo enviar facturas emitidas, recibidas, y consultar.
sigue dando el error: Se requiere un certificado para completar la autenticación de cliente - URL:https://www7.aeat.es/wlpl/SSII-FACT/...iiFactFEV1SOAP - SOAPAction:"" si pasas un monton. No pasa ni una del paquete. (confirmado porque luego consulto). una pregunta tonta... en el numero de factura pone "numeroserie" si tienes serie en tus facturas entiendo que debería ser 9999999X ¿no? |
#2
|
||||
|
||||
Cita:
Cita:
Saludos
__________________
Be water my friend. |
#3
|
||||
|
||||
Cita:
Una Pregunta. A la hora de añadir los wsdl al proyecto los habeis añadido todos desde la misma carpeta? o habéis añadido cada uno desde una carpeta distinta? es decir las de emitidas por un lado, las recibidas por otro, etc... A mi tambien me da error si envío muchas facturas. Un Saludo. |
#4
|
|||
|
|||
He reimportado los wsdl y ahora me dice:
ex.Message = "Debe establecer la propiedad Path para llamar al método Send." He importado los servicios web de los 7 suministros que hay (SuministroBienesInversion, SuministroCobrosEmitidas, SuministroCobrosMetalico, SuministroFactEmitidas, SuministroFactRecibidas, SuministroOpIntracomunitarias, SuministroPagosRecibidas). Pero esta propiedad Path es la primera vez que la veo, a alguno le ha salido este mensaje de error al intentar enviar? Un saludo. Me autorespondo, me faltaba reeditar las referencias de los SiiService de cada suministro. |
#5
|
|||
|
|||
Facturas emitidas consigo enviarlas correctamente, para el resto me devuelve SIEMPRE este error:
Error en comunicación: Codigo[4124].Error La direccion no se corresponde con el fichero de entrada. Antes de la versión 0.5 conseguía enviar todos los tipos salvo Facturas Recibidas, pero ahora sólo puedo enviar facturas emitidas. Ese error se lo da a alguien más? No he encontrado mucha información sobre ese error en la red, por lo que no puedo deciros muchos más. |
#6
|
|||
|
|||
Cita:
|
#7
|
|||
|
|||
Este es mi código para consultar facturas emitidas, colocando sus resultados en una base de datos.
Código:
// memoErrores.lines.Clear; if dbRespuesta.active then dbRespuesta.Active:=false; dbRespuesta.FieldDefs.Clear; dbRespuesta.FieldDefs.Add('numero',ftstring,30,false); dbRespuesta.FieldDefs.Add('fecha',ftDate,0,false); dbRespuesta.FieldDefs.Add('cliente',ftstring,100,false); dbRespuesta.FieldDefs.Add('nif',ftstring,50,false); dbRespuesta.FieldDefs.Add('tipo',ftstring,5,false); dbRespuesta.FieldDefs.Add('exenta',ftstring,5,false); dbRespuesta.FieldDefs.Add('tipostr',ftstring,50,false); dbRespuesta.FieldDefs.Add('regimen',ftstring,5,false); dbRespuesta.FieldDefs.Add('operacion',ftstring,200,false); dbRespuesta.FieldDefs.Add('terceros',ftstring,5,false); dbRespuesta.FieldDefs.Add('total',ftfloat,0,false); dbRespuesta.FieldDefs.Add('cobros',ftstring,5,false); dbRespuesta.FieldDefs.Add('noexenta',ftstring,5,false); dbRespuesta.FieldDefs.Add('estado',ftstring,100,false); dbRespuesta.FieldDefs.Add('descripcio',ftstring,300,false); for h := 0 to 6 do begin dbRespuesta.FieldDefs.Add('iva'+inttostr(h),ftFloat,0,false); dbRespuesta.FieldDefs.Add('impiva'+inttostr(h),ftFloat,0,false); dbRespuesta.FieldDefs.Add('baseimp'+inttostr(h),ftFloat,0,false); end; dbRespuesta.CreateTable; dbRespuesta.Active:=true; //***CSY CERTIFICADO := BUSCAR_CERTIFICADO(comboBox1.text); //<----- SELECCIONAR CERTIFICADO if(CERTIFICADO = nil) then begin ShowMessage('No encuento el certificado'); Exit(); end; emitidas.HTTPWebNode.ClientCertificate.SerialNum := Buscar_Certificado_SERIAL(comboBox1.text); //**** try ///////////////////////////////////////////////////////////////////////////// //// PRESENTADOR OSEA -> NOSOTROS ////////////////////////////////////// // se crea el objeto que se va a enviar: ///////////////////////////////////////////////////////////////////////////// aConsultaLRFacturasEmitidas := ConsultaLRFacturasEmitidas.Create; aConsultaLRFacturasEmitidas.Cabecera:=CabeceraConsultaSii.Create; // DATOS: aConsultaLRFacturasEmitidas.Cabecera.IDVersionSii:=VersionSiiType(0); // 0.1 aConsultaLRFacturasEmitidas.Cabecera.titular := PersonaFisicaJuridicaUnicaESType.Create; aConsultaLRFacturasEmitidas.Cabecera.Titular.NombreRazon:=_PRESENTADOR; // NOMBRE DEL PRESENTADOR (CUALQUIERA VALE) aConsultaLRFacturasEmitidas.Cabecera.Titular.NIF:=_NIF_EMISOR; // CIF del PRESENTADOR (DEBE COINCIDIR CON EL CERTIFICADO SELECCIONADO) aConsultaLRFacturasEmitidas.FiltroConsulta:=LRFiltroEmitidasType.Create; aConsultaLRFacturasEmitidas.FiltroConsulta.PeriodoImpositivo:=PeriodoImpositivo.Create; aConsultaLRFacturasEmitidas.FiltroConsulta.PeriodoImpositivo.Ejercicio:=edit2.text; aConsultaLRFacturasEmitidas.FiltroConsulta.PeriodoImpositivo.Periodo:=TipoPeriodoType( comboBox2.itemIndex ); try // se hace la llamada a la funcion suministrada por el WS result := GetsiiSOAP(true,'',emitidas).ConsultaLRFacturasEmitidas(aConsultaLRFacturasEmitidas); memoComs.Lines.Add( getEnumName(typeInfo(ResultadoConsultaType), ord(result.resultadoConsulta) ) ); //mostrar los resultados devueltos por la llamada for i := low(result.RegistroRespuestaConsultaLRFacturasEmitidas) to High(result.RegistroRespuestaConsultaLRFacturasEmitidas) do begin _noexenta:=''; _numero:=''; _fechaStr:=''; _tipo:=''; _tipoStr:=''; _regimen:=''; _operacion:=''; _exenta:=''; _terceros:=''; _cliente:=''; _nif:=''; _tipodesglose:=''; _cobros:=''; _estado:=''; _estadoFactura:=''; _ImporteTotal:=0; _descripcion:=''; with result.RegistroRespuestaConsultaLRFacturasEmitidas[i] do begin try if result.RegistroRespuestaConsultaLRFacturasEmitidas[i].datosfacturaemitida.tipodesglose.desglosetipooperacion<>nil then _exenta:=GetEnumName( TypeInfo(CausaExencionType),ord(DatosFacturaEmitida.TipoDesglose.DesgloseTipoOperacion.Entrega.Sujeta.exenta.CausaExencion)); except end; _tipo:=GetEnumName(TypeInfo(clavetipoFacturaType), Ord(DatosFacturaEmitida.TipoFactura)); _tipoSTR:=tipoSTR( DatosFacturaEmitida.TipoFactura ); _regimen:=GetEnumName( TypeInfo(IdOperacionesTrascendenciaTributariaType), Ord(DatosFacturaEmitida.ClaveRegimenEspecialOTrascendencia) ); _ImporteTotal:=strToFloat( SII_Numero( DatosFacturaEmitida.ImporteTotal ) ); _operacion:=DatosFacturaEmitida.DescripcionOperacion; _terceros:=GetEnumName(typeInfo( EmitidaPorTercerosType ), ord( DatosFacturaEmitida.EmitidaPorTerceros ) ); _numero:=IDFactura.NumSerieFacturaEmisor; try if DatosFacturaEmitida.contraparte<>nil then // POR SI NO LLEVA CONTRAPARTE: begin _cliente:=DatosFacturaEmitida.contraparte.NombreRazon; _NIF:=DatosFacturaEmitida.contraparte.NIF; if DatosFacturaEmitida.TipoDesglose.DesgloseFactura<>nil then begin _tipodesglose:=GetEnumName( typeInfo(TipoOperacionSujetaNoExentaType), ord(DatosFacturaEmitida.TipoDesglose.DesgloseFactura.Sujeta.NoExenta.TipoNoExenta) ); _noexenta:=getEnumName(typeInfo( TipoOperacionSujetaNoExentaType ) , ord(DatosFacturaEmitida.TipoDesglose.DesgloseFactura.Sujeta.NoExenta.TipoNoExenta ) ); end; if DatosFacturaEmitida.contraparte.IDOtro<>nil then begin if _NIF='' then _NIF:=DatosFacturaEmitida.contraparte.IDOtro.ID; end; end else // POSIBLE ERROR: BEGIN _cliente:='SIN CLIENTE'; MemoComs.lines.add('factura: ' + IDFactura.NumSerieFacturaEmisor + ' SIN CLIENTE'); end; if DatosFacturaEmitida.TipoDesglose.DesgloseFactura<>NIL then begin for h := low(DatosFacturaEmitida.TipoDesglose.DesgloseFactura.Sujeta.NoExenta.DesgloseIVA) to high( DatosFacturaEmitida.TipoDesglose.DesgloseFactura.Sujeta.NoExenta.DesgloseIVA) do begin with DatosFacturaEmitida.TipoDesglose.DesgloseFactura.Sujeta.NoExenta.DesgloseIVA[h] do begin base[h]:= strTofloat( SII_numero( baseImponible ) ); tipo[h]:=strTofloat(SII_numero( tipoImpositivo ) ); cuota[h]:=strTofloat(SII_numero( cuotarepercutida ) ); end; end; end; _cobros:=getEnumName( typeInfo(FacturaARType), ord(DatosFacturaEmitida.Cobros) ); _fechaStr:=copy(IDFactura.FechaExpedicionFacturaEmisor,1,10); _fechaStr:=stringReplace(_fechaStr,'-','/',[rfReplaceAll]); _fecha:=strTodate( _fechaStr ); _estado:=estadoFactura.EstadoRegistro; _descripcion:=DatosFacturaEmitida.DescripcionOperacion; MemoComs.lines.add('factura: ' + IDFactura.NumSerieFacturaEmisor + ' ' + IDFactura.NumSerieFacturaEmisorResumenFin + ' ' + IDFactura.FechaExpedicionFacturaEmisor); // guardar en la base de datos: dbRespuesta.Insert; dbRespuesta.fieldbyName('numero').Text:=_numero; dbRespuesta.fieldbyName('fecha').asdatetime:=_fecha; dbRespuesta.fieldbyName('cliente').Text:=_cliente; dbRespuesta.fieldbyName('nif').Text:=_nif; dbRespuesta.fieldbyName('tipo').Text:=_tipo; dbRespuesta.fieldbyName('tipostr').Text:=_tipostr; dbRespuesta.fieldbyName('exenta').Text:=_exenta; dbRespuesta.fieldbyName('regimen').Text:=_regimen; dbRespuesta.fieldbyName('operacion').Text:=_operacion; dbRespuesta.fieldbyName('terceros').Text:=_terceros; dbRespuesta.fieldbyName('total').asfloat:=_ImporteTotal; dbRespuesta.fieldbyName('cobros').text:=_cobros; dbRespuesta.fieldbyName('fecha').asdatetime:=_fecha; dbRespuesta.fieldbyName('estado').text:=_estado; dbRespuesta.fieldbyName('descripcio').text:=_descripcion; dbRespuesta.fieldbyName('Noexenta').text:=_noexenta; if DatosFacturaEmitida.TipoDesglose.DesgloseFactura<>NIL then begin for h := low(DatosFacturaEmitida.TipoDesglose.DesgloseFactura.Sujeta.NoExenta.DesgloseIVA) to high( DatosFacturaEmitida.TipoDesglose.DesgloseFactura.Sujeta.NoExenta.DesgloseIVA) do begin dbRespuesta.fieldbyName('iva'+inttostr(h)).asfloat:=tipo[h]; dbRespuesta.fieldbyName('impiva'+inttostr(h)).asfloat:=cuota[h]; dbRespuesta.fieldbyName('baseimp'+inttostr(h)).asfloat:=base[h]; end; end; dbRespuesta.Post; except On E:Exception do begin MemoErrores.lines.Add(_numero); MemoErrores.lines.Add(E.Message); MemoErrores.lines.Add('--------------------'); end; end; end; end; except On E:Exception do //El proceso de envio dio error MemoErrores.lines.Add(E.Message); end; finally // se eliminan los objetos creados aConsultaLRFacturasEmitidas.Free; result.Free; dbRespuesta.Active:=true; end; end; * Facturas recibidas intracomunitarias y autofactura.... * Factura a Canarias? Aunque lo estoy mirando ahora, ¿Por favor, podeis postear algún ejemplo? ... Saludos ! |
#8
|
|||
|
|||
Esta claro que hay facturas rectificativas por diferencias. Aunque no lo veo muy claro.
Pero ... ¿y los abonos? ¿Cómo se gestionan? Saludos ! |
|
|
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 |
|