Skip to content

Delphi: Creación de ficheros normas 19.14 y 34.14 (básico, XML)

License

Notifications You must be signed in to change notification settings

cocosistemas/Delphi-SEPA-XML-ES

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Delphi: Creación de ficheros normas 19.14 y 34.14 SEPA formato XML

Actualización 2024: Compilado sin problemas en Delphi Alexandria. Corregido un bug en la conversión de importes a texto. No se estaba aplicando el formato formatSettings (ver el commit) lo cual resultaba que en proyectos que tuvieran decimalseparator = ','; los importes quedasen con ',' y fallaban.

Actualización 2019: Mucha gente me pregunta si este proyecto sigue siendo válido, tras ver que lleva años sin actualizarse. Sí, yo sigo utilizandolo en proyectos que generan ficheros SEPA a diario. Simplemente es que la normativa no ha cambiado, y no ha sido necesario actualizarlos. Con respecto a utilizarlo en las versiones más nuevas de Delphi, no debes tener problema, no se utilizan features del lenguaje novedosas.

Estas unidades contienen dos objetos para la creación de los siguientes ficheros:

  • Norma 19.14 SEPA XML. Es un fichero de órdenes de cobro. El ordenante cobra al deudor. Internamente tenemos un array de ordenantes, cada uno con sus órdenes de cobro. Basta utilizar AddOrdenante, AddCobro. Como cada ordenante tiene una cuenta de abono para todos los cobros, internamente el objeto se encarga de colocar cada cobro en su ordenante. Ver el test está ahí explicado el uso de los objetos.

  • Norma 34.14 SEPA XML. Es un fichero de órdenes de pago. El ordenante paga al beneficiario.

Cosas a tener en cuenta:

  • Leer la normativa de los dos ficheros. Son complejos. Hay campos opcionales que no se han añadido aquí y puede que su banco se lo pida. Los identificadores únicos de cada elemento son importantes, hay que leer su significado y tomar la decisión de cómo formarlos. Por si fuera poco, cada banco tiene su interpretación y puede que le pida alguna variación en algún elemento del fichero (esto ya lo he comprobado con la versión anterior los 19.14 y 34.14 en formato plano). Esto no es un componente "listo para usar" sin más. Hay que entender de qué estamos hablando. Lo que si facilita es la estructuración y la escritura de las etiquetas.

  • Como guardamos la info en arrays, hay unos límites de órdenes y ordenantes. Supongo que serán suficientes pero es fácilmente modificable.

  • En la normativa hay muchos campos opcionales, no se ha añadido ninguno.

  • Se trata de los esquemas básicos, no los b2b.

  • Solamente se contemplan transferencias en euros, nada de cheques.

  • No se contemplan órdenes de devoluciones, etc.

  • No se hace ningún chequeo de contenidos (IBAN, BIC, etc)

  • Vea el proyecto test de ejemplo.

  • Basado en este otro componente: https://github.com/aspettl/delphi-sepa-xml las diferencias son amplias, pero es justo mencionar ese git.

La normativa:

Actualización (febrero 2016): Ya está testeado en 3 bancos españoles. Tanto la norma 19.14 como la 34.14 y los ficheros han sido aceptados.

Actualización (abril 2016): Hacemos público (en Norma 19.14) el array de ordenantes. Para poder recorrerlo y mostrarle al usuario el resumen de importes, algo así:

 for iOrdenantes:=1 to oNorma1914XML.iOrdenantes do begin
     mmFicheros.Lines.add(oNorma1914XML.listOrdenantes[iOrdenantes].sNombreOrdenante+' '+
          oNorma1914XML.listOrdenantes[iOrdenantes].sIBANOrdenante+' '+
                          uFmt_Numero2Str2(oNorma1914XML.listOrdenantes[iOrdenantes].mSumaImportes)+'€');
 end;

Espero que sea de utilidad. Diego J. Muñoz. Freelance. Cocosistemas.com

About

Delphi: Creación de ficheros normas 19.14 y 34.14 (básico, XML)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages