Sähköiset laskut kuuluvat nykyaikaiseen kirjanpitoon
Kirjanpidon digitalisaatio etenee edelleen. Sähköiset laskumuodot ovat jo kauan sitten olleet enemmän kuin sähköpostitse lähetetty PDF-tiedosto.
Todellinen sähköinen lasku sisältää jäsenneltyä dataa, jota kirjanpito- ja ERP-järjestelmät voivat käsitellä automaattisesti.
Uudella avoimen lähdekoodin projektillamme Odoo 19 Communitylle haluamme tarttua juuri tähän.
Olemme kehittäneet useita laajennuksia, jotka tarjoamme Odoo Communityn käyttöön ilmaiseksi.
Projekti on julkisesti saatavilla GitHubissa:
Odoo 19 Invoice E-Files GitHubissa
Painopisteemme on erityisesti Itävallassa, mutta osa ratkaisusta kiinnostaa myös Itävallan ulkopuolisia yrityksiä.
Kolme moduulia sähköisille laskuille
Projekti koostuu tällä hetkellä kolmesta keskeisestä osasta:
- ebInterface 6.1 Itävaltaa varten
- ZUGFeRD sähköisille laskuille
- automaattinen lähetys e-Rechnung.gv.at-palveluun
Näin yhdistämme sähköisiin laskuihin liittyvät erilaiset vaatimukset yhdeksi avoimen lähdekoodin projektiksi Odoo 19 Communitylle.
ebInterface 6.1 – itävaltalainen laskumuoto
Kehityksemme yksi painopiste on ebInterface 6.1.
ebInterface on Itävallan vakiomuoto jäsennellyille sähköisille laskuille.
Moduulimme
l10n_at_ebinterface
luo Odoossa olevasta asiakaslaskusta tai hyvityslaskusta vastaavan ebInterface-6.1-XML-tiedoston.
Samalla Odoo-laskun olennaiset tiedot siirretään XML-rakenteeseen, muun muassa:
- Laskuttaja
- Laskun vastaanottaja
- Laskurivit
- Verot
- Maksutiedot
- Pankkiyhteys
- Laskutiedot
Luotu XML-tiedosto liitetään suoraan laskuun.
Miksi kehitimme tätä varten oman moduulin?
Kehitystyön aikana huomasimme, että Odoo 19 Communitylle ei tällä hetkellä ole saatavilla Odoo-ytimen tai OCA:n moduulia Itävallan natiiville ebInterface-standardille.
Juuri tähän halusimme tarttua.
Sen sijaan, että olisimme kehittäneet itävaltalaisen ratkaisun vain omaa asennustamme varten, toteutimme sen itsenäisenä avoimen lähdekoodin moduulina.
Näin myös muu Odoo-yhteisö voi hyötyä siitä.
ZUGFeRD automaattisesti jokaisen laskun mukana
Projektimme toinen painopiste on ZUGFeRD.
ZUGFeRD yhdistää PDF-laskun ja jäsennellyn XML-laskun.
Tuloksena on niin sanottu hybridilasku: ihmiselle lasku pysyy luettavana PDF-tiedostona, kun taas ohjelmisto voi lukea sen sisältämät jäsennellyt laskutiedot automaattisesti.
Odoo 19 tukee periaatteessa jo valmiiksi ZUGFeRDiä eli CII:tä.
Käytännössä siinä on kuitenkin joitakin rajoituksia.
Moduulimme
account_invoice_zugferd_ebinterface_auto
tarttuu siksi juuri näihin.
ZUGFeRD ei enää vain vaihtoehtona
Halusimme mahdollisimman automatisoidun prosessin.
Lähetettäessä asiakaslaskua ei siksi ensin tarkisteta, onko kyseinen asiakas määritetty erikseen käyttämään ZUGFeRDiä.
Sen sijaan ZUGFeRDiä käytetään automaattisesti asiakaslaskuihin ja hyvityslaskuihin.
Lisäksi luotu ebInterface-XML liitetään mukaan osana laskua.
Näin syntyy katkeamaton prosessi:
Odoo-lasku → PDF → jäsennelty sähkölasku → lähetys
ilman että käyttäjän tarvitsee suorittaa lisävaiheita jokaisen laskun kohdalla.
Täytämme samalla myös Odoo 19 Communityn puutteita
Toteutuksen aikana törmäsimme joihinkin Odoo 19 -toteutuksen erityispiirteisiin.
Muun muassa CII-viejässä on riippuvuuksia, jotka voivat aiheuttaa ongelmia tiettyjen maakohtaisten asennusten ulkopuolella.
Moduulimme korjaa useita näistä käytännön rajoituksista.
Näitä ovat muun muassa:
- puuttuvat kentät jaksotettujen tulojen (Deferred Revenue) ajanjaksoille
- PDF/A-3-muunnoksen maakohtainen rajoitus
- puuttuvat tai asettamatta jääneet pankkiyhteydet olemassa olevissa laskuissa
Näin ZUGFeRDiä pitäisi voida käyttää luotettavasti myös sellaisissa yrityksissä, jotka ovat alun perin suunniteltujen maakohtaisten kokoonpanojen ulkopuolella.
e-Rechnung.gv.at – suora lähetys Itävallan valtiolle
Kolmas osa kiinnostaa erityisesti yrityksiä, jotka laskuttavat julkisia tilaajia.
Moduulilla
l10n_at_erechnung_gv_at
ebInterface-lasku voidaan lähettää suoraan Itävallan e-Rechnung.gv.at-verkkopalveluun.
Näin pelkästä laskun luomisesta tulee automatisoitu sähköinen laskutusprosessi.
Prosessi voi näyttää esimerkiksi tältä:
Luo lasku Odoossa
↓
Luo ebInterface-XML
↓
Lähetä lasku
↓
Lähetä ebInterface automaattisesti e-Rechnung.gv.at-palveluun
Näin muuten manuaalinen prosessi integroidaan suoraan Odooon.
Automaattinen lähetys vain tarvittaville asiakkaille
Lähetystä e-Rechnung.gv.at-palveluun ei oteta käyttöön kaikille asiakkaille yleisesti.
Sen sijaan se voidaan ottaa käyttöön kyseisen itävaltalaisen asiakkaan kohdalla.
Tätä varten tarvittavat tiedot, esimerkiksi
- Toimittajanumero
- Ostajaryhmä / toimipistenumero
- Tilausviite
tallennetaan asiakkaalle.
Moduuli tarkistaa myös, täyttyvätkö käyttöönoton edellytykset.
Testi- ja tuotantokäyttö
e-Rechnung.gv.at-palvelussa voidaan valita testi- ja tuotantoympäristön välillä.
USP-verkkopalvelun tunnukset tallennetaan Odoon asetuksiin.
Näin integraatio voidaan ensin valmistella testiympäristössä, ennen kuin se otetaan käyttöön tuotannollisessa laskujen lähetyksessä.
Automaatiota lisätyön sijaan
Tavoitteenamme kehityksessä ei ollut antaa kirjanpitäjälle lisää painikkeita.
Päinvastoin.
Ajatus on:
Mahdollisimman vähän manuaalista työtä.
Lasku luodaan Odoossa.
Tarvittavat jäsennellyt muodot luodaan automaattisesti.
Lähetyksen yhteydessä vastaavat tiedostot liitetään automaattisesti.
Ja asianmukaisesti määritetyille itävaltalaisille asiakkaille lasku voidaan lisäksi lähettää automaattisesti e-Rechnung.gv.at-palveluun.
Juuri tämä automaatio tekee eron pelkän tiedostovientin ja todella integroidun sähkölaskuratkaisun välillä.
Tietojen laatua ei vain piilotella
Toteutuksemme tärkeä kohta on kuitenkin myös:
Sähköinen lasku voi olla vain niin hyvä kuin ovat tiedot, joista se luodaan.
Siksi emme yritä korvata puuttuvia pakollisia tietoja hiljaisesti mitä tahansa arvoilla.
Jos esimerkiksi ZUGFeRDin tai ebInterfacen pakollisia tietoja puuttuu, Odoon pitäisi huomauttaa siitä käyttäjälle.
Näitä ovat esimerkiksi:
- asiakkaan puuttuva maa
- puuttuvat verotiedot laskuriveillä
- puuttuva pankkiyhteys
Se on mielestämme parempi vaihtoehto kuin lähettää muodollisesti luotu mutta sisällöltään virheellinen sähköinen lasku.
Avoin lähdekoodi Odoo Communitylle
Myös tämän projektin tarjoamme ilmaiseksi avoimena lähdekoodina.
Miksi?
Koska hyödymme itse avoimen lähdekoodin ohjelmistoista.
Odoo Community tarjoaa erinomaisen perustan ERP:lle, kirjanpidolle ja yrityksen prosesseille. Kun jokin toiminto puuttuu päivittäisessä työssämme, kehitämme sen.
Ja kun ratkaisu voi kiinnostaa myös muita yrityksiä, jaamme sen yhteisön käyttöön.
Se on meille avointa lähdekoodia käytännössä.
Itävaltalainen painopiste – mutta ei vain Itävaltaa varten
Projektilla on selkeä itävaltalainen painopiste.
ebInterface ja e-Rechnung.gv.at kiinnostavat erityisesti itävaltalaisia yrityksiä.
ZUGFeRD-tuki sen sijaan on tärkeä myös Itävallan ulkopuolisille yrityksille.
Projekti ei siis ole pelkästään itävaltalainen ratkaisu.
Juuri jäsenneltyjen laskutietojen ja automaattisesti luodun PDF/A-3-asiakirjan yhdistelmä voi kiinnostaa myös muita Odoo-asennuksia.
Odoo 19 Communitylle
Moduulit on kehitetty Odoo 19 Communitylle.
Repositorio sisältää tällä hetkellä:
- l10n_at_ebinterface
- account_invoice_zugferd_ebinterface_auto
- l10n_at_erechnung_gv_at
Moduulit ovat riippuvaisia toisistaan, joten käyttötarkoituksesta riippuen tarvittavat osat riittää asentaa.
Panoksemme yhteisölle
Emme pidä tätä projektia valmiina kaupallisena ohjelmistona vaan panoksena Odoo-yhteisön kehittämiseen.
Ehkä joku tarvitsee vain ebInterfacen.
Ehkä toinen yritys tarvitsee ZUGFeRDin.
Ehkä jonkin yrityksen täytyy säännöllisesti lähettää laskuja julkisille tilaajille e-Rechnung.gv.at-palvelun kautta.
Kaikissa kolmessa tapauksessa projektimme voi tarjota pohjan.
Ja koska lähdekoodi on avoimesti saatavilla, jokainen käyttäjä voi tarkistaa, mukauttaa ja kehittää ratkaisua edelleen.
Avoin lähdekoodi tarkoittaa: paremmaksi yhdessä
Olemme vakuuttuneita siitä, että avoimesta lähdekoodista on erityisen suuri etu juuri ERP-järjestelmissä.
Yrityksillä on erilaisia vaatimuksia.
Ratkaisu, joka toimii yhdelle yritykselle täydellisesti, on ehkä muokattava toiselle.
Avoimella lähdekoodilla se on mahdollista.
Siksi iloitsemme seuraavista:
- Palaute
- Bug Reports (virheraportit)
- Parannusehdotukset
- Pull Requests
- muut tuetut käyttötapaukset
Hyvä yhteisöratkaisu ei välttämättä synny ensimmäisellä commitilla.
Se syntyy, kun monet käyttäjät ja kehittäjät kehittävät sitä eteenpäin.
Käytä projektia ilmaiseksi
Koko lähdekoodi on julkisesti saatavilla GitHubissa:
GitHub – Odoo 19 Invoice E-Files
Siellä ovat myös asennusohjeet ja yksittäisten moduulien dokumentaatio.
Itävaltalaisen e-Rechnung.gv.at-verkkopalvelun integrointiin tarvitaan lisäksi Python-kirjasto Zeep.
Panoksemme avoimeen Odoo-maailmaan
Tällä projektilla haluamme osoittaa, että myös pienemmät omat kehitystyöt voivat tuottaa lisäarvoa koko yhteisölle.
Kehitimme moduulit alun perin ratkaistaksemme konkreettisia vaatimuksia.
Nyt tarjoamme nämä ratkaisut ilmaiseksi kaikille Odoo 19 Community -käyttäjille.
Näin yksittäisestä kehitystyöstä voi tulla yhteisön ratkaisu.
Odoo 19. Avoin lähdekoodi. Sähköiset laskut. Itävalta. Ja ilmaiseksi yhteisölle.
Juuri sitä varten julkaisimme tämän projektin.