![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Hola, visto q ahora hay gente interesada voy a retomar el tema a ver si entre todos lo sacamos. Os voy informando...
|
#2
|
||||
|
||||
Programa de ejemplo
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.
__________________
Be water my friend. Última edición por newtron fecha: 02-06-2018 a las 10:07:21. |
#3
|
|||
|
|||
Me alegro de que por fin exista una alternativa que no necesite los componentes de SecureBlackBox, que por cierto, han subido de precio desorbitadamente desde que /n software compró Eldos.
Llevo tiempo trabajando con la factura electrónica de varios países (España, México, Costa Rica, Chile, Guatemala...) y estoy intentando crear una aplicación/módulo lo más sencilla y automática posible para que nuestro software de facturación sea compatible con todas ellas, pero me surge una duda. Actualmente, para España, nuestro software necesita que el usuario (vendedor/emisor) indique manualmente si el destinatario (comprador/receptor) es persona Física o Jurídica, ya que el proceso es diferente (xml o xsig, con envío o sin envío, etc.). ¿No hay forma de saber eso a partir del NIF/CIF del Destinatario de la factura (dato que obviamente ya conocemos) con el fin de automatizarlo más y que no requiera intervención del usuario? En otros países no es necesario especificarlo (no hay diferencia, ya que la factura se envía a Hacienda siempre), pero tengo entendido que en España solo es obligatorio para las Administraciones Públicas. ¿No hay forma entonces de saber, a partir del NIF/CIF del destinatario, si es una Admón. Pública o no, para en su caso, hacer automáticamente el proceso completo (xsig + enviar). ¿O es que estoy confundido del todo? |
#4
|
||||
|
||||
Cita:
Bueno, yo la verdad es que hasta ahora solo la estoy usando para la administración pública así que no se me ha dado ese problema. Pero bueno, siempre puedes pedir los datos que necesites en la ficha del cliente, ¿no? Saludos
__________________
Be water my friend. |
#5
|
|||
|
|||
Cita:
Saludos |
#6
|
|||
|
|||
Cierto, eso serviría para diferenciar entre persona física y jurídica, pero no para las Administraciones Públicas (que requiere xsig + envío a face).
¿Cómo saber si el destinatario de la factura es una Admón. Pública y, a partir del CIF, obtener el Órgano Gestor, Unidad Tramitadora y Oficina Contable? El WSDL tiene varias funciones para obtener las Administraciones y sus órganos, y otra función para obtener todos los NIFs existentes en el directorio DIR3 de administraciones adheridas, PERO ninguna de esas funciones devuelve todos los datos necesarios (Dirección, Población, Provincia, País, etc.) de cada unidad, porque creo que son obligatorios. Eso me obliga a tener que crear una base de datos enorme que el cliente tendrá que rellenar, o bien solicitar esos datos para introducción manual cada vez que el usuario envíe una factura a una Administración. Lo veo demasiado tedioso, aunque funcione y las facturas a administraciones públicas sean "pocas", pero hoy en día creo que esto se puede automatizar muchísimo más. |
#7
|
|||
|
|||
Añadir Pdf De La Factura
Cita:
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 |
#8
|
||||
|
||||
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. |
#9
|
|||
|
|||
Cita:
Gracias y saludos |
#10
|
||||
|
||||
Y una vez que Embarcadero o algún programador lo consiga con código 100% en Delphi, será la noticia de la década.
|
#11
|
|||
|
|||
A falta de hacer una prueba real este es el codigo correcto para añadir un pdf de imagen de la factura. |
#12
|
||||
|
||||
Cita:
![]() ![]() Saludos
__________________
Be water my friend. |
#13
|
|||
|
|||
Consulta estado facturas
Buenos días,
Tengo que realizar un programa que consulte el estado de las facturas pero sin certificado. En la web de FACE he visto que rellenando unos campos se permite realizar la consulta de facturas. Entiendo que podría usar el programa que habéis aportado para realizar estas consultas, verdad? Muchas gracias! |
#14
|
||||
|
||||
Cita:
Dudo que puedas consultar las facturas sin tener que introducir el certificado.
__________________
Be water my friend. |
#15
|
|||
|
|||
Cita:
Estoy intentando poner en marcha el intercambio de información con la sede electrónica de Facturae utilizando D2007 y poco a poco, partiendo del ejemplo que compartió en su momento newtron (muchas gracias por hacerlo) voy consiguiendo hacer casi "todo". Actualmente, si las peticiones las hago utilizando los certificados instalados en el sistema, la petición se envía y la respuesta se recibe. Sin embargo, si la petición la intento hacer utilizando un certificado que está en fichero del disco duro, la petición no se llega a lanzar ya que me salta el siguiente error: 'wsu' es un espacio de nombres sin declarar. Línea 2, posición 327. Si la contraseña que pongo no es la correcta, me salta el mensaje de que no es correcta, con lo cual el chequeo de la contraseña lo hace correctamente, pero cuando luego "entiendo" que intenta montar el Xml, algún problema problema hay. Entonces me he conseguido montar en entorno de pruebas con una versión de delphi más moderna para probar el ejemplo tal cual se publicó en su momento, y me he encontrado que presenta el mismo problema. Al firmar con el certificado del sistema lo hace correctamente, pero si se intenta firmar con el certificado en fichero, sale el mismo mensaje de error. A ver si alquilen me puede "iluminar". Gracias y un saludo. |
#16
|
|||
|
|||
Verifactu y facturae
Verifactu y facturae son dos cosas diferentes? Tienen alguna relación?
Perdón por mi desconocimiento. Pero con tantas novedades me pierdo |
#17
|
|||
|
|||
Cita:
La factura electronica es el intercambio de facturas entre un proveedor y un cliente, también esttructurada. Relación habrá si un cliente te pide una factura electrónica, seguramente hebras que ponerle el código generado con verifactu en algún campo de la factura electrónica. |
#19
|
||||
|
||||
Gracias.
Me hace gracia lo siguiente : Cita:
|
#20
|
|||
|
|||
Cita:
|
![]() |
|
|
![]() |
||||
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 |
![]() |
|