Finvoice3 (C++)

C++-kirjasto Finvoice 3.0 -laskujen generointiin

Teknologiat: C++
Demo

Tällä C++-kirjastolla saa luotua Finvoice 3.0 -standardin mukaista xml-dataa sähköisten laskujen luontia varten.

Toteutuksessa otin mallia aikaisemmin tekemästäni vastaavasta Ruby-kirjastosta. Molempien kirjastojen tyyli ja rakenne ovat pitkälti samankaltaisia, mutta joitakin vivahde-eroja on.

Porttauksessa näkyy jälleen suosimani käytännönläheisyys: jäljittelemällä jo jotain aiemmin tekemääni ja oppimaami pysyi toteutuksen työläys ja kuormitus aisoissa.


Finvoice-standardi ei sinänsä ole vaikea tai kovinkaan monimutkainen, mutta se on laaja. Xsd-tiedossa on yli sata XML-tagia, ja ainakin näin äkkiseltään tuntuu, että tarpeetonta toistoa on turhan paljon. Osa tietotyypeistä on tehty uudelleenkäytettäviksi, mutta esimerkiksi osoitekentistä on useampia kopioita.

Tämän kirjaston ensisijainen tarkoitus on luoda kahden suomalaisen yrityksen välillä välitettävää laskudataa. Siksi olen ensimmäisenä toteuttanut tähän tarkoitukseen sopivat ominaisuudet, ja esimerkiksi kuluttajalaskuihin liittvät asiat olen toistaiseksi jättänyt huomiotta.


Kuva: Jeremy Kratz, Public domain, via Wikimedia Commons