Co mówi każda reguła
Wszystkie cztery są błędami krytycznymi w Schematronie EN 16931 (validation-1.3.17):
- UBL-SR-48
- „Invoice lines shall have one and only one classified tax category.” Reguła składni UBL: jeden wiersz, jedna kategoria.
- BR-CO-04
- „Each Invoice line (BG-25) shall be categorized with an Invoiced item VAT category code (BT-151).” Druga strona: żaden wiersz bez kategorii.
- BR-25
- „Each Invoice line (BG-25) shall contain the Item name (BT-153).” Każdy wiersz z nazwą.
- BR-16
- „An Invoice shall have at least one Invoice line (BG-25)” Co najmniej jeden wiersz.

Komunikat Odoo
Odoo nie czeka na walidator. Przed wygenerowaniem UBL przegląda wiersze i jeśli któryś nie ma dokładnie jednego podatku, zatrzymuje się z komunikatem: „Each invoice line shall have one and only one tax.” Dzieje się tak we wszystkich czterech wersjach, z niuansem:
- Odoo 17: liczy podatki wiersza pomijając te o stałej kwocie, jak opłaty ekologiczne; musi pozostać jeden.
- Odoo 18, 19 i 20: liczy kategorie podatku, które zostaną zapisane w wierszu pliku; musi być jedna.
W tym samym kroku sprawdza BR-25: wiersz bez produktu i bez opisu zatrzymuje się z komunikatem „Each invoice line should have a product or a label.”
Przypadki, które to wywołują
| Przypadek w Odoo | Co zrobić |
|---|---|
| Wiersz bez podatku, na przykład przefakturowany wydatek | Przypisz właściwy podatek, także jeśli to 0 % lub zwolnienie. |
| Dwa podatki VAT w tym samym wierszu | Zostaw jeden: jeśli to dwie różne stawki, podziel wiersz. |
| VAT plus dopłata lub potrącenie w wierszu | Sprawdź, czy ten drugi podatek ma trafić do faktury elektronicznej jako podatek, czy inaczej; poprawna odpowiedź zależy od kraju. |
| Wiersz tekstowy bez produktu i opisu | Wpisz opis albo zamień go na notatkę. |
Sekcje i notatki Odoo nie liczą się jako wiersze, więc nie wywołują komunikatu.
Z naszym modułem XRechnung i ZUGFeRD
Moduł generuje XML własnym kodem i nie wykonuje sprawdzenia Odoo: wiersz bez podatku albo z dwoma trafia do pliku taki, jaki jest. Sprawdziliśmy to walidatorem KoSIT:
- Wiersz bez podatku: wychodzi bez kategorii VAT. W XRechnung UBL daje UBL-SR-48, BR-CO-04 i BR-Z-08; w XRechnung CII, domyślnym formacie modułu, BR-CO-04, BR-Z-01 i BR-Z-08.
- Wiersz z dwoma podatkami: w UBL zapisywany jest tylko pierwszy podatek z procentem, ale suma z VAT zawiera oba i pojawia się BR-CO-15. W CII oba trafiają do wiersza, a suma VAT nie zgadza się z rozbiciem i pojawia się BR-CO-14.
- Wiersz z podatkiem 0 %: w UBL wychodzi jako Z i KoSIT go akceptuje. W CII wychodzi jako S, a KoSIT zgłasza BR-S-05, oraz BR-Z-01 i BR-Z-08.
Przed generowaniem przejrzyj podatki każdego wiersza.

W Odoo 18, 19 i 20, z subskrypcją FlexigoTech Cloud, każdy XRechnung i każdy ZUGFeRD EN 16931 jest walidowany regułami KoSIT, a reguły, które nie przechodzą, zostają pod Validation Errors. W Odoo 17 opublikowana wersja nie waliduje: te pliki wychodzą bez ostrzeżenia.
Kroki
- Przeczytaj komunikat: mówi, czy chodzi o podatek, czy o nazwę wiersza.
- Otwórz fakturę w wersji roboczej i sprawdź kolumnę podatków wiersz po wierszu.
- Popraw, zatwierdź i wygeneruj plik ponownie.
Czytaj dalej
Sprawdzone w kodzie źródłowym modułu (wersja 17.0 i 20.0) i w podlinkowanych źródłach
Źródła
- Kod modułu: flexigo_germany_xrechnung 20.0 (446f2f68): lib/generators/ubl_generator.py
- Kod modułu: flexigo_germany_xrechnung 20.0 (446f2f68): lib/generators/cii_generator.py
- Kod modułu: flexigo_germany_xrechnung 20.0 (446f2f68): models/res_company.py
- github.com/odoo/odoo/blob/6f00fdadb875342de2d14a179f25431f93cd63c9/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/6f00fdadb875342de2d14a179f25431f93cd63c9/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/2982b5f44af03fae6a9888f20632c1cc19f623ba/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/4d2d4b5895db70596863df941d9a1f0beeb117f8/addons/account_edi_ubl_
- github.com/odoo/odoo/blob/2fec20391a8a61ea3a3bf15e9f24d59dba910a8d/addons/account_edi_ubl_
- Kod modułu: flexigo_germany_xrechnung 20.0 (446f2f68): models/xrechnung_cloud.py
- Kod modułu: flexigo_germany_xrechnung 17.0 (ad05de8f): __manifest__.py
- github.com/ConnectingEurope/eInvoicing-EN16931/releases/tag/validation-1.3.17
