Elektronski računi sodijo v sodobno računovodstvo
Digitalizacija računovodstva se nenehno nadaljuje. Elektronski formati računov so že zdavnaj več kot datoteka PDF, poslana po e-pošti.
Pravi elektronski račun vsebuje strukturirane podatke, ki jih računovodski sistemi in sistemi ERP lahko obdelajo samodejno.
Z našim novim odprtokodnim projektom za Odoo 19 Community želimo začeti prav tukaj.
Razvili smo več razširitev, ki jih skupnosti Odoo Community ponujamo brezplačno.
Projekt je javno dostopen na GitHubu:
Odoo 19 Invoice E-Files na GitHubu
Naš poudarek je predvsem na Avstriji, vendar je del rešitve zanimiv tudi za podjetja zunaj Avstrije.
Trije moduli za elektronske račune
Projekt trenutno sestavljajo tri bistvene komponente:
- ebInterface 6.1 za Avstrijo
- ZUGFeRD za elektronske račune
- samodejno pošiljanje na e-Rechnung.gv.at
Tako v enem odprtokodnem projektu za Odoo 19 Community združujemo različne zahteve v zvezi z elektronskimi računi.
ebInterface 6.1 – avstrijski format računov
Eno od težišč našega razvoja je ebInterface 6.1.
ebInterface je avstrijski standardni format za strukturirane elektronske račune.
Naš modul
l10n_at_ebinterface
iz računa za stranko oz. dobropisa v Odoo ustvari ustrezno datoteko ebInterface-6.1-XML.
Pri tem se med drugim ustrezne informacije iz računa Odoo prenesejo v strukturo XML:
- izdajatelj računa
- prejemnik računa
- postavke računa
- davki
- podatki o plačilu
- bančni podatki
- podatki o računu
Ustvarjena datoteka XML se neposredno poveže z računom.
Zakaj smo za to razvili lasten modul?
Pri razvoju smo ugotovili, da za Odoo 19 Community trenutno ni na voljo ustreznega osnovnega modula Odoo ali modula OCA za avstrijski nativni standard ebInterface.
Prav tu smo želeli poseči vmes.
Namesto da bi avstrijsko rešitev razvili le za lastno namestitev, smo jo izvedli kot samostojen odprtokodni modul.
Tako ima lahko koristi tudi preostala skupnost Odoo.
ZUGFeRD samodejno pri vsakem računu
Drugo težišče našega projekta je ZUGFeRD.
ZUGFeRD združuje račun v obliki PDF s strukturiranim računom XML.
Rezultat je tako imenovani hibridni račun: za človeka ostane račun berljiv kot PDF, programska oprema pa lahko vsebovane strukturirane podatke računa samodejno obdela.
Odoo 19 načeloma že vsebuje podporo za ZUGFeRD oz. CII.
V praksi pa obstaja nekaj omejitev.
Naš modul
account_invoice_zugferd_ebinterface_auto
zato posega prav tu.
ZUGFeRD ni več le možnost
Želeli smo čim bolj avtomatiziran potek.
Pri poslanem računu za stranko zato ne preverjamo najprej, ali je bila posamezna stranka individualno nastavljena za ZUGFeRD.
Namesto tega se ZUGFeRD za račune za stranke in dobropise uporablja samodejno.
Poleg tega se ustvarjeni ebInterface-XML priloži kot sestavni del računa.
Tako nastane neprekinjen proces:
Račun Odoo → PDF → strukturiran e-račun → pošiljanje
brez dodatnih korakov, ki bi jih moral uporabnik izvesti pri vsakem računu.
Zapolnjujemo tudi vrzeli v Odoo 19 Community
Pri izvedbi smo naleteli na nekaj posebnosti v implementaciji Odoo 19.
Med drugim v izvozniku CII obstajajo odvisnosti, ki lahko zunaj določenih državnih namestitev povzročajo težave.
Naš modul odpravlja več teh praktičnih omejitev.
Sem med drugim sodijo:
- manjkajoča polja za obdobja odloženih prihodkov (Deferred Revenue)
- omejitev pretvorbe v PDF/A-3 glede na državo
- manjkajoči oz. nenastavljeni bančni podatki pri obstoječih računih
Tako naj bi bilo ZUGFeRD mogoče zanesljivo uporabljati tudi v podjetjih zunaj prvotno predvidenih državnih konstelacij.
e-Rechnung.gv.at – neposredno pošiljanje avstrijski državi
Tretja sestavina je še posebej zanimiva za podjetja, ki izdajajo račune javnim naročnikom.
Z modulom
l10n_at_erechnung_gv_at
je mogoče račun ebInterface neposredno poslati avstrijski spletni storitvi e-Rechnung.gv.at.
Tako iz zgolj izdajanja računov nastane avtomatiziran proces elektronskih računov.
Potek je lahko na primer tak:
Ustvarjanje računa v Odoo
↓
Ustvarjanje ebInterface XML
↓
Pošiljanje računa
↓
Samodejno pošiljanje ebInterface na e-Rechnung.gv.at
Tako se sicer ročni proces neposredno vključi v Odoo.
Samodejno pošiljanje samo za potrebne stranke
Pošiljanje na e-Rechnung.gv.at se ne vklopi pavšalno za vse stranke.
Namesto tega ga je mogoče vklopiti pri posamezni avstrijski stranki.
Za to se pri stranki shranijo potrebni podatki, kot so na primer
- številka dobavitelja
- skupina kupcev / številka podružnice
- referenca naročila
.
Modul pri tem preveri tudi, ali so izpolnjeni pogoji za vklop.
Testno in produkcijsko delovanje
Za e-Rechnung.gv.at je mogoče izbirati med testnim in produkcijskim okoljem.
Dostopni podatki za spletno storitev USP se shranijo v nastavitvah Odoo.
Tako je mogoče integracijo najprej pripraviti v testnem okolju, preden se uporabi za produkcijsko pošiljanje računov.
Avtomatizacija namesto dodatnega dela
Naš cilj pri razvoju ni bil računovodji dati še več gumbov.
Prav nasprotno.
Zamisel je:
Čim manj ročnega dela.
Račun se ustvari v Odoo.
Potrebni strukturirani formati se ustvarijo samodejno.
Pri pošiljanju se ustrezne datoteke samodejno priložijo.
Pri ustrezno nastavljenih avstrijskih strankah pa se lahko račun dodatno samodejno pošlje na e-Rechnung.gv.at.
Prav ta avtomatizacija je razlika med preprostim izvozom datotek in resnično integrirano rešitvijo za e-račune.
Kakovost podatkov se ne prikriva
Pomembna točka naše implementacije pa je tudi:
Elektronski račun je lahko le tako dober kot podatki, iz katerih je ustvarjen.
Zato ne poskušamo manjkajočih obveznih podatkov tiho nadomeščati s poljubnimi vrednostmi.
Če na primer manjkajo obvezne informacije za ZUGFeRD ali ebInterface, naj Odoo uporabnika na to opozori.
Sem sodijo na primer:
- manjkajoča država pri stranki
- manjkajoči davčni podatki na postavkah računa
- manjkajoči bančni podatki
To je po našem mnenju bolje, kot poslati formalno ustvarjen, a vsebinsko napačen elektronski račun.
Odprta koda za skupnost Odoo Community
Tudi ta projekt ponujamo brezplačno kot odprto kodo.
Zakaj?
Ker tudi sami izkoriščamo prednosti odprtokodne programske opreme.
Odoo Community ponuja odlično osnovo za ERP, računovodstvo in poslovne procese. Če nam pri vsakdanjem delu manjka kakšna funkcija, jo razvijemo.
In če je lahko rešitev zanimiva tudi za druga podjetja, jo damo na voljo skupnosti.
Za nas je to živeta odprta koda.
Poudarek na Avstriji – vendar ne le za Avstrijo
Projekt ima jasno avstrijsko težišče.
ebInterface in e-Rechnung.gv.at sta zanimiva predvsem za avstrijska podjetja.
Podpora za ZUGFeRD pa je pomembna tudi za podjetja zunaj Avstrije.
Projekt torej ni izključno avstrijska rešitev.
Prav kombinacija strukturiranih podatkov računa in samodejno ustvarjenega dokumenta PDF/A-3 je lahko zanimiva tudi za druge namestitve Odoo.
Za Odoo 19 Community
Moduli so bili razviti za Odoo 19 Community.
Repozitorij trenutno vsebuje:
- l10n_at_ebinterface
- account_invoice_zugferd_ebinterface_auto
- l10n_at_erechnung_gv_at
Moduli so med seboj odvisni, zato je glede na primer uporabe treba namestiti le potrebne komponente.
Naš prispevek skupnosti
Tega projekta ne vidimo kot dokončane komercialne programske opreme, temveč kot prispevek k nadaljnjemu razvoju skupnosti Odoo.
Morda nekdo potrebuje le ebInterface.
Morda drugo podjetje potrebuje ZUGFeRD.
Morda mora podjetje redno pošiljati račune javnim naročnikom prek e-Rechnung.gv.at.
V vseh treh primerih lahko naš projekt ponudi osnovo.
In ker je izvorna koda odprto dostopna, lahko vsak uporabnik rešitev pregleda, prilagodi in razvija naprej.
Odprta koda pomeni: skupaj postajati boljši
Prepričani smo, da odprta koda prav pri sistemih ERP prinaša veliko prednost.
Podjetja imajo različne zahteve.
Rešitev, ki za eno podjetje deluje odlično, je treba za drugo morda prilagoditi.
Z odprto izvorno kodo je to mogoče.
Zato se veselimo:
- povratnih informacij
- poročil o napakah (bug reports)
- predlogov za izboljšave
- zahtevkov za združitev (pull requests)
- nadaljnjih podprtih primerov uporabe
Dobra rešitev skupnosti ne nastane nujno že pri prvem commitu.
Nastane z nadaljnjim razvojem, ki ga opravijo številni uporabniki in razvijalci.
Brezplačna uporaba projekta
Celotna izvorna koda je javno dostopna na GitHubu:
GitHub – Odoo 19 Invoice E-Files
Tam so tudi informacije o namestitvi in dokumentacija posameznih modulov.
Za integracijo avstrijske spletne storitve e-Rechnung.gv.at je dodatno potrebna knjižnica Python Zeep.
Naš prispevek k odprtemu svetu Odoo
S tem projektom želimo pokazati, da lahko tudi manjši lastni razvoji ustvarijo dodano vrednost za celotno skupnost.
Module smo prvotno razvili za reševanje konkretnih zahtev.
Zdaj te rešitve brezplačno ponujamo vsem uporabnikom Odoo 19 Community.
Tako lahko iz individualnega razvoja nastane rešitev skupnosti.
Odoo 19. Odprta koda. Elektronski računi. Avstrija. In brezplačno za skupnost.
Prav zato smo ta projekt objavili.