summaryrefslogtreecommitdiff
path: root/addons/l10n_de
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/l10n_de
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/l10n_de')
-rw-r--r--addons/l10n_de/__init__.py4
-rw-r--r--addons/l10n_de/__manifest__.py28
-rw-r--r--addons/l10n_de/data/account_account_tags_data.xml850
-rw-r--r--addons/l10n_de/data/menuitem_data.xml4
-rw-r--r--addons/l10n_de/data/report_layout.xml11
-rw-r--r--addons/l10n_de/i18n/de.po299
-rw-r--r--addons/l10n_de/i18n/l10n_de.pot291
-rw-r--r--addons/l10n_de/models/__init__.py8
-rw-r--r--addons/l10n_de/models/account_move.py40
-rw-r--r--addons/l10n_de/models/base_document_layout.py26
-rw-r--r--addons/l10n_de/models/chart_template.py23
-rw-r--r--addons/l10n_de/models/datev.py57
-rw-r--r--addons/l10n_de/models/ir_actions_report.py10
-rw-r--r--addons/l10n_de/report/din5008_report.xml199
-rw-r--r--addons/l10n_de/static/description/icon.pngbin0 -> 233 bytes
-rw-r--r--addons/l10n_de/static/img/preview_din.pngbin0 -> 53823 bytes
-rw-r--r--addons/l10n_de/static/pdf/preview_din.pdfbin0 -> 42468 bytes
-rw-r--r--addons/l10n_de/static/src/scss/report_din5008.scss178
-rw-r--r--addons/l10n_de/views/account_view.xml13
19 files changed, 2041 insertions, 0 deletions
diff --git a/addons/l10n_de/__init__.py b/addons/l10n_de/__init__.py
new file mode 100644
index 00000000..e9917144
--- /dev/null
+++ b/addons/l10n_de/__init__.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from . import models \ No newline at end of file
diff --git a/addons/l10n_de/__manifest__.py b/addons/l10n_de/__manifest__.py
new file mode 100644
index 00000000..c55cecfb
--- /dev/null
+++ b/addons/l10n_de/__manifest__.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+{
+ 'name': 'Germany - Accounting',
+ 'author': 'openbig.org',
+ 'website': 'http://www.openbig.org',
+ 'category': 'Accounting/Localizations',
+ 'description': """
+Dieses Modul beinhaltet einen deutschen Kontenrahmen basierend auf dem SKR03.
+==============================================================================
+
+German accounting chart and localization.
+ """,
+ 'depends': [
+ 'account',
+ 'base_iban',
+ 'base_vat',
+ ],
+ 'data': [
+ 'data/account_account_tags_data.xml',
+ 'data/menuitem_data.xml',
+ 'views/account_view.xml',
+ 'report/din5008_report.xml',
+ 'data/report_layout.xml',
+ ],
+ 'license': 'LGPL-3',
+}
diff --git a/addons/l10n_de/data/account_account_tags_data.xml b/addons/l10n_de/data/account_account_tags_data.xml
new file mode 100644
index 00000000..d21d4844
--- /dev/null
+++ b/addons/l10n_de/data/account_account_tags_data.xml
@@ -0,0 +1,850 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <record id="tax_report" model="account.tax.report">
+ <field name="name">Tax Report</field>
+ <field name="country_id" ref="base.de"/>
+ </record>
+
+ <!-- First level, one for base, one for tax -->
+ <record id="tax_report_de_tag_01" model="account.tax.report.line">
+ <field name="name">Bemessungsgrundlage</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ </record>
+ <record id="tax_report_de_tag_02" model="account.tax.report.line">
+ <field name="name">Steuer</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ </record>
+
+
+ <!-- BASE -->
+ <record id="tax_report_de_tag_17" model="account.tax.report.line">
+ <field name="name">I. Anmeldung der Umsatzsteuer-Vorauszahlung (zeile 17)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tag_01"/>
+ </record>
+
+ <!-- Row 18 - 31 - 37 - 46 -->
+
+ <record id="tax_report_de_tag_18" model="account.tax.report.line">
+ <field name="name">Lieferungen und sonstige Leistungen (zeile 18)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tag_17"/>
+ </record>
+ <record id="tax_report_de_tag_31" model="account.tax.report.line">
+ <field name="name">Innergemeinschaftliche Erwerbe (zeile 31)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tag_17"/>
+ </record>
+ <record id="tax_report_de_tag_37" model="account.tax.report.line">
+ <field name="name">Ergänzende Angaben zu Umsätzen (zeile 37)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">3</field>
+ <field name="parent_id" ref="tax_report_de_tag_17"/>
+ </record>
+ <record id="tax_report_de_tag_46" model="account.tax.report.line">
+ <field name="name">Leistungsempfänger als Steuerschuldner (zeile 46)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">4</field>
+ <field name="parent_id" ref="tax_report_de_tag_17"/>
+ </record>
+
+ <!-- Row 19 - 24 - 25 -->
+
+ <record id="tax_report_de_tag_19" model="account.tax.report.line">
+ <field name="name">Steuerfreie Umsätze mit Vorsteuerabzug (zeile 19)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tag_18"/>
+ </record>
+ <record id="tax_report_de_tag_24" model="account.tax.report.line">
+ <field name="name">48. Steuerfreie Umsätze ohne Vorsteuerabzug (zeile 24)</field>
+ <field name="tag_name">48</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tag_18"/>
+ <field name="code">48</field>
+ </record>
+ <record id="tax_report_de_tag_25" model="account.tax.report.line">
+ <field name="name">Steuerpflichtige Umsätze (zeile 25)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">3</field>
+ <field name="parent_id" ref="tax_report_de_tag_18"/>
+ </record>
+
+
+ <record id="tax_report_de_tag_41" model="account.tax.report.line">
+ <field name="name">41. an Abnehmer mit USt-IdNr (zeile 20)</field>
+ <field name="tag_name">41</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tag_19"/>
+ <field name="code">41</field>
+ </record>
+ <record id="tax_report_de_tag_44" model="account.tax.report.line">
+ <field name="name">44. neuer Fahrzeuge an Abnehmer ohne USt-IdNr (zeile 21)</field>
+ <field name="tag_name">44</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tag_19"/>
+ <field name="code">44</field>
+ </record>
+ <record id="tax_report_de_tag_49" model="account.tax.report.line">
+ <field name="name">49. neuer Fahrzeuge außerhalb eines Unternehmens (zeile 22)</field>
+ <field name="tag_name">49</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">3</field>
+ <field name="parent_id" ref="tax_report_de_tag_19"/>
+ <field name="code">49</field>
+ </record>
+ <record id="tax_report_de_tag_43" model="account.tax.report.line">
+ <field name="name">43. Weitere steuerfreie Umsätze mit Vorsteuerabzug (zeile 23)</field>
+ <field name="tag_name">43</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">4</field>
+ <field name="parent_id" ref="tax_report_de_tag_19"/>
+ <field name="code">43</field>
+ </record>
+
+ <record id="tax_report_de_tag_81" model="account.tax.report.line">
+ <field name="name">81. zum Steuersatz von 19 % (zeile 26)</field>
+ <field name="tag_name">81_BASE</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tag_25"/>
+ </record>
+ <record id="tax_report_de_tag_86" model="account.tax.report.line">
+ <field name="name">86. zum Steuersatz von 7 % (zeile 27)</field>
+ <field name="tag_name">86_BASE</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tag_25"/>
+ </record>
+ <record id="tax_report_de_tag_35" model="account.tax.report.line">
+ <field name="name">35. zu anderen Steuersätzen (zeile 28)</field>
+ <field name="tag_name">35</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tag_25"/>
+ <field name="code">35</field>
+ </record>
+ <record id="tax_report_de_tag_77" model="account.tax.report.line">
+ <field name="name">77. Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an Abnehmer mit USt-IdNr. (zeile 29)</field>
+ <field name="tag_name">77</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">4</field>
+ <field name="parent_id" ref="tax_report_de_tag_25"/>
+ <field name="code">77</field>
+ </record>
+ <record id="tax_report_de_tag_76" model="account.tax.report.line">
+ <field name="name">76. Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (zeile 30)</field>
+ <field name="tag_name">76</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">5</field>
+ <field name="parent_id" ref="tax_report_de_tag_25"/>
+ <field name="code">76</field>
+ </record>
+
+
+ <record id="tax_report_de_tag_91" model="account.tax.report.line">
+ <field name="name">91. Steuerfreie innergemeinschaftliche Erwerbe (zeile 32)</field>
+ <field name="tag_name">91</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tag_31"/>
+ <field name="code">91</field>
+ </record>
+ <record id="tax_report_de_tag_89" model="account.tax.report.line">
+ <field name="name">89. Steuerpflichtige innergemeinschaftliche Erwerbe zum Steuersatz von 19 % (zeile 33)</field>
+ <field name="tag_name">89_BASE</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tag_31"/>
+ </record>
+ <record id="tax_report_de_tag_93" model="account.tax.report.line">
+ <field name="name">93. zum Steuersatz von 7 % (zeile 34)</field>
+ <field name="tag_name">93_BASE</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">3</field>
+ <field name="parent_id" ref="tax_report_de_tag_31"/>
+ </record>
+ <record id="tax_report_de_tag_95" model="account.tax.report.line">
+ <field name="name">95. zu anderen Steuersätzen (zeile 35)</field>
+ <field name="tag_name">95</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">4</field>
+ <field name="parent_id" ref="tax_report_de_tag_31"/>
+ <field name="code">95</field>
+ </record>
+ <record id="tax_report_de_tag_94" model="account.tax.report.line">
+ <field name="name">94. neuer Fahrzeuge von Lieferern ohne (zeile 36)</field>
+ <field name="tag_name">94</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">5</field>
+ <field name="parent_id" ref="tax_report_de_tag_31"/>
+ <field name="code">94</field>
+ </record>
+
+
+ <record id="tax_report_de_tag_42" model="account.tax.report.line">
+ <field name="name">42. Dreiecksgeschäften (zeile 38)</field>
+ <field name="tag_name">42</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tag_37"/>
+ <field name="code">42</field>
+ </record>
+ <record id="tax_report_de_tag_68" model="account.tax.report.line">
+ <field name="name">68. Steuerpflichtige Umsätze, für die der Leistungsempfänger die Steuer nach § 13b Abs. 5 Satz 1 i.V.m. Abs. 2 Nr. 10 UStG schuldet (zeile 39)</field>
+ <field name="tag_name">68</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tag_37"/>
+ <field name="code">68</field>
+ </record>
+ <record id="tax_report_de_tag_60" model="account.tax.report.line">
+ <field name="name">60. Übrige steuerpflichtige Umsätze, für die der Leistungsempfänger die Steuer nach § 13b Abs. 5 UStG schuldet (zeile 40)</field>
+ <field name="tag_name">60</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">3</field>
+ <field name="parent_id" ref="tax_report_de_tag_37"/>
+ <field name="code">60</field>
+ </record>
+ <record id="tax_report_de_tag_21" model="account.tax.report.line">
+ <field name="name">21. Nicht steuerbare sonstige Leistungen (zeile 41)</field>
+ <field name="tag_name">21</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">4</field>
+ <field name="parent_id" ref="tax_report_de_tag_37"/>
+ <field name="code">21</field>
+ </record>
+ <record id="tax_report_de_tag_45" model="account.tax.report.line">
+ <field name="name">45. Übrige nicht steuerbare Umsätze (zeile 42)</field>
+ <field name="tag_name">45_BASE</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">5</field>
+ <field name="parent_id" ref="tax_report_de_tag_37"/>
+ </record>
+
+
+ <record id="tax_report_de_tag_48" model="account.tax.report.line">
+ <field name="name">46. Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (zeile 48)</field>
+ <field name="tag_name">46</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tag_46"/>
+ <field name="code">46</field>
+ </record>
+ <record id="tax_report_de_tag_52" model="account.tax.report.line">
+ <field name="name">52. Andere Leistungen eines im Ausland ansässigen Unternehmers (zeile 49)</field>
+ <field name="tag_name">52</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tag_46"/>
+ <field name="code">52</field>
+ </record>
+ <record id="tax_report_de_tag_73" model="account.tax.report.line">
+ <field name="name">73. Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter das GrEStG fallen (zeile 50)</field>
+ <field name="tag_name">73</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">3</field>
+ <field name="parent_id" ref="tax_report_de_tag_46"/>
+ <field name="code">73</field>
+ </record>
+ <record id="tax_report_de_tag_78" model="account.tax.report.line">
+ <field name="name">78. Lieferungen von Mobilfunkgeräten, Tablet-Computern, Spielekonsolen und integrierten Schaltkreisen (zeile 51)</field>
+ <field name="tag_name">78</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">4</field>
+ <field name="parent_id" ref="tax_report_de_tag_46"/>
+ <field name="code">78</field>
+ </record>
+ <record id="tax_report_de_tag_84" model="account.tax.report.line">
+ <field name="name">84. Andere Leistungen (zeile 52)</field>
+ <field name="tag_name">84</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">5</field>
+ <field name="parent_id" ref="tax_report_de_tag_46"/>
+ <field name="code">84</field>
+ </record>
+
+
+ <!-- TAX -->
+
+ <record id="tax_report_de_tax_tag_17" model="account.tax.report.line">
+ <field name="name">I. Anmeldung der Umsatzsteuer-Vorauszahlung (zeile 17)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tag_02"/>
+ </record>
+
+
+ <!-- Row 18 - 31 - 37 - 46 - 55 - 64 - 66 -->
+ <record id="tax_report_de_tax_tag_18" model="account.tax.report.line">
+ <field name="name">Lieferungen und sonstige Leistungen (zeile 18)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_17"/>
+ </record>
+ <record id="tax_report_de_tax_tag_31" model="account.tax.report.line">
+ <field name="name">Innergemeinschaftliche Erwerbe (zeile 31)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_17"/>
+ </record>
+ <record id="tax_report_de_tax_tag_37" model="account.tax.report.line">
+ <field name="name">Erganzende Angaben zu Umsatzen (zeile 37)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">3</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_17"/>
+ </record>
+ <record id="tax_report_de_tax_tag_46" model="account.tax.report.line">
+ <field name="name">Leistungsempfanger als Steuerschuldner (zeile 46)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">4</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_17"/>
+ </record>
+ <record id="tax_report_de_tax_tag_55" model="account.tax.report.line">
+ <field name="name">Abziehbare Vorsteuerbetrage (zeile 55)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">5</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_17"/>
+ </record>
+ <record id="tax_report_de_tax_tag_64" model="account.tax.report.line">
+ <field name="name">Andere Steuerbetrage (zeile 64)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">6</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_17"/>
+ </record>
+ <record id="tax_report_de_tax_tag_66" model="account.tax.report.line">
+ <field name="name">Umsatzsteuer-Vorauszahlung/Uberschuss (zeile 66)</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">7</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_17"/>
+ </record>
+
+ <!-- Row 26 - 27 - 28 - 30 -->
+ <record id="tax_report_de_tag_26" model="account.tax.report.line">
+ <field name="name">81. zum Steuersatz von 19 % (zeile 26)</field>
+ <field name="tag_name">81_TAX</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_18"/>
+ <field name="code">81</field>
+ </record>
+ <record id="tax_report_de_tag_27" model="account.tax.report.line">
+ <field name="name">86. zum Steuersatz von 7 % (zeile 27)</field>
+ <field name="tag_name">86_TAX</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_18"/>
+ <field name="code">86</field>
+ </record>
+ <record id="tax_report_de_tag_36" model="account.tax.report.line">
+ <field name="name">36. zu anderen Steuersatzen (zeile 28)</field>
+ <field name="tag_name">36</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">3</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_18"/>
+ <field name="code">36</field>
+ </record>
+ <record id="tax_report_de_tag_80" model="account.tax.report.line">
+ <field name="name">80. Umsatze, fur die eine Steuer nach § 24 UStG zu entrichten ist (zeile 30)</field>
+ <field name="tag_name">80</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">4</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_18"/>
+ <field name="code">80</field>
+ </record>
+
+ <!-- Row 33 - 34 - 35 - 36 -->
+ <record id="tax_report_de_tag_33" model="account.tax.report.line">
+ <field name="name">89. zum Steuersatz von 19 % (zeile 33)</field>
+ <field name="tag_name">89_TAX</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_31"/>
+ <field name="code">89</field>
+ </record>
+ <record id="tax_report_de_tag_34" model="account.tax.report.line">
+ <field name="name">93. zum Steuersatz von 7 % (zeile 34)</field>
+ <field name="tag_name">93_TAX</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_31"/>
+ <field name="code">93</field>
+ </record>
+ <record id="tax_report_de_tag_98" model="account.tax.report.line">
+ <field name="name">98. zu anderen Steuersatzen (zeile 35)</field>
+ <field name="tag_name">98</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">3</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_31"/>
+ <field name="code">98</field>
+ </record>
+ <record id="tax_report_de_tag_96" model="account.tax.report.line">
+ <field name="name">96. neuer Fahrzeuge von Lieferern ohne USt-IdNr. zum allgemeinen Steuersatz (zeile 36)</field>
+ <field name="tag_name">96</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">4</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_31"/>
+ <field name="code">96</field>
+ </record>
+
+ <!-- Row 45 -->
+ <record id="tax_report_de_tax_tag_45" model="account.tax.report.line">
+ <field name="name">45. Ubertrag (zeile 45)</field>
+ <field name="tag_name">45_TAX</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_37"/>
+ <field name="code">45</field>
+ </record>
+
+ <!-- Row 48 - 49 - 50 - 51 - 52 - 53 -->
+ <record id="tax_report_de_tag_47" model="account.tax.report.line">
+ <field name="name">47. Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebietansässigen Unternehmers (zeile 48)</field>
+ <field name="tag_name">47</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_46"/>
+ <field name="code">47</field>
+ </record>
+ <record id="tax_report_de_tag_53" model="account.tax.report.line">
+ <field name="name">53. Andere Leistungen eines im Ausland ansässigen Unternehmers (zeile 49)</field>
+ <field name="tag_name">53</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_46"/>
+ <field name="code">53</field>
+ </record>
+ <record id="tax_report_de_tag_74" model="account.tax.report.line">
+ <field name="name">74. Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter das GrEStG fallen (zeile 50)</field>
+ <field name="tag_name">74</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">3</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_46"/>
+ <field name="code">74</field>
+ </record>
+ <record id="tax_report_de_tag_79" model="account.tax.report.line">
+ <field name="name">79. Lieferungen von Mobilfunkgeräten, Tablet-Computern, Spielekonsolen und integrierten Schaltkreisen (zeile 51)</field>
+ <field name="tag_name">79</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">4</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_46"/>
+ <field name="code">79</field>
+ </record>
+ <record id="tax_report_de_tag_85" model="account.tax.report.line">
+ <field name="name">85. Andere Leistungen (zeile 52)</field>
+ <field name="tag_name">85</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">5</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_46"/>
+ <field name="code">85</field>
+ </record>
+ <record id="tax_report_de_tag_65" model="account.tax.report.line">
+ <field name="name">65. Steuer infolge Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen u. ä. wegen Steuersatzänderung (zeile 53)</field>
+ <field name="tag_name">65</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">6</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_46"/>
+ <field name="code">65</field>
+ </record>
+
+ <!-- Row 56 - 57 - 58 - 59 - 60 - 61 - 62 -->
+ <record id="tax_report_de_tag_66" model="account.tax.report.line">
+ <field name="name">66. Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (zeile 56)</field>
+ <field name="tag_name">66</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_55"/>
+ <field name="code">66</field>
+ </record>
+ <record id="tax_report_de_tag_61" model="account.tax.report.line">
+ <field name="name">61. Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (zeile 57)</field>
+ <field name="tag_name">61</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_55"/>
+ <field name="code">61</field>
+ </record>
+ <record id="tax_report_de_tag_62" model="account.tax.report.line">
+ <field name="name">62. Entstandene Einfuhrumsatzsteuer (zeile 58)</field>
+ <field name="tag_name">62</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">3</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_55"/>
+ <field name="code">62</field>
+ </record>
+ <record id="tax_report_de_tag_67" model="account.tax.report.line">
+ <field name="name">67. Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (zeile 59)</field>
+ <field name="tag_name">67</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">4</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_55"/>
+ <field name="code">67</field>
+ </record>
+ <record id="tax_report_de_tag_63" model="account.tax.report.line">
+ <field name="name">63. Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (zeile 60)</field>
+ <field name="tag_name">63</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">5</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_55"/>
+ <field name="code">63</field>
+ </record>
+ <record id="tax_report_de_tag_64" model="account.tax.report.line">
+ <field name="name">64. Berichtigung des Vorsteuerabzugs (zeile 61)</field>
+ <field name="tag_name">64</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">6</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_55"/>
+ <field name="code">64</field>
+ </record>
+ <record id="tax_report_de_tag_59" model="account.tax.report.line">
+ <field name="name">59. Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (zeile 62)</field>
+ <field name="tag_name">59</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">7</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_55"/>
+ <field name="code">59</field>
+ </record>
+
+ <!-- Row 65 -->
+ <record id="tax_report_de_tag_69" model="account.tax.report.line">
+ <field name="name">69. In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (zeile 65)</field>
+ <field name="tag_name">69</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_64"/>
+ <field name="code">69</field>
+ </record>
+
+ <!-- Row 67 - 68 -->
+ <record id="tax_report_de_tag_39" model="account.tax.report.line">
+ <field name="name">39. Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (zeile 67)</field>
+ <field name="tag_name">39</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">1</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_66"/>
+ <field name="code">39</field>
+ </record>
+ <record id="tax_report_de_tag_83" model="account.tax.report.line">
+ <field name="name">83. Verbleibende Umsatzsteuer-Vorauszahlung (zeile 68)</field>
+ <field name="tag_name">83</field>
+ <field name="report_id" ref="tax_report"/>
+ <field name="sequence">2</field>
+ <field name="parent_id" ref="tax_report_de_tax_tag_66"/>
+ <field name="code">83</field>
+ </record>
+
+ <record id="tag_de_intracom_community_delivery" model="account.account.tag">
+ <field name="name">Innergemeinschaftliche Lieferung</field>
+ <field name="applicability">taxes</field>
+ <field name="country_id" ref="base.de"/>
+ </record>
+ <record id="tag_de_intracom_community_supplies" model="account.account.tag">
+ <field name="name">Sonstige Leistungen</field>
+ <field name="applicability">taxes</field>
+ <field name="country_id" ref="base.de"/>
+ </record>
+ <record id="tag_de_intracom_ABC" model="account.account.tag">
+ <field name="name">Dreiecksgeschäfte</field>
+ <field name="applicability">taxes</field>
+ <field name="country_id" ref="base.de"/>
+ </record>
+
+ <!-- Profit and loss tags -->
+ <record id="tag_de_pl_01" model="account.account.tag">
+ <field name="name">G&amp;V: 1-Umsatzerlöse</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_02" model="account.account.tag">
+ <field name="name">G&amp;V: 2-Erhöhung oder Verminderung des Bestands an fertigen und unfertigen Erzeugnissen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_03" model="account.account.tag">
+ <field name="name">G&amp;V: 3-Andere aktivierte Eigenleistungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_04" model="account.account.tag">
+ <field name="name">G&amp;V: 4-Sonstige betrieliche Erträge</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_05" model="account.account.tag">
+ <field name="name">G&amp;V: 5-Materialaufwand</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_06" model="account.account.tag">
+ <field name="name">G&amp;V: 6-Personalaufwand</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_07" model="account.account.tag">
+ <field name="name">G&amp;V: 7-Abschreibungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_08_1" model="account.account.tag">
+ <field name="name">G&amp;V: 8.1-Raumkosten</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_08_2" model="account.account.tag">
+ <field name="name">G&amp;V: 8.2-Versicherungen, Beiträge und Abgaben</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_08_3" model="account.account.tag">
+ <field name="name">G&amp;V: 8.3-Reparaturen und Instandhaltungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_08_4" model="account.account.tag">
+ <field name="name">G&amp;V: 8.4-Fahrzeugkosten</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_08_5" model="account.account.tag">
+ <field name="name">G&amp;V: 8.5-Werbe- und Reisekosten</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_08_6" model="account.account.tag">
+ <field name="name">G&amp;V: 8.6-Kosten der Warenabgabe</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_08_7" model="account.account.tag">
+ <field name="name">G&amp;V: 8.7-verschiedene betriebliche Kosten</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_09" model="account.account.tag">
+ <field name="name">G&amp;V: 9-Erträge aus Beteiligungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_10" model="account.account.tag">
+ <field name="name">G&amp;V: 10-Erträge aus anderen Wertpapieren und Ausleihungen des Finanzanlagevermögens</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_11" model="account.account.tag">
+ <field name="name">G&amp;V: 11-Sonstige Zinsen und ähnliche Erträge</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_12" model="account.account.tag">
+ <field name="name">G&amp;V: 12-Abschreibungen auf Finanzanlagen und auf Wertpapiere des Umlaufvermögens</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_13" model="account.account.tag">
+ <field name="name">G&amp;V: 13-Zinsen und ähnliche Aufwendungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_14" model="account.account.tag">
+ <field name="name">G&amp;V: 14-Steuern vom Einkommen und Ertrag</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_pl_15" model="account.account.tag">
+ <field name="name">G&amp;V: 15-Sonstige Steuern</field>
+ <field name="applicability">accounts</field>
+ </record>
+
+ <!-- Balance sheet tags -->
+ <record id="tag_de_asset_bs_A_I_1" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A I 1-Selbst geschaffene gewerbliche Schutzrechte und ähnliche Rechte und Werte</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_A_I_2" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A I 2-Konzessionen, Lizenzen und ähnliche Rechte und Werte</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_A_I_3" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A I 3-Geschäfts- oder Firmenwert</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_A_I_4" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A I 4-geleistete Anzahlungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_A_II_1" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A II 1-Grundstücke. grundstücksgleiche Rechte und Bauten</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_A_II_2" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A II 2-Technische Anlagen und Maschinen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_A_II_3" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A II 3-Andere Anlagen. Betriebs- und Geschäftsausstattung</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_A_II_4" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A II 4-Geleistete Anzahlungen und Anlagen im Bau</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_A_III_1" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A III 1-Anteile an verbundenen Unternehmen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_A_III_2" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A III 2-Ausleihungen an verbundene Unternehmen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_A_III_3" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A III 3-Beteiligungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_A_III_4" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A III 4-Ausleihungen an Unternehmen, mit denen ein Beteiligungsverhältnis besteht</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_A_III_5" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A III 5-Wertpapiere des Anlagevermögens</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_A_III_6" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: A III 6-sonstige Ausleihungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_B_I_1" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: B I 1-Roh-, Hilfs- und Betriebsstoffe</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_B_I_2" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: B I 2-Unfertige Erzeugnisse, unfertige Leistungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_B_I_3" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: B I 3-Fertige Erzeugnisse und Waren</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_B_I_4" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: B I 4-Geleistete Anzahlungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_B_II_1" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: B II 1-Forderungen aus Lieferungen und Leistungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_B_II_2" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: B II 2-Forderungen gegen verbundene Unternehmen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_B_II_3" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: B II 3-Forderungen gegen Unternehmen, mit denen ein Beteiligungsverhältnis besteht</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_B_II_4" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: B II 4-Sonstige Vermögensgegenstände</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_B_III_1" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: B III 1-Anteile an verbundenen Unternehmen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_B_III_2" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: B III 2-sonstige Wertpapiere</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_B_IV" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: B IV-Kassenbestand, Bundesbankguthaben, Guthaben bei Kreditinstituten und Schecks</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_C" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: C-Rechnungsabgrenzungsposten</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_D" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: D-Aktive latente Steuern</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_asset_bs_E" model="account.account.tag">
+ <field name="name">Bilanz-Aktiva: E-Aktiver Unterschiedsbetrag aus der Vermögensverrechnung</field>
+ <field name="applicability">accounts</field>
+ </record>
+
+ <record id="tag_de_liabilities_bs_A_I" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: A I-Gezeichnetes Kapital</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_A_II" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: A II-Kapitalrücklage</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_A_III_1" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: A III 1-Gesetzliche Rücklage</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_A_III_2" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: A III 2-Rücklage für Anteile an einem herrschenden oder mehrheitlich beteiligten Unternehmen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_A_III_3" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: A III 3-Satzungsmäßige Rücklagen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_A_III_4" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: A III 4-Andere Gewinnrücklagen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_A_IV" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: A IV-Gewinnvortrag/Verlustvortrag</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_A_V" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: A V-Jahresüberschuß/Jahresfehlbetrag</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_B" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: B Sonderposten mit Rücklageanteil</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_C_1" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: C 1-Rückstellungen für Pensionen und ähnliche Verpflichtungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_C_2" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: C 2-Steuerrückstellungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_C_3" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: C 3-Sonstige Rückstellungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_D_1" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: D 1-Anleihen, davon konvertibeln</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_D_2" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: D 2-Verbindlichkeiten gegenüber Kreditinstituten</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_D_3" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: D 3-Erhaltene Anzahlungen auf Bestellungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_D_4" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: D 4-Verbindlichkeiten aus Lieferungen und Leistungen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_D_5" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: D 5-Verbindlichkeiten aus der Annahme gezogener Wechsel und der Ausstellung eigener Wechsel</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_D_6" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: D 6-Verbindlichkeiten gegenüber verbundenen Unternehmen</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_D_7" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: D 7-Verbindlichkeiten gegenüber Unternehmen, mit denen ein Beteiligungsverhältnis besteht</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_D_8" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: D 8-Sonstige Verbindlichkeiten, davon aus Steuern, davon im Rahmen der sozialen Sicherheit</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_E" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: E-Rechnungsabgrenzungsposten</field>
+ <field name="applicability">accounts</field>
+ </record>
+ <record id="tag_de_liabilities_bs_F" model="account.account.tag">
+ <field name="name">Bilanz-Passiva: F-Passive latente Steuern</field>
+ <field name="applicability">accounts</field>
+ </record>
+
+</odoo>
diff --git a/addons/l10n_de/data/menuitem_data.xml b/addons/l10n_de/data/menuitem_data.xml
new file mode 100644
index 00000000..bcf3165a
--- /dev/null
+++ b/addons/l10n_de/data/menuitem_data.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <menuitem id="account_reports_de_statements_menu" name="Germany" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/>
+</odoo>
diff --git a/addons/l10n_de/data/report_layout.xml b/addons/l10n_de/data/report_layout.xml
new file mode 100644
index 00000000..ed0069c9
--- /dev/null
+++ b/addons/l10n_de/data/report_layout.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data>
+ <record id="report_layout_din5008" model="report.layout">
+ <field name="view_id" ref="l10n_de.external_layout_din5008"/>
+ <field name="image">/l10n_de/static/img/preview_din.png</field>
+ <field name="pdf">/l10n_de/static/pdf/preview_din.pdf</field>
+ <field name="name">DIN 5008</field>
+ </record>
+ </data>
+</odoo> \ No newline at end of file
diff --git a/addons/l10n_de/i18n/de.po b/addons/l10n_de/i18n/de.po
new file mode 100644
index 00000000..ecf72691
--- /dev/null
+++ b/addons/l10n_de/i18n/de.po
@@ -0,0 +1,299 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * l10n_de
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-06-30 07:07+0000\n"
+"PO-Revision-Date: 2021-07-29 13:09+0200\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.3\n"
+"Last-Translator: \n"
+"Language: de\n"
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.din5008_css
+msgid ""
+"&amp;.din_page {\n"
+" &amp;.header {\n"
+" .company_header {\n"
+" .name_container {\n"
+" color:"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,help:l10n_de.field_account_tax__l10n_de_datev_code
+msgid "2 digits code use by Datev"
+msgstr ""
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.din5008_css
+msgid ""
+";\n"
+" }\n"
+" }\n"
+" }\n"
+" h2 {\n"
+" color:"
+msgstr ""
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.din5008_css
+msgid ""
+";\n"
+" }\n"
+" }\n"
+" }\n"
+" &amp;.invoice_note {\n"
+" td {\n"
+" .address {\n"
+" &gt; span {\n"
+" color:"
+msgstr ""
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.din5008_css
+msgid ""
+";\n"
+" }\n"
+" .page {\n"
+" [name=invoice_line_table], "
+"[name=stock_move_table], .o_main_table {\n"
+" th {\n"
+" color:"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/datev.py:0
+#, python-format
+msgid ""
+"Account %s does not authorize to have tax %s specified on the "
+"line. Change the tax used in this invoice or "
+"remove all taxes from the account"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_account_chart_template
+msgid "Account Chart Template"
+msgstr "Kontenplan Vorlage"
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.external_layout_din5008
+msgid "BIC:"
+msgstr "BIC:"
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__bank_ids
+msgid "Bank Accounts"
+msgstr "Bankkonten"
+
+#. module: l10n_de
+#: model:ir.model.fields,help:l10n_de.field_base_document_layout__bank_ids
+msgid "Bank accounts related to this company"
+msgstr "Bankkonten mit Bezug zu dieser Firma"
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Cancelled Invoice"
+msgstr "Stornierte Rechnung"
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__city
+msgid "City"
+msgstr "Stadt"
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_base_document_layout
+msgid "Company Document Layout"
+msgstr "Geschäftsvorlagen Layout"
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__company_registry
+msgid "Company Registry"
+msgstr "Unternehmensregister"
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Credit Note"
+msgstr "Gutschrift"
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_account_chart_template__display_name
+#: model:ir.model.fields,field_description:l10n_de.field_account_move__display_name
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax__display_name
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax_template__display_name
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__display_name
+#: model:ir.model.fields,field_description:l10n_de.field_ir_actions_report__display_name
+#: model:ir.model.fields,field_description:l10n_de.field_product_template__display_name
+msgid "Display Name"
+msgstr "Anzeigename"
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Draft Invoice"
+msgstr "Rechnungsentwurf"
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#: code:addons/l10n_de/models/base_document_layout.py:0
+#, python-format
+msgid "Due Date"
+msgstr "Fälligkeitsdatum"
+
+#. module: l10n_de
+#: model:ir.ui.menu,name:l10n_de.account_reports_de_statements_menu
+msgid "Germany"
+msgstr "Deutschland"
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.external_layout_din5008
+msgid "HRB Nr:"
+msgstr "HRB Nr.:"
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.external_layout_din5008
+msgid "IBAN:"
+msgstr "IBAN:"
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_account_chart_template__id
+#: model:ir.model.fields,field_description:l10n_de.field_account_move__id
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax__id
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax_template__id
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__id
+#: model:ir.model.fields,field_description:l10n_de.field_ir_actions_report__id
+#: model:ir.model.fields,field_description:l10n_de.field_product_template__id
+msgid "ID"
+msgstr "ID"
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Invoice"
+msgstr "Rechnung"
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#: code:addons/l10n_de/models/base_document_layout.py:0
+#, python-format
+msgid "Invoice Date"
+msgstr "Rechnungsdatum"
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#: code:addons/l10n_de/models/base_document_layout.py:0
+#, python-format
+msgid "Invoice No."
+msgstr "Rechnungsnummer"
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_account_move
+msgid "Journal Entry"
+msgstr "Buchungseintrag"
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax__l10n_de_datev_code
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax_template__l10n_de_datev_code
+msgid "L10N De Datev Code"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_account_bank_statement_line__l10n_de_document_title
+#: model:ir.model.fields,field_description:l10n_de.field_account_move__l10n_de_document_title
+#: model:ir.model.fields,field_description:l10n_de.field_account_payment__l10n_de_document_title
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__l10n_de_document_title
+msgid "L10N De Document Title"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_account_bank_statement_line__l10n_de_template_data
+#: model:ir.model.fields,field_description:l10n_de.field_account_move__l10n_de_template_data
+#: model:ir.model.fields,field_description:l10n_de.field_account_payment__l10n_de_template_data
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__l10n_de_template_data
+msgid "L10N De Template Data"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_account_chart_template____last_update
+#: model:ir.model.fields,field_description:l10n_de.field_account_move____last_update
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax____last_update
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax_template____last_update
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout____last_update
+#: model:ir.model.fields,field_description:l10n_de.field_ir_actions_report____last_update
+#: model:ir.model.fields,field_description:l10n_de.field_product_template____last_update
+msgid "Last Modified on"
+msgstr "Zuletzt bearbeitet am"
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.external_layout_din5008
+msgid "Page: <span class=\"page\"/> of <span class=\"topage\"/>"
+msgstr "Seite: <span class=\"page\"/> von <span class=\"topage\"/>"
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_product_template
+msgid "Product Template"
+msgstr "Produktvorlage"
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#: code:addons/l10n_de/models/base_document_layout.py:0
+#, python-format
+msgid "Reference"
+msgstr "Referenz"
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_ir_actions_report
+msgid "Report Action"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Source"
+msgstr "Quelle"
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__street
+msgid "Street"
+msgstr "Straße"
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__street2
+msgid "Street2"
+msgstr "Straße 2"
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_account_tax
+msgid "Tax"
+msgstr "Steuer"
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_account_tax_template
+msgid "Templates for Taxes"
+msgstr "Steuervorlage"
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Vendor Bill"
+msgstr "Lieferantenrechnung"
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Vendor Credit Note"
+msgstr "Lieferantengutschrift"
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__zip
+msgid "Zip"
+msgstr "Postleitzahl"
diff --git a/addons/l10n_de/i18n/l10n_de.pot b/addons/l10n_de/i18n/l10n_de.pot
new file mode 100644
index 00000000..d4f3772f
--- /dev/null
+++ b/addons/l10n_de/i18n/l10n_de.pot
@@ -0,0 +1,291 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * l10n_de
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-07-22 09:50+0000\n"
+"PO-Revision-Date: 2021-07-22 09:50+0000\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.din5008_css
+msgid ""
+"&amp;.din_page {\n"
+" &amp;.header {\n"
+" .company_header {\n"
+" .name_container {\n"
+" color:"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,help:l10n_de.field_account_tax__l10n_de_datev_code
+msgid "2 digits code use by Datev"
+msgstr ""
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.din5008_css
+msgid ""
+";\n"
+" }\n"
+" }\n"
+" }\n"
+" h2 {\n"
+" color:"
+msgstr ""
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.din5008_css
+msgid ""
+";\n"
+" }\n"
+" }\n"
+" }\n"
+" &amp;.invoice_note {\n"
+" td {\n"
+" .address {\n"
+" &gt; span {\n"
+" color:"
+msgstr ""
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.din5008_css
+msgid ""
+";\n"
+" }\n"
+" .page {\n"
+" [name=invoice_line_table], [name=stock_move_table], .o_main_table {\n"
+" th {\n"
+" color:"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/datev.py:0
+#, python-format
+msgid ""
+"Account %s does not authorize to have tax %s specified on the line."
+" Change the tax used in this invoice or "
+"remove all taxes from the account"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_account_chart_template
+msgid "Account Chart Template"
+msgstr ""
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.external_layout_din5008
+msgid "BIC:"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__bank_ids
+msgid "Banks"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Cancelled Invoice"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__city
+msgid "City"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_base_document_layout
+msgid "Company Document Layout"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__company_registry
+msgid "Company Registry"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Credit Note"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_account_chart_template__display_name
+#: model:ir.model.fields,field_description:l10n_de.field_account_move__display_name
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax__display_name
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax_template__display_name
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__display_name
+#: model:ir.model.fields,field_description:l10n_de.field_ir_actions_report__display_name
+#: model:ir.model.fields,field_description:l10n_de.field_product_template__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Draft Invoice"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#: code:addons/l10n_de/models/base_document_layout.py:0
+#, python-format
+msgid "Due Date"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.ui.menu,name:l10n_de.account_reports_de_statements_menu
+msgid "Germany"
+msgstr ""
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.external_layout_din5008
+msgid "HRB Nr:"
+msgstr ""
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.external_layout_din5008
+msgid "IBAN:"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_account_chart_template__id
+#: model:ir.model.fields,field_description:l10n_de.field_account_move__id
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax__id
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax_template__id
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__id
+#: model:ir.model.fields,field_description:l10n_de.field_ir_actions_report__id
+#: model:ir.model.fields,field_description:l10n_de.field_product_template__id
+msgid "ID"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Invoice"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#: code:addons/l10n_de/models/base_document_layout.py:0
+#, python-format
+msgid "Invoice Date"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#: code:addons/l10n_de/models/base_document_layout.py:0
+#, python-format
+msgid "Invoice No."
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_account_move
+msgid "Journal Entry"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax__l10n_de_datev_code
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax_template__l10n_de_datev_code
+msgid "L10N De Datev Code"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_account_bank_statement_line__l10n_de_document_title
+#: model:ir.model.fields,field_description:l10n_de.field_account_move__l10n_de_document_title
+#: model:ir.model.fields,field_description:l10n_de.field_account_payment__l10n_de_document_title
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__l10n_de_document_title
+msgid "L10N De Document Title"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_account_bank_statement_line__l10n_de_template_data
+#: model:ir.model.fields,field_description:l10n_de.field_account_move__l10n_de_template_data
+#: model:ir.model.fields,field_description:l10n_de.field_account_payment__l10n_de_template_data
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__l10n_de_template_data
+msgid "L10N De Template Data"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_account_chart_template____last_update
+#: model:ir.model.fields,field_description:l10n_de.field_account_move____last_update
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax____last_update
+#: model:ir.model.fields,field_description:l10n_de.field_account_tax_template____last_update
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout____last_update
+#: model:ir.model.fields,field_description:l10n_de.field_ir_actions_report____last_update
+#: model:ir.model.fields,field_description:l10n_de.field_product_template____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: l10n_de
+#: model_terms:ir.ui.view,arch_db:l10n_de.external_layout_din5008
+msgid "Page: <span class=\"page\"/> of <span class=\"topage\"/>"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_product_template
+msgid "Product Template"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#: code:addons/l10n_de/models/base_document_layout.py:0
+#, python-format
+msgid "Reference"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_ir_actions_report
+msgid "Report Action"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Source"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__street
+msgid "Street"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__street2
+msgid "Street2"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_account_tax
+msgid "Tax"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model,name:l10n_de.model_account_tax_template
+msgid "Templates for Taxes"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Vendor Bill"
+msgstr ""
+
+#. module: l10n_de
+#: code:addons/l10n_de/models/account_move.py:0
+#, python-format
+msgid "Vendor Credit Note"
+msgstr ""
+
+#. module: l10n_de
+#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__zip
+msgid "Zip"
+msgstr ""
diff --git a/addons/l10n_de/models/__init__.py b/addons/l10n_de/models/__init__.py
new file mode 100644
index 00000000..f88e3df8
--- /dev/null
+++ b/addons/l10n_de/models/__init__.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from . import datev
+from . import base_document_layout
+from . import chart_template
+from . import ir_actions_report
+from . import account_move
diff --git a/addons/l10n_de/models/account_move.py b/addons/l10n_de/models/account_move.py
new file mode 100644
index 00000000..71ec4a0a
--- /dev/null
+++ b/addons/l10n_de/models/account_move.py
@@ -0,0 +1,40 @@
+from odoo import models, fields, _
+from odoo.tools import format_date
+
+
+class AccountMove(models.Model):
+ _inherit = 'account.move'
+
+ l10n_de_template_data = fields.Binary(compute='_compute_l10n_de_template_data')
+ l10n_de_document_title = fields.Char(compute='_compute_l10n_de_document_title')
+
+ def _compute_l10n_de_template_data(self):
+ for record in self:
+ record.l10n_de_template_data = data = []
+ if record.name:
+ data.append((_("Invoice No."), record.name))
+ if record.invoice_date:
+ data.append((_("Invoice Date"), format_date(self.env, record.invoice_date)))
+ if record.invoice_date_due:
+ data.append((_("Due Date"), format_date(self.env, record.invoice_date_due)))
+ if record.invoice_origin:
+ data.append((_("Source"), record.invoice_origin))
+ if record.ref:
+ data.append((_("Reference"), record.ref))
+
+ def _compute_l10n_de_document_title(self):
+ for record in self:
+ record.l10n_de_document_title = ''
+ if record.move_type == 'out_invoice':
+ if record.state == 'posted':
+ record.l10n_de_document_title = _('Invoice')
+ elif record.state == 'draft':
+ record.l10n_de_document_title = _('Draft Invoice')
+ elif record.state == 'cancel':
+ record.l10n_de_document_title = _('Cancelled Invoice')
+ elif record.move_type == 'out_refund':
+ record.l10n_de_document_title = _('Credit Note')
+ elif record.move_type == 'in_refund':
+ record.l10n_de_document_title = _('Vendor Credit Note')
+ elif record.move_type == 'in_invoice':
+ record.l10n_de_document_title = _('Vendor Bill')
diff --git a/addons/l10n_de/models/base_document_layout.py b/addons/l10n_de/models/base_document_layout.py
new file mode 100644
index 00000000..6ded58f4
--- /dev/null
+++ b/addons/l10n_de/models/base_document_layout.py
@@ -0,0 +1,26 @@
+from odoo import models, fields, _
+from odoo.tools import format_date
+
+
+class BaseDocumentLayout(models.TransientModel):
+ _inherit = 'base.document.layout'
+
+ street = fields.Char(related='company_id.street', readonly=True)
+ street2 = fields.Char(related='company_id.street2', readonly=True)
+ zip = fields.Char(related='company_id.zip', readonly=True)
+ city = fields.Char(related='company_id.city', readonly=True)
+ company_registry = fields.Char(related='company_id.company_registry', readonly=True)
+ bank_ids = fields.One2many(related='company_id.partner_id.bank_ids', readonly=True)
+ l10n_de_template_data = fields.Binary(compute='_compute_l10n_de_template_data')
+ l10n_de_document_title = fields.Char(compute='_compute_l10n_de_document_title')
+
+ def _compute_l10n_de_template_data(self):
+ self.l10n_de_template_data = [
+ (_("Invoice No."), 'INV/2021/12345'),
+ (_("Invoice Date"), format_date(self.env, fields.Date.today())),
+ (_("Due Date"), format_date(self.env, fields.Date.add(fields.Date.today(), days=7))),
+ (_("Reference"), 'SO/2021/45678'),
+ ]
+
+ def _compute_l10n_de_document_title(self):
+ self.l10n_de_document_title = 'Invoice'
diff --git a/addons/l10n_de/models/chart_template.py b/addons/l10n_de/models/chart_template.py
new file mode 100644
index 00000000..b62a5c2d
--- /dev/null
+++ b/addons/l10n_de/models/chart_template.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+from odoo import api, models
+
+
+class AccountChartTemplate(models.Model):
+ _inherit = 'account.chart.template'
+
+ @api.model
+ def _prepare_transfer_account_for_direct_creation(self, name, company):
+ res = super(AccountChartTemplate, self)._prepare_transfer_account_for_direct_creation(name, company)
+ if company.country_id.code == 'DE':
+ xml_id = self.env.ref('l10n_de.tag_de_asset_bs_B_III_2').id
+ res.setdefault('tag_ids', [])
+ res['tag_ids'].append((4, xml_id))
+ return res
+
+ # Write paperformat and report template used on company
+ def _load(self, sale_tax_rate, purchase_tax_rate, company):
+ res = super(AccountChartTemplate, self)._load(sale_tax_rate, purchase_tax_rate, company)
+ if company.country_id.code == 'DE':
+ company.write({'external_report_layout_id': self.env.ref('l10n_de.external_layout_din5008').id,
+ 'paperformat_id': self.env.ref('l10n_de.paperformat_euro_din').id})
+ return res
diff --git a/addons/l10n_de/models/datev.py b/addons/l10n_de/models/datev.py
new file mode 100644
index 00000000..d2e0f8cb
--- /dev/null
+++ b/addons/l10n_de/models/datev.py
@@ -0,0 +1,57 @@
+from odoo import api, fields, models
+from odoo.exceptions import UserError
+from odoo.tools.translate import _
+
+class AccountTaxTemplate(models.Model):
+ _inherit = 'account.tax.template'
+
+ l10n_de_datev_code = fields.Char(size=2)
+
+ def _get_tax_vals(self, company, tax_template_to_tax):
+ vals = super(AccountTaxTemplate, self)._get_tax_vals(company, tax_template_to_tax)
+ vals['l10n_de_datev_code'] = self.l10n_de_datev_code
+ return vals
+
+class AccountTax(models.Model):
+ _inherit = "account.tax"
+
+ l10n_de_datev_code = fields.Char(size=2, help="2 digits code use by Datev")
+
+
+class AccountMove(models.Model):
+ _inherit = 'account.move'
+
+ def _post(self, soft=True):
+ # OVERRIDE to check the invoice lines taxes.
+ for invoice in self.filtered(lambda move: move.is_invoice()):
+ for line in invoice.invoice_line_ids:
+ account_tax = line.account_id.tax_ids.ids
+ if account_tax and invoice.company_id.country_id.code == 'DE':
+ account_name = line.account_id.name
+ for tax in line.tax_ids:
+ if tax.id not in account_tax:
+ raise UserError(_('Account %s does not authorize to have tax %s specified on the line. \
+ Change the tax used in this invoice or remove all taxes from the account') % (account_name, tax.name))
+ return super()._post(soft)
+
+
+class ProductTemplate(models.Model):
+ _inherit = "product.template"
+
+ def _get_product_accounts(self):
+ """ As taxes with a different rate need a different income/expense account, we add this logic in case people only use
+ invoicing to not be blocked by the above constraint"""
+ result = super(ProductTemplate, self)._get_product_accounts()
+ company = self.env.company
+ if company.country_id.code == "DE":
+ if not self.property_account_income_id:
+ taxes = self.taxes_id.filtered(lambda t: t.company_id == company)
+ if not result['income'] or (result['income'].tax_ids and taxes and taxes[0] not in result['income'].tax_ids):
+ result['income'] = self.env['account.account'].search([('internal_group', '=', 'income'), ('deprecated', '=', False),
+ ('tax_ids', 'in', taxes.ids)], limit=1)
+ if not self.property_account_expense_id:
+ supplier_taxes = self.supplier_taxes_id.filtered(lambda t: t.company_id == company)
+ if not result['expense'] or (result['expense'].tax_ids and supplier_taxes and supplier_taxes[0] not in result['expense'].tax_ids):
+ result['expense'] = self.env['account.account'].search([('internal_group', '=', 'expense'), ('deprecated', '=', False),
+ ('tax_ids', 'in', supplier_taxes.ids)], limit=1)
+ return result
diff --git a/addons/l10n_de/models/ir_actions_report.py b/addons/l10n_de/models/ir_actions_report.py
new file mode 100644
index 00000000..bc3c499b
--- /dev/null
+++ b/addons/l10n_de/models/ir_actions_report.py
@@ -0,0 +1,10 @@
+from odoo import models
+
+
+class IrActionsReport(models.Model):
+ _inherit = 'ir.actions.report'
+
+ def _get_rendering_context(self, docids, data):
+ data = super()._get_rendering_context(docids, data)
+ data['din_header_spacing'] = self.get_paperformat().header_spacing
+ return data
diff --git a/addons/l10n_de/report/din5008_report.xml b/addons/l10n_de/report/din5008_report.xml
new file mode 100644
index 00000000..b76d66f1
--- /dev/null
+++ b/addons/l10n_de/report/din5008_report.xml
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data>
+
+ <!-- New report paperformat for din5008 format -->
+ <record id="paperformat_euro_din_a" model="report.paperformat">
+ <field name="name">European A4 for DIN5008 Type A</field>
+ <field name="default" eval="False" />
+ <field name="format">A4</field>
+ <field name="orientation">Portrait</field>
+ <field name="margin_top">27</field>
+ <field name="margin_bottom">40</field>
+ <field name="margin_left">20</field>
+ <field name="margin_right">10</field>
+ <field name="dpi">70</field>
+ <field name="header_line" eval="False" />
+ <field name="header_spacing">27</field>
+ </record>
+
+ <record id="paperformat_euro_din" model="report.paperformat">
+ <field name="name">European A4 for DIN5008 Type B</field>
+ <field name="default" eval="False" />
+ <field name="format">A4</field>
+ <field name="orientation">Portrait</field>
+ <field name="margin_top">45</field>
+ <field name="margin_bottom">40</field>
+ <field name="margin_left">20</field>
+ <field name="margin_right">10</field>
+ <field name="dpi">70</field>
+ <field name="header_line" eval="False" />
+ <field name="header_spacing">45</field>
+ </record>
+
+ <template id="assets_common" name="l10n_de_din5008_report" inherit_id="web.report_assets_common">
+ <xpath expr="." position="inside">
+ <link rel="stylesheet" type="text/scss" href="/l10n_de/static/src/scss/report_din5008.scss"/>
+ </xpath>
+ </template>
+
+ <!-- New report layout for din5008 format -->
+ <template id="external_layout_din5008">
+ <div>
+ <div t-attf-class="header din_page o_company_#{company.id}_layout">
+ <table class="company_header" t-att-style="'height: %dmm;' % (din_header_spacing or 27)">
+ <tr>
+ <td><h3 class="mt0" t-field="company.report_header"/></td>
+ <td><img t-if="company.logo" t-att-src="image_data_uri(company.logo)" t-att-style="'max-height: %dmm;' % (din_header_spacing or 27)"/></td>
+ </tr>
+ </table>
+ </div>
+
+ <div t-attf-class="din_page invoice_note article o_company_#{company.id}_layout" t-att-data-oe-model="o and o._name" t-att-data-oe-id="o and o.id">
+ <table>
+ <tr>
+ <td>
+ <div class="address">
+ <t t-if="company.name">
+ <span t-field="company.name"/>
+ </t>
+ <t t-if="company.street">
+ <span>|</span> <span t-field="company.street"/>
+ </t>
+ <t t-if="company.street2">
+ <span>|</span> <span t-field="company.street2"/>
+ </t>
+ <t t-if="company.zip">
+ <span>|</span> <span t-field="company.zip"/>
+ </t>
+ <t t-if="company.city">
+ <span t-if="not company.zip">|</span> <span t-field="company.city"/>
+ </t>
+ <t t-if="company.country_id">
+ <span>|</span> <span t-field="company.country_id.name"/>
+ </t>
+ <hr class="company_invoice_line" />
+ <div t-if="address">
+ <t t-raw="address"/>
+ </div>
+ <div t-else="fallback_address">
+ <t t-esc="fallback_address"
+ t-options='{"widget": "contact", "fields": ["address", "name", "phone"], "no_marker": True}' />
+ </div>
+ </div>
+ </td>
+ <td>
+ <div class="information_block">
+ <t t-if="'l10n_de_template_data' in company" t-set="template_data" t-value="company.l10n_de_template_data"/>
+ <t t-if="o and 'l10n_de_template_data' in o" t-set="template_data" t-value="o.l10n_de_template_data"/>
+ <table>
+ <t t-foreach="template_data" t-as="row">
+ <tr><td><t t-esc="row[0]"/></td><td><t t-esc="row[1]"/></td></tr>
+ </t>
+ </table>
+ </div>
+ </td>
+ </tr>
+ <tr t-if="o and 'l10n_de_addresses' in o">
+ <t t-foreach="o.l10n_de_addresses" t-as="doc_address">
+ <td>
+ <div class="shipping_address">
+ <strong><t t-esc="doc_address[0]"/></strong>
+ <div t-esc="doc_address[1]" t-options='{"widget": "contact", "fields": ["address", "name", "phone"], "no_marker": True}'/>
+ </div>
+ </td>
+ </t>
+ </tr>
+ </table>
+ <h2>
+ <span t-if="not o"><t t-esc="company.l10n_de_document_title"/></span>
+ <span t-elif="'l10n_de_document_title' in o"><t t-esc="o.l10n_de_document_title"/></span>
+ <span t-else="" t-field="o.name"/>
+ </h2>
+ <t t-raw="0"/>
+ </div>
+
+ <div t-attf-class="din_page footer o_company_#{company.id}_layout">
+ <div class="text-right page_number">
+ <div class="text-muted">
+ Page: <span class="page"/> of <span class="topage"/>
+ </div>
+ </div>
+ <div class="company_details">
+ <table>
+ <tr>
+ <td>
+ <ul class="list-inline">
+ <li t-if="company.name"><span t-field="company.name"/></li>
+ <li t-if="company.street"><span t-field="company.street"/></li>
+ <li t-if="company.street2"><span t-field="company.street2"/></li>
+ <li><span t-if="company.zip" t-field="company.zip"/> <span t-if="company.city" t-field="company.city"/></li>
+ <li t-if="company.country_id"><span t-field="company.country_id.name"/></li>
+ </ul>
+ </td>
+ <td>
+ <ul class="list-inline">
+ <li t-if="company.phone"><span t-field="company.phone"/></li>
+ <li t-if="company.email"><span t-field="company.email"/></li>
+ <li t-if="company.website"><span t-field="company.website"/></li>
+ </ul>
+ </td>
+ <td>
+ <ul class="list-inline">
+ <li t-if="company.vat"><t t-esc="company.country_id.vat_label or 'Tax ID'"/>: <span t-field="company.vat"/></li>
+ <li>HRB Nr: <span t-field="company.company_registry"/></li>
+ <div t-field="company.report_footer"/>
+ </ul>
+ </td>
+ <td>
+ <ul class="list-inline" t-if="company.partner_id.bank_ids">
+ <t t-foreach="company.partner_id.bank_ids[:2]" t-as="bank">
+ <li><span t-field="bank.bank_id.name"/></li>
+ <li>IBAN: <span t-field="bank.acc_number"/></li>
+ <li>BIC: <span t-field="bank.bank_id.bic"/></li>
+ </t>
+ </ul>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ </div>
+ </template>
+
+ <template id="din5008_css" inherit_id="web.styles_company_report">
+ <xpath expr="//t[@t-elif]" position="before">
+ <t t-elif="layout == 'l10n_de.external_layout_din5008'">
+ &amp;.din_page {
+ &amp;.header {
+ .company_header {
+ .name_container {
+ color: <t t-esc='primary'/>;
+ }
+ }
+ }
+ &amp;.invoice_note {
+ td {
+ .address {
+ > span {
+ color: <t t-esc='secondary'/>;
+ }
+ }
+ }
+ h2 {
+ color: <t t-esc='primary'/>;
+ }
+ .page {
+ [name=invoice_line_table], [name=stock_move_table], .o_main_table {
+ th {
+ color: <t t-esc='secondary'/>;
+ }
+ }
+ }
+ }
+ }
+ </t>
+ </xpath>
+ </template>
+ </data>
+</odoo>
diff --git a/addons/l10n_de/static/description/icon.png b/addons/l10n_de/static/description/icon.png
new file mode 100644
index 00000000..5f378c4a
--- /dev/null
+++ b/addons/l10n_de/static/description/icon.png
Binary files differ
diff --git a/addons/l10n_de/static/img/preview_din.png b/addons/l10n_de/static/img/preview_din.png
new file mode 100644
index 00000000..0c271a51
--- /dev/null
+++ b/addons/l10n_de/static/img/preview_din.png
Binary files differ
diff --git a/addons/l10n_de/static/pdf/preview_din.pdf b/addons/l10n_de/static/pdf/preview_din.pdf
new file mode 100644
index 00000000..63d05f58
--- /dev/null
+++ b/addons/l10n_de/static/pdf/preview_din.pdf
Binary files differ
diff --git a/addons/l10n_de/static/src/scss/report_din5008.scss b/addons/l10n_de/static/src/scss/report_din5008.scss
new file mode 100644
index 00000000..dbe94407
--- /dev/null
+++ b/addons/l10n_de/static/src/scss/report_din5008.scss
@@ -0,0 +1,178 @@
+.din_page {
+ width: 180mm;
+ margin-left: -1rem;
+ font-size: 9pt;
+
+ &.header {
+ table {
+ width: 100%;
+ img, h3, td, tr {
+ padding: 0;
+ margin: 0;
+ }
+ h3 {
+ color: $o-default-report-primary-color;
+ position: relative;
+ top: -10mm;
+ margin-bottom: -10mm;
+ }
+ img {
+ float: right;
+ }
+ }
+ }
+ &.invoice_note {
+ tr {
+ td {
+ vertical-align: bottom;
+ }
+ &:nth-child(2) td {
+ vertical-align: top;
+ }
+ .address, .information_block, .shipping_address, .invoice_address {
+ margin: 0;
+ }
+ .address {
+ height: 45mm;
+ }
+ .address, .shipping_address {
+ width: 85mm;
+ padding-left: 5mm;
+ .company_invoice_line {
+ margin-top: 1mm;
+ }
+ > span {
+ color: $o-default-report-secondary-color;
+ }
+ }
+ .information_block, .invoice_address {
+ width: 75mm;
+ min-height: 40mm;
+ margin-left: 20mm;
+ table {
+ width: 100%;
+ }
+ }
+ }
+ h2 {
+ margin-left: 5mm;
+ margin-right: 10mm;
+ margin-top: 8.46mm;
+ color: $o-default-report-primary-color;
+ }
+ > .pt-5 { // hide hardcoded address from base.template.layout
+ display: none;
+ }
+ .page {
+ margin-left: 5mm;
+ margin-right: 10mm;
+ > h2, h1, #informations {
+ display: none;
+ }
+ [name=invoice_line_table], [name=stock_move_table], .o_main_table {
+ margin-top: 8.46mm;
+ th {
+ color: $o-default-report-secondary-color;
+ }
+ }
+ }
+ }
+ &.footer {
+ padding-left: 5mm;
+ padding-right: 10mm;
+ .page_number {
+ margin-top: 4.23mm;
+ width: 100%;
+ height: 4.23mm;
+ }
+ .company_details {
+ margin-top: 4.23mm;
+ width: 100%;
+ table {
+ border-top: solid 1px;
+ width: 100%;
+ td {
+ vertical-align: baseline;
+ padding-right: 3mm;
+ &:last-child {
+ padding-right: initial;
+ }
+ }
+ }
+ }
+ }
+}
+
+
+// TODO WAN remove in master
+.din {
+ &.header {
+ min-height: 45mm;
+ max-height: 45mm;
+ overflow: hidden;
+ img {
+ max-height: 45mm;
+ }
+ }
+ .company_address {
+ position: relative;
+ left: 45mm;
+ top: 5mm;
+ width: 75mm;
+ min-width: 75mm;
+ display: inline-block;
+ }
+ .company_invoice_address {
+ position: relative;
+ left: 25mm;
+ top: 17.7mm;
+ width: 85mm;
+ min-width: 85mm;
+ margin-bottom: 1mm;
+ font-size: 7pt;
+ overflow-y: hidden;
+ word-break: break-word;
+ }
+ .company_invoice_line {
+ margin-top: 1mm;
+ }
+ .invoice_address {
+ position: relative;
+ left: 25mm;
+ top: 14.7mm;
+ width: 85mm;
+ height: 27.3mm;
+ line-height: 1.15;
+ overflow-y: hidden;
+ word-break: break-word;
+ float: left;
+ }
+ .header_address {
+ min-height: 45mm;
+ }
+ .page_number {
+ margin-top: 4.23mm;
+ margin-bottom: 4.23mm;
+ }
+ &.article {
+ .page {
+ position: relative;
+ top: 8.46mm;
+ left: 25mm;
+ width: 190mm;
+ }
+ .address {
+ margin-top: 5mm;
+ }
+ }
+ &.o_background_footer {
+ position: relative;
+ left: 25mm;
+ width: 190mm;
+ }
+ .o_account_reports_header {
+ .fallback_header {
+ display: none;
+ }
+ }
+}
diff --git a/addons/l10n_de/views/account_view.xml b/addons/l10n_de/views/account_view.xml
new file mode 100644
index 00000000..cb7f7d58
--- /dev/null
+++ b/addons/l10n_de/views/account_view.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <record id="view_account_tax_form_inherit" model="ir.ui.view">
+ <field name="name">account.tax.form</field>
+ <field name="model">account.tax</field>
+ <field name="inherit_id" ref="account.view_tax_form"/>
+ <field name="arch" type="xml">
+ <field name="include_base_amount" position="after">
+ <field name="l10n_de_datev_code"/>
+ </field>
+ </field>
+ </record>
+</odoo> \ No newline at end of file