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 01-10-2018
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
Añadir Pdf De La Factura

Cita:
Empezado por newtron Ver Mensaje
Hola a tod@s.


Viendo que este asunto no prosperaba y que necesitaba resolverlo le encargué el proyecto a alguien que sabe más que nosotros y que domina varias herramientas de programación.


Había que resolver dos problemas, primero el de firmar el fichero XML en tiempo de ejecución, cosa que estaba complicada sin componentes externos porque desde Delphi no conocemos a nadie que haya sido capaz de hacerlo así que se ha desarrollado una dll en .NET que hace la función de firmado y que se llama desde el proyecto Delphi. Posteriormente había que hacer la llamada al webservice firmada con el protocolo X.509, cosa que tampoco sabíamos resolver y que tampoco ha sido fácil de desarrollar.


Resumiendo, aquí os adjunto un ejemplo operativo que hace las funciones más habituales de llamadas al webservice de FACE, firma y envía ficheros XML, consulta de facturas, consulta de unidades y alguna cosa más que no he probado porque en principio tampoco voy a necesitar. Por supuesto también se pueden usar sus funciones para solamente firmar un fichero XML para enviarlo por otros medios.



Está compilado en Delphi Berlín e imagino que funcionará igualmente en Tokyo, para que funcione en versiones anteriores posiblemente habría que hacer algunos retoques.



Aunque lo pongo en un LEEME.TXT lo único que hay que hacer es tener instalada y registrada la dll de CAPICOM (no incluida) y posteriormente ejecutar el fichero REGISTER.BAT para registrar la dll que se usa para la firma.


Link para la descarga.



Saludos y que aproveche.

Edito:

Se me olvidaba comentar dos temas:

1º Para poder enviar facturas a FACE hay que estar dado de alta como proveedor. Si quieres usar los wsdl de prueba hay que estar dado de alta por el entorno de pruebas y si quieres usar los de producción hay que darse de alta también en producción. Si no me equivoco, el entorno de pruebas es https://se-face.redsara.es/es/login

2º El programa que adjunto tiene los WSDL del entorno de pruebas, para pasar al de producción solo hay que cambiar en el objeto HTTPRIO el wsdl, puerto y servicio.
Gracias Newtron por el codigo. Trasteando con el he enviado sin problemas una factura a la webservice de pruebas, pero para poderla emplear necesitaria poder añadir el PDF correspondiente a la imagen fisica de la factura, mirando el WDSL he añadido el siguiente codigo al enviar la factura

Código Delphi [-]
  
  miarr:arrayofanexofile;
  miarr1:anexofile;

if ficheropdf<>'' then
  begin
    MIARR1:=anexofile.create;
    miarr1.mime:='application/pdf';
    MIARR1.nombre:=extractfilename(ficheropdf);
    MIARR1.anexo:=tfile.ReadAllText(ficheropdf);
    SetLength(miarr, Length(miarr)+1);
    miarr[0]:=miarr1;
    SenderEnviarFactura.anexos  := miarr;
  end;
pero al hacerlo recibo el error "Se encontró un carácter no valido en el contenido del texto", imagino que tengo que codificar de alguna manera el texto resultante de tfile.ReadAllText(ficheropdf); ¿alguien sabe cómo se haría?
Gracias
Responder Con Cita
  #2  
Antiguo 01-10-2018
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
Guille.


Me alegro de que te haya servido el código. Sobre el tema del problema que tienes la verdad es que no sabría decirte pero si te puedo comentar que tuvimos bastantes problemas con la codificación de los "strings" que se enviaban y al final funcionó codificando con UTF8Encode(...), no sé si los tiros en este caso irán por ahí.


Saludos

Edito: Si das con la solución compártelo por favor por si alguno lo necesitamos.
__________________
Be water my friend.

Última edición por newtron fecha: 01-10-2018 a las 18:30:05.
Responder Con Cita
  #3  
Antiguo 02-10-2018
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
Cita:
Empezado por newtron Ver Mensaje
Guille.


Me alegro de que te haya servido el código. Sobre el tema del problema que tienes la verdad es que no sabría decirte pero si te puedo comentar que tuvimos bastantes problemas con la codificación de los "strings" que se enviaban y al final funcionó codificando con UTF8Encode(...), no sé si los tiros en este caso irán por ahí.


Saludos

Edito: Si das con la solución compártelo por favor por si alguno lo necesitamos.
Ya me fije con los comentarios que habiais hecho muchas pruebas. Lo que comentas y varias cosas mas ya las habia probado y no se me ocurre que empaquetado es el que quieren, en fin haré mas pruebas a ver si me viene alguna idea.

Gracias y saludos
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
Facturas Electronicas Argentina Chaja Varios 3 10-07-2015 19:15:05
Agregar Adendas a Facturas electronicas mexico reypcs Varios 0 20-01-2011 16:26:10
Tabla de Facturas vs Detalles de Facturas magnu9 Conexión con bases de datos 9 27-07-2007 17:27:37
Comunicaciones electronicas EDI Toni Conexión con bases de datos 0 18-04-2006 13:06:34
Campos calculados, facturas y detalles de facturas. Letty Conexión con bases de datos 7 07-11-2003 11:19:44


La franja horaria es GMT +2. Ahora son las 15:04:02.


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