Elektronické faktury patří k modernímu účetnictví
Digitalizace účetnictví stále pokračuje. Formáty elektronických faktur už dávno nejsou jen souborem PDF odeslaným e-mailem.
Skutečná elektronická faktura obsahuje strukturovaná data, která mohou účetní a ERP systémy zpracovávat automaticky.
Naším novým open-source projektem pro Odoo 19 Community chceme zasáhnout právě tady.
Vyvinuli jsme několik rozšíření, která komunitě Odoo poskytujeme zdarma.
Projekt je veřejně dostupný na GitHubu:
Odoo 19 Invoice E-Files na GitHubu
Naše zaměření je především na Rakousko, ale část řešení je zajímavá i pro firmy mimo Rakousko.
Tři moduly pro elektronické faktury
Projekt se v současnosti skládá ze tří hlavních komponent:
- ebInterface 6.1 pro Rakousko
- ZUGFeRD pro elektronické faktury
- automatické předávání na e-Rechnung.gv.at
Tím spojujeme různé požadavky týkající se elektronických faktur v jednom open-source projektu pro Odoo 19 Community.
ebInterface 6.1 – rakouský formát faktur
Jedním z těžišť našeho vývoje je ebInterface 6.1.
ebInterface je rakouský standardní formát pro strukturované elektronické faktury.
Náš modul
l10n_at_ebinterface
vytváří z odběratelské faktury, resp. dobropisu v Odoo odpovídající XML ebInterface 6.1.
Přitom se mimo jiné přenášejí relevantní informace z faktury Odoo do struktury XML:
- Vystavitel faktury
- Příjemce faktury
- Fakturační položky
- Daně
- Platební údaje
- Bankovní spojení
- Údaje o faktuře
Vytvořený soubor XML se přitom přímo propojí s fakturou.
Proč jsme pro to vyvinuli vlastní modul?
Při vývoji jsme zjistili, že pro Odoo 19 Community v současnosti neexistuje odpovídající modul jádra Odoo ani modul OCA pro nativní rakouský standard ebInterface.
Právě tady jsme chtěli zasáhnout.
Místo abychom rakouské řešení vyvíjeli jen pro naši vlastní instalaci, realizovali jsme je jako samostatný open-source modul.
Díky tomu z něj může profitovat i zbytek komunity Odoo.
ZUGFeRD automaticky u každé faktury
Druhým těžištěm našeho projektu je ZUGFeRD.
ZUGFeRD kombinuje fakturu v PDF se strukturovanou fakturou v XML.
Výsledkem je takzvaná hybridní faktura: pro člověka zůstává faktura čitelná jako PDF, zatímco software dokáže obsažená strukturovaná fakturační data automaticky vyhodnotit.
Odoo 19 již v zásadě podporu ZUGFeRD, resp. CII obsahuje.
V praxi však existuje několik omezení.
Náš modul
account_invoice_zugferd_ebinterface_auto
proto zasahuje právě zde.
ZUGFeRD už ne jen jako volba
Chtěli jsme co nejvíce automatizovaný postup.
U odeslané odběratelské faktury se proto nejprve nekontroluje, zda je příslušný zákazník individuálně nakonfigurován pro ZUGFeRD.
Místo toho se ZUGFeRD pro odběratelské faktury a dobropisy používá automaticky.
Vytvořené XML ebInterface se navíc přikládá jako součást faktury.
Tak vzniká ucelený proces:
Faktura Odoo → PDF → strukturovaná e-faktura → odeslání
aniž by musel uživatel u každé faktury provádět další kroky.
Zaplňujeme přitom i mezery v Odoo 19 Community
Při realizaci jsme narazili na několik zvláštností v implementaci Odoo 19.
Mimo jiné existují závislosti v exportéru CII, které mohou mimo určité národní instalace způsobovat potíže.
Náš modul přitom odstraňuje několik těchto praktických omezení.
Patří mezi ně například:
- chybějící pole pro období odložených výnosů (Deferred Revenue)
- omezení konverze PDF/A-3 podle konkrétní země
- chybějící, resp. nenastavená bankovní spojení u existujících faktur
Tím má být umožněno spolehlivé použití ZUGFeRD i pro firmy mimo původně předpokládané konstelace zemí.
e-Rechnung.gv.at – přímé předávání rakouskému státu
Třetí součást je zvlášť zajímavá pro firmy, které vystavují faktury veřejným zadavatelům.
S modulem
l10n_at_erechnung_gv_at
lze fakturu ebInterface odeslat přímo webové službě e-Rechnung.gv.at rakouského státu.
Z pouhého vystavování faktur se tak stává automatizovaný proces elektronické fakturace.
Postup může vypadat například takto:
Vytvořit fakturu v Odoo
↓
Vytvořit XML ebInterface
↓
Odeslat fakturu
↓
Automaticky předat ebInterface na e-Rechnung.gv.at
Jinak ruční proces se tak integruje přímo do Odoo.
Automatické předávání jen pro potřebné zákazníky
Předávání na e-Rechnung.gv.at se neaktivuje plošně pro každého zákazníka.
Místo toho jej lze aktivovat u konkrétního rakouského zákazníka.
K tomu musí být uvedeny potřebné údaje, například
- Číslo dodavatele
- Skupina nákupčích / číslo pobočky
- Reference objednávky
uloženy u zákazníka.
Modul přitom také kontroluje, zda jsou splněny předpoklady pro aktivaci.
Testovací a produkční provoz
Pro e-Rechnung.gv.at lze zvolit mezi testovacím a produkčním prostředím.
Přístupové údaje k webové službě USP se ukládají v nastavení Odoo.
Integraci lze tak nejprve připravit v testovacím prostředí, než se nasadí pro ostré odesílání faktur.
Automatizace místo další práce
Naším cílem při vývoji nebylo dávat účetním další tlačítka.
Právě naopak.
Myšlenka je tato:
Co nejméně ruční práce.
Faktura se vytvoří v Odoo.
Potřebné strukturované formáty se vytvoří automaticky.
Při odeslání se příslušné soubory automaticky přiloží.
A u odpovídajícím způsobem nakonfigurovaných rakouských zákazníků může být faktura navíc automaticky předána na e-Rechnung.gv.at.
Právě tato automatizace dělá rozdíl mezi jednoduchým exportem souboru a skutečně integrovaným řešením pro e-fakturaci.
Kvalita dat se nezastírá
Důležitým bodem naší implementace je však také:
Elektronická faktura může být jen tak dobrá, jako jsou data, z nichž vzniká.
Proto se nepokoušíme mlčky nahrazovat chybějící povinné údaje nějakými hodnotami.
Pokud například chybějí povinné informace pro ZUGFeRD nebo ebInterface, má na to Odoo uživatele upozornit.
Patří sem například:
- chybějící země u zákazníka
- chybějící daňové informace na fakturačních položkách
- chybějící bankovní spojení
Z našeho pohledu je to lepší než odeslat formálně vytvořenou, ale obsahově nesprávnou elektronickou fakturu.
Open source pro komunitu Odoo
Také tento projekt poskytujeme zdarma jako open source.
Proč?
Protože sami z open-source softwaru profitujeme.
Odoo Community nabízí výborný základ pro ERP, účetnictví a podnikové procesy. Pokud nám při každodenní práci nějaká funkce chybí, vyvineme ji.
A pokud může být řešení zajímavé i pro další firmy, zpřístupníme je komunitě.
Pro nás je to žitý open source.
Rakouské zaměření – ale nejen pro Rakousko
Projekt má jasné rakouské těžiště.
ebInterface a e-Rechnung.gv.at jsou zajímavé zejména pro rakouské firmy.
Podpora ZUGFeRD je naproti tomu relevantní i pro firmy mimo Rakousko.
Projekt tedy není výhradně rakouským řešením.
Právě kombinace strukturovaných fakturačních dat a automaticky vytvořeného dokumentu PDF/A-3 může být zajímavá i pro jiné instalace Odoo.
Pro Odoo 19 Community
Moduly byly vyvinuty pro Odoo 19 Community.
Repozitář v současnosti obsahuje:
- l10n_at_ebinterface
- account_invoice_zugferd_ebinterface_auto
- l10n_at_erechnung_gv_at
Moduly na sobě navzájem závisejí, takže podle konkrétního použití stačí nainstalovat jen potřebné komponenty.
Náš příspěvek komunitě
Tento projekt nepovažujeme za hotový komerční software, ale za příspěvek k dalšímu rozvoji komunity Odoo.
Možná někdo potřebuje jen ebInterface.
Možná jiná firma potřebuje ZUGFeRD.
Možná musí některá firma pravidelně posílat faktury veřejným zadavatelům přes e-Rechnung.gv.at.
Ve všech třech případech může náš projekt poskytnout základ.
A protože je zdrojový kód volně dostupný, může každý uživatel řešení prověřit, upravit a dále rozvíjet.
Open source znamená: společně se zlepšovat
Jsme přesvědčeni, že open source nabízí právě u ERP systémů velkou výhodu.
Firmy mají různé požadavky.
Řešení, které pro jednu firmu funguje dokonale, může být pro jinou nutné upravit.
S otevřeným zdrojovým kódem je to možné.
Proto se těšíme na:
- Zpětnou vazbu
- Hlášení chyb (Bug Reports)
- Návrhy na vylepšení
- Pull Requests
- další podporované případy použití
Dobré komunitní řešení nemusí vzniknout hned prvním commitem.
Vzniká dalším vývojem mnoha uživatelů a vývojářů.
Používat projekt zdarma
Kompletní zdrojový kód je veřejně dostupný na GitHubu:
GitHub – Odoo 19 Invoice E-Files
Najdete tam také informace o instalaci a dokumentaci jednotlivých modulů.
Pro integraci rakouské webové služby e-Rechnung.gv.at je navíc zapotřebí knihovna Pythonu Zeep.
Náš příspěvek k otevřenému světu Odoo
Tímto projektem chceme ukázat, že i menší vlastní vývoj může přinést přidanou hodnotu celé komunitě.
Moduly jsme původně vyvinuli k vyřešení konkrétních požadavků.
Nyní tato řešení zpřístupňujeme zdarma všem uživatelům Odoo 19 Community.
Z individuálního vývoje se tak může stát komunitní řešení.
Odoo 19. Open source. Elektronické faktury. Rakousko. A zdarma pro komunitu.
Právě proto jsme tento projekt zveřejnili.