Az elektronikus számlák a modern könyvelés részei
A könyvelés digitalizációja folyamatosan halad előre. Az elektronikus számlaformátumok ma már jóval többet jelentenek, mint egy e-mailben elküldött PDF-fájl.
Egy valódi elektronikus számla strukturált adatokat tartalmaz, amelyeket a könyvelési és ERP-rendszerek automatikusan fel tudnak dolgozni.
Új, nyílt forráskódú projektünkkel az Odoo 19 Community számára pontosan ezen a ponton szeretnénk elindulni.
Több bővítményt fejlesztettünk, amelyeket ingyenesen az Odoo Community rendelkezésére bocsátunk.
A projekt nyilvánosan elérhető a GitHubon:
Odoo 19 Invoice E-Files a GitHubon
Fókuszunkban különösen Ausztria áll, de a megoldás egy része az Ausztrián kívüli vállalkozások számára is érdekes.
Három modul az elektronikus számlákhoz
A projekt jelenleg három fő komponensből áll:
- ebInterface 6.1 Ausztriához
- ZUGFeRD az elektronikus számlákhoz
- automatikus továbbítás az e-Rechnung.gv.at felé
Ezzel az elektronikus számlákkal kapcsolatos különböző követelményeket egyetlen, az Odoo 19 Community-hez készült nyílt forráskódú projektben kapcsoljuk össze.
ebInterface 6.1 – az osztrák számlaformátum
Fejlesztésünk egyik súlypontja az ebInterface 6.1.
Az ebInterface a strukturált elektronikus számlák osztrák szabványformátuma.
Modulunk
l10n_at_ebinterface
az Odoo-ban lévő vevőszámlából, illetve jóváíró számlából létrehozza a megfelelő ebInterface-6.1-XML-t.
Eközben egyebek mellett az Odoo-számla vonatkozó adatai kerülnek át az XML-struktúrába:
- Számlakibocsátó
- Számlafogadó
- Számlatételek
- Adók
- Fizetési információk
- Bankszámla-adatok
- Számlaadatok
A létrehozott XML-fájl közvetlenül a számlához kapcsolódik.
Miért fejlesztettünk saját modult erre?
A fejlesztés során azt tapasztaltuk, hogy az Odoo 19 Community számára jelenleg nem áll rendelkezésre az osztrák natív ebInterface-szabványhoz megfelelő Odoo-core-modul vagy OCA-modul.
Pontosan itt akartunk elindulni.
Ahelyett, hogy az osztrák megoldást csak a saját telepítésünkre fejlesztettük volna, önálló, nyílt forráskódú modulként valósítottuk meg.
Így az Odoo-közösség többi tagja is profitálhat belőle.
ZUGFeRD automatikusan minden számlával
Projektünk második súlypontja a ZUGFeRD.
A ZUGFeRD egy PDF-számlát kapcsol össze egy strukturált XML-számlával.
Az eredmény az úgynevezett hibrid számla: az ember számára a számla PDF-ként olvasható marad, miközben a szoftver automatikusan ki tudja értékelni a benne foglalt strukturált számlaadatokat.
Az Odoo 19 alapvetően már támogatja a ZUGFeRD-et, illetve a CII-t.
A gyakorlatban azonban van néhány korlátozás.
Modulunk
account_invoice_zugferd_ebinterface_auto
ezért pontosan itt kezdi a munkát.
A ZUGFeRD már nem csupán opció
Lehetőleg minél automatizáltabb folyamatot szerettünk volna.
Elküldött vevőszámlánál ezért nem azt ellenőrzi a rendszer először, hogy az adott vevő egyedileg be van-e állítva a ZUGFeRD-re.
Helyette a ZUGFeRD-et a vevőszámlákhoz és jóváíró számlákhoz automatikusan használja.
Emellett a létrehozott ebInterface-XML is a számla részeként kerül csatolásra.
Így egy végigvitt folyamat jön létre:
Odoo-számla → PDF → strukturált e-számla → küldés
anélkül, hogy a felhasználónak minden számlánál további lépéseket kellene végrehajtania.
Az Odoo 19 Community hiányosságait is pótoljuk
A megvalósítás során az Odoo 19 implementációjának néhány sajátosságába ütköztünk.
Egyebek mellett a CII-exporterben olyan függőségek vannak, amelyek bizonyos országspecifikus telepítéseken kívül problémákat okozhatnak.
Modulunk ezek közül több gyakorlati korlátozást megszüntet.
Ide tartozik egyebek mellett:
- a Deferred-Revenue-időszakok hiányzó mezői
- a PDF/A-3-konvertálás országspecifikus korlátozása
- hiányzó, illetve nem beállított bankszámla-adatok meglévő számláknál
Ezzel a ZUGFeRD megbízhatóan használhatóvá válhat az eredetileg tervezett országkonstellációkon kívüli vállalkozások számára is.
e-Rechnung.gv.at – közvetlen továbbítás az osztrák államnak
A harmadik komponens különösen azoknak a vállalkozásoknak érdekes, amelyek közszféra-beli megrendelőknek állítanak ki számlákat.
A(z)
l10n_at_erechnung_gv_at
modullal egy ebInterface-számla közvetlenül továbbítható az osztrák e-Rechnung.gv.at webszolgáltatásnak.
Így a puszta számlakészítésből automatizált elektronikus számlázási folyamat lesz.
A folyamat például így nézhet ki:
Számla létrehozása az Odoo-ban
↓
ebInterface XML létrehozása
↓
Számla elküldése
↓
Az ebInterface automatikus továbbítása az e-Rechnung.gv.at felé
Így egy egyébként kézi folyamat közvetlenül az Odoo-ba integrálódik.
Automatikus továbbítás csak a szükséges vevőknél
Az e-Rechnung.gv.at felé történő továbbítás nem mindenki számára általánosan van bekapcsolva.
Helyette az adott osztrák vevőnél kapcsolható be.
Ehhez a szükséges adatokat, például
- Szállítószám
- Beszerzői csoport / fióknév-szám
- Megrendelési hivatkozás
a vevőnél kell megadni.
A modul azt is ellenőrzi, hogy teljesülnek-e a bekapcsolás feltételei.
Teszt- és éles üzem
Az e-Rechnung.gv.at-hoz választható teszt- és éles környezet között.
Az USP-webszolgáltatás hozzáférési adatait az Odoo beállításaiban kell megadni.
Így az integráció először tesztkörnyezetben előkészíthető, mielőtt az éles számlaküldéshez használnák.
Automatizálás a plusz munka helyett
A fejlesztés során nem az volt a célunk, hogy további gombokat adjunk a könyvelőnek.
Épp ellenkezőleg.
Az elképzelés:
Lehetőleg minél kevesebb kézi munka.
A számla létrejön az Odoo-ban.
A szükséges strukturált formátumok automatikusan előállnak.
Küldéskor a megfelelő fájlok automatikusan csatolódnak.
És a megfelelően beállított osztrák vevőknél a számla ezenfelül automatikusan továbbítható az e-Rechnung.gv.at felé.
Éppen ez az automatizálás jelenti a különbséget az egyszerű fájlexport és a valóban integrált e-számlázási megoldás között.
Az adatminőséget nem rejtjük el
Megvalósításunk egy fontos pontja azonban az is:
Egy elektronikus számla csak annyira lehet jó, mint azok az adatok, amelyekből létrejön.
Ezért nem próbáljuk meg a hiányzó kötelező adatokat csendben valamilyen értékekkel helyettesíteni.
Ha például a ZUGFeRD-hez vagy az ebInterface-hez kötelező információk hiányoznak, az Odoo-nak fel kell hívnia rá a felhasználó figyelmét.
Ide tartozik például:
- hiányzó ország a vevőnél
- hiányzó adóinformációk a számlatételeken
- hiányzó bankszámla-adatok
Szerintünk ez jobb, mint egy formailag létrehozott, de tartalmilag hibás elektronikus számlát elküldeni.
Nyílt forráskód az Odoo Community számára
Ezt a projektet is ingyenes, nyílt forráskódúként bocsátjuk rendelkezésre.
Miért?
Mert mi magunk is profitálunk a nyílt forráskódú szoftverekből.
Az Odoo Community kiváló alapot kínál az ERP-hez, a könyveléshez és a vállalati folyamatokhoz. Ha a mindennapi munkánk során hiányzik egy funkció, megfejlesztjük.
És ha a megoldás más vállalkozások számára is érdekes lehet, a közösség rendelkezésére bocsátjuk.
Ez számunkra az megélt nyílt forráskód.
Osztrák fókusz – de nem csak Ausztria számára
A projektnek egyértelműen osztrák súlypontja van.
Az ebInterface és az e-Rechnung.gv.at különösen az osztrák vállalkozások számára érdekes.
A ZUGFeRD-támogatás ezzel szemben az Ausztrián kívüli vállalkozások számára is releváns.
Így a projekt nem kizárólag osztrák megoldás.
Éppen a strukturált számlaadatok és az automatikusan létrehozott PDF/A-3-dokumentum kombinációja lehet érdekes más Odoo-telepítések számára is.
Az Odoo 19 Community-hez
A modulokat az Odoo 19 Community számára fejlesztettük.
A tároló jelenleg ezeket tartalmazza:
- l10n_at_ebinterface
- account_invoice_zugferd_ebinterface_auto
- l10n_at_erechnung_gv_at
A modulok egymástól függenek, így az alkalmazási esettől függően csak a szükséges komponenseket kell telepíteni.
Hozzájárulásunk a közösséghez
Ezt a projektet nem kész kereskedelmi szoftvernek tekintjük, hanem az Odoo-közösség továbbfejlesztéséhez való hozzájárulásnak.
Talán valakinek csak az ebInterface-re van szüksége.
Talán egy másik vállalkozásnak a ZUGFeRD-re.
Talán egy vállalkozásnak rendszeresen kell számlákat küldenie közszféra-beli megrendelőknek az e-Rechnung.gv.at-n keresztül.
Mindhárom esetben projektünk alapot nyújthat.
És mivel a forráskód nyíltan elérhető, minden felhasználó ellenőrizheti, testre szabhatja és továbbfejlesztheti a megoldást.
A nyílt forráskód azt jelenti: együtt válunk jobbá
Meg vagyunk győződve arról, hogy a nyílt forráskód különösen az ERP-rendszereknél nagy előnyt jelent.
A vállalkozásoknak eltérő igényeik vannak.
Az a megoldás, amely az egyik vállalkozásnál tökéletesen működik, egy másiknál talán módosításra szorul.
Nyílt forráskóddal ez lehetséges.
Ezért örülünk ezeknek:
- Visszajelzés
- Hibabejelentések (Bug Reports)
- Fejlesztési javaslatok
- Pull Requestek
- további támogatott felhasználási esetek
Egy jó közösségi megoldás nem feltétlenül az első commitnál születik meg.
Sok felhasználó és fejlesztő általi továbbfejlesztés révén jön létre.
A projekt ingyenes használata
A teljes forráskód nyilvánosan elérhető a GitHubon:
GitHub – Odoo 19 Invoice E-Files
Ott találhatók a telepítési információk és az egyes modulok dokumentációja is.
Az osztrák e-Rechnung.gv.at-webszolgáltatás integrálásához ezenfelül a Zeep Python-könyvtárra van szükség.
Hozzájárulásunk egy nyitott Odoo-világhoz
Ezzel a projekttel azt szeretnénk megmutatni, hogy a kisebb saját fejlesztések is értéket teremthetnek egy egész közösség számára.
A modulokat eredetileg konkrét követelmények megoldására fejlesztettük.
Most ezeket a megoldásokat ingyenesen az összes Odoo 19 Community-felhasználó rendelkezésére bocsátjuk.
Így egy egyedi fejlesztésből közösségi megoldás válhat.
Odoo 19. Nyílt forráskód. Elektronikus számlák. Ausztria. És ingyenesen a közösség számára.
Pontosan erre tettük közzé ezt a projektet.