Frankreich¶
Wichtig
You must install the France - Adding Mandatory Invoice
Mentions (Decree no. 2022-1299) (l10n_fr_invoice_addr
) module to comply with the local
legislation.
FEC - Fichier des Écritures Comptables¶
Eine Prüfdatei FEC Fichier des Écritures Comptables enthält alle Buchhaltungsdaten und Buchungen, die in allen Buchhaltungsjournalen für ein Geschäftsjahr erfasst wurden. Die Einträge in der Datei müssen in chronologischer Reihenfolge angeordnet sein.
Seit dem 1. Januar 2014 ist jedes französische Unternehmen verpflichtet, diese Datei auf Anfrage der Steuerbehörden zu Prüfungszwecken vorzulegen und zu übermitteln.
FEC-Import¶
Um die Einführung neuer Benutzer zu vereinfachen, enthält das französische steuerliche Lokalisierungspaket von Odoo Enterprise die Funktion FEC-Import (Modulname: l10n_fr_fec_import
), die den Import bestehender FEC-Dateien aus älterer Software ermöglicht.
Um diese Funktion zu aktivieren, gehen Sie zu
, aktivieren Sie die Funktion FEC-Import und klicken Sie auf Speichern.Gehen Sie dann zu
, laden Sie Ihre FEC-Datei hoch und klicken Sie auf Importieren.Bemerkung
Dateiformate¶
FEC-Dateien können nur im CSV-Format vorliegen, da das XML-Format nicht unterstützt wird.
Bemerkung
Die FEC-CSV-Datei hat ein einfaches Textformat, das eine Datentabelle darstellt, wobei die erste Zeile eine Kopfzeile ist und die Liste der Felder für jeden Eintrag definiert und jede nachfolgende Zeile einen Buchungseintrag darstellt, und zwar in keiner vorgegebenen Reihenfolge.
Unser Modul erwartet, dass die Dateien die folgenden technischen Spezifikationen erfüllen:
Codierung: UTF-8, UTF-8-SIG und iso8859_15.
Trennzeichen: eines von diesen:
;
or|
or,
oderUmschalttaste
.Zeilenabschlüsse: Es werden Zeichengruppen in Form von sowohl CR+LF (
\rn
) als auch LF (\n
) unterstützt.Datumsformat:
%Y%m%d
Beschreibung und Verwendung von Feldern¶
# |
Feldname |
Beschreibung |
Verwenden |
Format |
---|---|---|---|---|
01 |
JournalCode |
Journalcode |
|
Alphanumerisch |
02 |
JournalLib |
Journalbezeichnung |
|
Alphanumerisch |
03 |
EcritureNum |
Spezifische Nummerierung für jede Journalsequenznummer der Buchung |
|
Alphanumerisch |
04 |
EcritureDate |
Buchungsdatum |
|
Datum (JJJJMMTT) |
05 |
CompteNum |
Kontonummer |
|
Alphanumerisch |
06 |
CompteLib |
Kontoname |
|
Alphanumerisch |
07 |
CompAuxNum |
Sekundäre Kontonummer (akzeptiert Null) |
|
Alphanumerisch |
08 |
CompAuxLib |
Sekundärer Kontoname (akzeptiert Null) |
|
Alphanumerisch |
09 |
PieceRef |
Dokumentreferenz |
|
Alphanumerisch |
10 |
PieceDate |
Dokumentdatum |
|
Datum (JJJJMMTT) |
11 |
EcritureLib |
Bezeichnung des Kontoeintrags |
|
Alphanumerisch |
12 |
Soll |
Sollbetrag |
|
Gleitkommazahlen |
13 |
Haben |
Habenbetrag (Feldname „Crédit“ ist nicht erlaubt) |
|
Gleitkommazahlen |
14 |
EcritureLet |
Querverweis auf Buchungsposten (akzeptiert Null) |
|
Alphanumerisch |
15 |
DateLet |
Datum des Buchungsposten (akzeptiert Null) |
nicht verwendet |
Datum (JJJJMMTT) |
16 |
ValidDate |
Validierungsdatum des Buchungspostens |
nicht verwendet |
Datum (JJJJMMTT) |
17 |
Montantdevise |
Währungsbetrag (akzeptiert Null) |
|
Gleitkommazahlen |
18 |
Idevise |
Währungs-ID (akzeptiert Null) |
|
Alphanumerisch |
Diese beiden Felder können anstelle der anderen Felder im obigen Sinne gefunden werden.
12 |
Montant |
Betrag |
|
Gleitkommazahlen |
13 |
Sens |
Kann „C“ für Haben oder „D“ für Soll sein |
bestimmt |
Zeichen |
Implementierungsdetails¶
Die folgenden Buchhaltungseinheiten werden aus den FEC-Dateien importiert: Konten, Journale, Partner, und Buchungen.
Unser Modul bestimmt die Codierung, das Zeilenabschlusszeichen und das Trennzeichen, die in der Datei verwendet werden.
Anschließend wird geprüft, ob jede Zeile die richtige Anzahl von Feldern hat, die der Kopfzeile entsprechen.
Wenn die Prüfung erfolgreich ist, wird die Datei vollständig gelesen, im Speicher gehalten und gescannt. Die Buchhaltungseinheiten werden nacheinander in der folgenden Reihenfolge importiert.
Konten¶
Jeder Buchungsposten ist mit einem Konto verbunden, das durch das Feld CompteNum
bestimmt werden sollte.
Code-Abgleich¶
Sollte ein ähnlicher Kontocode bereits im System vorhanden sein, wird der vorhandene verwendet, anstatt einen neuen anzulegen.
Konten in Odoo haben in der Regel eine Anzahl von Ziffern, die für die steuerliche Lokalisierung vorgegeben sind. Da sich das FEC-Modul auf die französische Lokalisierung bezieht, ist die Standardanzahl der relevanten Ziffern 6.
Das bedeutet, dass bei den Kontocodes die nachstehenden Nullen rechts abgeschnitten werden und dass der Vergleich zwischen den Kontocodes in der FEC-Datei und den bereits in Odoo vorhandenen nur für die ersten sechs Ziffern der Codes durchgeführt wird.
Example
Der Kontocode 65800000
in der Datei wird mit einem bestehenden Konto 658000
in Odoo abgeglichen, und dieses Konto wird verwendet, anstatt ein neues zu erstellen.
Abstimmbare Kennzeichnung¶
Ein Konto ist technisch gesehen als abstimmbar gekennzeichnet, wenn in der ersten Zeile, in der es erscheint, das Feld EcritureLet
ausgefüllt ist, da dieses Kennzeichen bedeutet, dass der Buchungsposten mit einem anderen abgestimmt wird.
Bemerkung
Für den Fall, dass dieses Feld in der Zeile nicht ausgefüllt ist, die Buchung aber dennoch mit einer noch nicht erfassten Zahlung abgestimmt werden muss, ist dies kein Problem. Das Konto wird als abstimmbar gekennzeichnet, sobald der Import der Buchungszeilen dies erfordert.
Kontotyp und Vorlagenabgleich¶
Da der Typ des Kontos im FEC-Format nicht angegeben ist, werden neue Konten mit dem Standardtyp Umlaufvermögen erstellt und dann am Ende des Importvorgangs mit den installierten Kontenplanvorlagen abgeglichen. Auch die Kennzeichnung Abstimmen wird auf diese Weise berechnet.
Der Abgleich erfolgt mit den am weitesten links stehenden Ziffern, zuerst mit allen Ziffern, dann mit 3, dann mit 2.
Example
Name |
Code |
Vollständiger Vergleich |
3-Ziffern-Vergleich |
2-Ziffern-Vergleich |
---|---|---|---|---|
Vorlage |
|
|
|
|
CompteNum |
|
|
|
|
Ergebnis |
Gefundene abgleichen |
Der Typ des Kontos wird dann gemäß der Kontovorlage als zahlbar und abstimmbar gekennzeichnet.
Journale¶
Die Journale werden auch mit den bereits in Odoo vorhandenen Journalen abgeglichen, um Duplikate zu vermeiden, auch im Falle des Imports mehrerer FEC-Dateien.
Sollte ein ähnlicher Journalcode bereits im System vorhanden sein, wird der vorhandene verwendet, anstatt einen neuen anzulegen.
Bei neuen Journalen wird dem Namen die Zeichenfolge FEC-
vorangestellt.
Example
ACHATS
-> FEC-ACHATS
Die Journale werden nicht archiviert, der Benutzer kann mit ihnen umgehen, wie er möchte.
Bestimmung des Journaltyps¶
Der Journaltyp ist ebenfalls nicht im Format angegeben (wie in den Konten) und wird daher zunächst mit dem Standardtyp Allgemein
erstellt.
Am Ende des Importvorgangs wird der Typ gemäß diesen Regeln in Bezug auf verbundene Buchungen und Konten bestimmt:
Bank
: Buchungen in diesen Journalen haben immer eine Zeile (Soll oder Haben), die sich auf ein Liquiditätskonto auswirkt.Bargeld
/Bank
können vertauscht werden, also wirdBank
überall gesetzt, wenn diese Bedingung erfüllt ist.Verkauf
: Die Buchungen in diesen Journalen haben meist Soll-Zeilen auf Debitorenkonten und Haben-Zeilen auf Steuerertragskonten.Buchungszeilen für Verkaufserstattungen werden Haben/Soll umgewandelt.Einkauf
: Die Buchungen in diesen Journalen haben meist Haben-Zeilen auf Kreditorenkonten und Soll-Zeilen auf Aufwandskonten.Buchungszeilen für Einkaufserstattungen werden Haben/Soll umgewandelt.Allgemein
: für alles andere.
Bemerkung
Für die Identifizierung des Journaltyps sind mindestens drei Buchungen erforderlich.
Ein Schwellenwert von 70 % der Buchungen muss einem Kriterium entsprechen, damit ein Journaltyp bestimmt werden kann.
Example
Angenommen, wir analysieren die Buchungen, die eine bestimmte journal_id
teilen.
Buchungen |
Anzahl |
Prozentsatz |
---|---|---|
die eine Verkaufskontozeile und keine Einkaufskontozeile haben |
0 |
0 |
die eine Einkaufskontozeile und keine Verkaufskontozeile haben |
1 |
25 % |
die eine Liquiditätskontozeile haben |
3 |
75 % |
Gesamt |
4 |
100 % |
Der Typ
des Journals wäre Bank
, da der Prozentsatz der Bankbewegungen (75 %) den Schwellenwert (70 %) überschreitet.
Partner¶
Jeder Partner behält seine Referenz
aus dem Feld CompAuxNum
.
Bemerkung
Diese Felder sind durchsuchbar, in Übereinstimmung mit früheren FEC-Importen auf der Seite des Buchhaltungsexperten für Steuer-/Prüfzwecke.
Tipp
Benutzer können Partner mit der Datenbereinigungsapp zusammenführen, wobei Lieferanten und Kunden oder ähnliche Partnereinträge vom Benutzer mithilfe des Systems, das sie nach ähnlichen Einträgen gruppiert, zusammengeführt werden können.
Buchungen¶
Die Einträge werden sofort nach der Einreichung gebucht und abgestimmt, wobei das Feld EcritureLet
für den Abgleich zwischen den Einträgen selbst verwendet wird.
Das Feld EcritureNum
steht für den Namen der Buchungen. Wir haben festgestellt, dass es manchmal nicht ausgefüllt wird. In diesem Fall wird das Feld PieceRef
verwendet.
Rundungsprobleme¶
Es gibt eine Rundungstoleranz mit einer währungsabhängigen Genauigkeit für Soll und Haben (d. h. 0,01 für EUR). Unter dieser Toleranz wird eine neue Zeile mit dem Namen Import-Rundungsdifferenz zu den Konten hinzugefügt:
658000
Charges diverses de gestion courante, for added debits758000
Produits divers de gestion courante, for added credits
Fehlende Buchungsbezeichnung¶
Sollte das Feld EcritureNum
nicht ausgefüllt sein, kann es auch passieren, dass das Feld PieceRef
ebenfalls nicht geeignet ist, die Buchungsbezeichnung zu bestimmen (sie kann als Referenz für eine Buchhaltungszeile verwendet werden), sodass es keine Möglichkeit gibt, herauszufinden, welche Zeilen in einer einzelnen Buchung gruppiert werden sollen, was die Erstellung ausgeglichener Buchungen effektiv behindert.
Ein letzter Versuch wird unternommen, indem alle Zeilen aus demselben Journal und Datum (JournalLib
, EcritureDate
) gruppiert werden. Sollte diese Gruppierung ausgeglichene Buchungen erzeugen (Summe(Haben) - Summe(Soll) = 0), dann erzeugt jede andere Kombination von Journal und Datum eine neue Buchung.
Example
ACH
+ 2021/05/01
–> neue Buchung auf Journal ACH
mit Name 20210501
.
Sollte dieser Versuch fehlschlagen, erhält der Benutzer eine Fehlermeldung mit allen Buchungszeilen, die angeblich unausgeglichen sind.
Partnerinformation¶
Wenn in einer Zeile die Partnerinformationen angegeben sind, werden diese Informationen in der Buchungszeile selbst kopiert, wenn das Zieljournal vom Typ Kreditoren oder Debitoren ist.
Export¶
Wenn Sie das französische steuerliche Buchhaltungspaket installiert haben, sollten Sie die FEC herunterladen können. Gehen Sie dazu zu .
Tipp
Wenn Sie das Untermenü FEC nicht sehen, gehen Sie zu
, entfernen Sie den Filter Apps, suchen Sie nach dem Modul Frankreich FEC und überprüfen Sie, ob es richtig installiert ist.Französische Buchhaltungsberichte¶
Wenn Sie die französische Buchhaltung installiert haben, haben Sie Zugang zu einigen spezifischen Buchhaltungsberichten für Frankreich:
Bilan comptable
Compte de résultats
Plan de Taxes France
Erhalten Sie die Zertifizierung zur Bekämpfung von Mehrwertsteuerbetrug mit Odoo¶
Am 1. Januar 2018 tritt in Frankreich und DOM-TOM ein neues Gesetz zur Betrugsbekämpfung in Kraft. Diese neue Gesetzgebung schreibt bestimmte Kriterien für die Unveränderbarkeit, Sicherheit, Speicherung und Archivierung von Verkaufsdaten vor. Diese gesetzlichen Anforderungen werden in Odoo ab Version 9 durch ein Modul und eine Konformitätsbescheinigung zum Download umgesetzt.
Ist mein Unternehmen verpflichtet, eine Betrugsbekämpfungssoftware zu verwenden?¶
Ihr Unternehmen ist verpflichtet, eine Software wie Odoo zur Betrugsbekämpfung zu verwenden (CGI Art. 286, I. 3° bis), wenn:
Sie in Frankreich oder einem DOM-TOM steuerpflichtig (nicht mehrwertsteuerbefreit) sind,
einige Ihrer Kunden Privatpersonen (B2C) sind.
Diese Regel gilt für jede Unternehmensgröße. Selbstständige Unternehmer sind von der Mehrwertsteuer befreit und daher nicht betroffen.
Mit Odoo zertifiziert werden¶
Es ist sehr einfach, mit Odoo konform zu werden.
Ihr Unternehmen wird von der Steuerverwaltung aufgefordert, ein Konformitätszertifikat auszustellen, das bescheinigt, dass Ihre Software die Rechtsvorschriften zur Betrugsbekämpfung erfüllt. Dieses Zertifikat wird von Odoo SA für Benutzer von Odoo Enterprise hier ausgestellt. Wenn Sie Odoo Community verwenden, sollten Sie ein Upgrade auf Odoo Enterprise durchführen oder Ihren Odoo-Dienstleister kontaktieren.
Bei Nichteinhaltung der Vorschriften riskiert Ihr Unternehmen ein Bußgeld in Höhe von 7.500 €.
Um die Zertifizierung zu erhalten, führen Sie einfach die folgenden Schritte aus:
Wenn Sie Odoo Kassensystem verwenden, installieren Sie das Modul Frankreich - Anti-Steuerbetrugszertifizierung für Kassensystem (CGI 286 I-3 bis), indem Sie zu gehen, den Filter Apps entfernen, dann nach l10n_fr_pos_cert suchen und das Modul installieren.
Vergewissern Sie sich, dass für Ihr Unternehmen ein Land eingestellt ist, sonst werden Ihre Einträge für die Unveränderbarkeitsprüfung nicht verschlüsselt. Um die Daten Ihres Unternehmens zu bearbeiten, gehen Sie zu
. Wählen Sie ein Land aus der Liste aus; legen Sie kein neues Land an.Laden Sie die obligatorische Konformitätsbescheinigung von Odoo SA hier herunter.
Bemerkung
Um das Modul in einem System zu installieren, das vor dem 18. Dezember 2017 erstellt wurde, müssen Sie die Modulliste aktualisieren. Um dies zu tun, aktivieren Sie den Entwicklermodus. Gehen Sie dann zum Menü Apps und drücken Sie Modulliste aktualisieren im oberen Menü.
Wenn Sie Odoo On-premise nutzen, müssen Sie Ihre Installation aktualisieren und Ihren Server vorher neu starten.
Wenn Sie die ursprüngliche Version des Betrugsbekämpfungsmoduls (vor dem 18. Dezember 2017) installiert haben, müssen Sie es aktualisieren. Der Name des Moduls war Frankreich - Buchhaltung - Zertifiziert CGI 286 I-3 bis. Nach einer Aktualisierung der Modulliste suchen Sie das aktualisierte Modul in Apps, wählen es aus und klicken auf Upgrade. Stellen Sie schließlich sicher, dass das folgende Modul l10n_fr_sale_closing installiert ist.
Funktionen zur Betrugsbekämpfung¶
Das Betrugsbekämpfungsmodul bietet die folgenden Funktionen:
Unveränderlichkeit: Deaktivierung aller Möglichkeiten zum Stornieren oder Ändern der Eckdaten von Kassenaufträgen, Rechnungen und Journalbuchungen;
Sicherheit: Verkettungsalgorithmus zur Überprüfung der Unveränderbarkeit;
Speicherung: automatische Verkaufsabschlüsse mit Berechnung von Perioden- und Kumulativsummen (täglich, monatlich, jährlich).
Unveränderlichkeit¶
Alle Möglichkeiten zur Stornierung und Änderung der Schlüsseldaten von bezahlten Kassenaufträgen, bestätigten Rechnungen und Journalbuchungen sind deaktiviert, wenn das Unternehmen in Frankreich oder in einem DOM-TOM ansässig ist.
Bemerkung
Wenn Sie eine Umgebung mit mehreren Unternehmen betreiben, sind nur die Dokumente dieser Unternehmen betroffen.
Sicherheit¶
Um die Unveränderlichkeit zu gewährleisten, wird jeder Auftrag oder jede Journalbuchung bei der Validierung verschlüsselt. Diese Nummer (oder Hash) wird sowohl aus den Schlüsseldaten des Dokuments als auch aus dem Hash der Vorgängerdokumente berechnet.
Das Modul führt eine Schnittstelle zur Prüfung der Unveränderlichkeit von Daten ein. Wenn ein Dokument nach seiner Validierung verändert wird, schlägt der Test fehl. Der Algorithmus berechnet alle Hashes neu und vergleicht sie mit den ursprünglichen Hashes. Im Falle eines Fehlschlags zeigt das System das erste beschädigte Dokument an, das im System gespeichert ist.
Benutzer mit Zugriffsrechten Manager können die Unveränderlichkeitsprüfung starten. Für Kassenaufträge gehen Sie zu
. Für Rechnungen oder Journalbuchungen gehen Sie zu .Speicherung¶
Das System verarbeitet auch automatische Verkaufsabschlüsse auf täglicher, monatlicher und jährlicher Basis. Solche Abschlüsse berechnen eindeutig die Verkaufssumme des Zeitraums sowie die kumulierten Gesamtsummen ab dem allerersten im System erfassten Verkaufseintrag.
Abschlüsse finden Sie im Menü Französische Kontoauszüge der Apps Kassensystem, Rechnungsstellung und Buchhaltung.
Bemerkung
Abschlüsse berechnen die Summen für Journalbuchungen von Verkaufsjournalen (Journaltyp = Verkauf).
In Umgebungen mit mehreren Unternehmen werden solche Abschlüsse nach Unternehmen durchgeführt.
Kassenaufträge werden beim Abschluss der Kassensitzung als Journalbuchungen gebucht. Das Schließen einer Kassensitzung kann jederzeit erfolgen. Um die Benutzer zu veranlassen, dies täglich zu tun, verhindert das Modul die Wiederaufnahme einer Sitzung, die vor mehr als 24 Stunden geöffnet wurde. Eine solche Sitzung muss vor dem erneuten Verkauf geschlossen werden.
Die Gesamtsumme einer Periode wird aus allen Journalbuchungen berechnet, die nach dem vorherigen Abschluss desselben Typs gebucht wurden, unabhängig von ihrem Buchungsdatum. Wenn Sie eine neue Verkaufstransaktion für eine bereits abgeschlossene Periode erfassen, wird sie im nächsten Abschluss gezählt.
Tipp
Zu Test- und Prüfungszwecken können solche Abschlüsse manuell im Entwicklermodus erstellt werden.
Gehen Sie dann zu
Verantwortlichkeiten¶
Deinstallieren Sie das Modul nicht! Wenn Sie dies tun, werden die Hashes zurückgesetzt und keine Ihrer bisherigen Daten sind mehr garantiert unveränderbar.lich.
Die Benutzer bleiben für ihre Odoo-Instanz verantwortlich und müssen sie mit der gebotenen Sorgfalt nutzen. Es ist nicht gestattet, den Quellcode zu ändern, der die Unveränderlichkeit der Daten garantiert.
Odoo lehnt jegliche Verantwortung für Änderungen an den Funktionen des Moduls ab, die durch nicht von Odoo zertifizierte Apps von Drittanbietern verursacht werden.
Weitere Informationen¶
Weitere Informationen über diese Rechtsvorschriften finden Sie in den folgenden offiziellen Dokumenten: