Initial commit: L10N_Europe packages

This commit is contained in:
Ernad Husremovic 2025-08-29 15:20:52 +02:00
commit 9803722600
2377 changed files with 380711 additions and 0 deletions

View file

@ -0,0 +1,52 @@
# Germany - Accounting
Dieses Modul beinhaltet einen deutschen Kontenrahmen basierend auf dem SKR03.
==============================================================================
German accounting chart and localization.
## Installation
```bash
pip install odoo-bringout-oca-ocb-l10n_de
```
## Dependencies
This addon depends on:
- account
- base_iban
- base_vat
- l10n_din5008
## Manifest Information
- **Name**: Germany - Accounting
- **Version**: 2.0
- **Category**: Accounting/Localizations
- **License**: LGPL-3
- **Installable**: False
## Source
Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_de`.
## License
This package maintains the original LGPL-3 license from the upstream Odoo project.
## Documentation
- Overview: doc/OVERVIEW.md
- Architecture: doc/ARCHITECTURE.md
- Models: doc/MODELS.md
- Controllers: doc/CONTROLLERS.md
- Wizards: doc/WIZARDS.md
- Install: doc/INSTALL.md
- Usage: doc/USAGE.md
- Configuration: doc/CONFIGURATION.md
- Dependencies: doc/DEPENDENCIES.md
- Troubleshooting: doc/TROUBLESHOOTING.md
- FAQ: doc/FAQ.md

View file

@ -0,0 +1,32 @@
# Architecture
```mermaid
flowchart TD
U[Users] -->|HTTP| V[Views and QWeb Templates]
V --> C[Controllers]
V --> W[Wizards Transient Models]
C --> M[Models and ORM]
W --> M
M --> R[Reports]
DX[Data XML] --> M
S[Security ACLs and Groups] -. enforces .-> M
subgraph L10n_de Module - l10n_de
direction LR
M:::layer
W:::layer
C:::layer
V:::layer
R:::layer
S:::layer
DX:::layer
end
classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px
```
Notes
- Views include tree/form/kanban templates and report templates.
- Controllers provide website/portal routes when present.
- Wizards are UI flows implemented with `models.TransientModel`.
- Data XML loads data/demo records; Security defines groups and access.

View file

@ -0,0 +1,3 @@
# Configuration
Refer to Odoo settings for l10n_de. Configure related models, access rights, and options as needed.

View file

@ -0,0 +1,3 @@
# Controllers
This module does not define custom HTTP controllers.

View file

@ -0,0 +1,8 @@
# Dependencies
This addon depends on:
- [account](../../odoo-bringout-oca-ocb-account)
- [base_iban](../../odoo-bringout-oca-ocb-base_iban)
- [base_vat](../../odoo-bringout-oca-ocb-base_vat)
- [l10n_din5008](../../odoo-bringout-oca-ocb-l10n_din5008)

View file

@ -0,0 +1,4 @@
# FAQ
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
- Q: How to enable? A: Start server with --addon l10n_de or install in UI.

View file

@ -0,0 +1,7 @@
# Install
```bash
pip install odoo-bringout-oca-ocb-l10n_de"
# or
uv pip install odoo-bringout-oca-ocb-l10n_de"
```

View file

@ -0,0 +1,18 @@
# Models
Detected core models and extensions in l10n_de.
```mermaid
classDiagram
class account_chart_template
class account_journal
class account_tax
class account_tax_template
class ir_actions_report
class product_template
class res_company
```
Notes
- Classes show model technical names; fields omitted for brevity.
- Items listed under _inherit are extensions of existing models.

View file

@ -0,0 +1,6 @@
# Overview
Packaged Odoo addon: l10n_de. Provides features documented in upstream Odoo 16 under this addon.
- Source: OCA/OCB 16.0, addon l10n_de
- License: LGPL-3

View file

@ -0,0 +1,3 @@
# Reports
This module does not define custom reports.

View file

@ -0,0 +1,8 @@
# Security
This module does not define custom security rules or access controls beyond Odoo defaults.
Default Odoo security applies:
- Base user access through standard groups
- Model access inherited from dependencies
- No custom row-level security rules

View file

@ -0,0 +1,5 @@
# Troubleshooting
- Ensure Python and Odoo environment matches repo guidance.
- Check database connectivity and logs if startup fails.
- Validate that dependent addons listed in DEPENDENCIES.md are installed.

View file

@ -0,0 +1,7 @@
# Usage
Start Odoo including this addon (from repo root):
```bash
python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_de
```

View file

@ -0,0 +1,3 @@
# Wizards
This module does not include UI wizards.

View file

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import models

View file

@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Germany - Accounting',
"version": "2.0",
'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',
'l10n_din5008',
],
'data': [
'data/account_account_tags_data.xml',
'views/account_view.xml',
'views/res_company_views.xml',
],
'license': 'LGPL-3',
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,418 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_de
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-13 21:47+0000\n"
"PO-Revision-Date: 2024-02-14 08:37+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de\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 3.4.2\n"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_21
msgid "21. Nicht steuerbare sonstige Leistungen (zeile 34)"
msgstr "21. Nicht steuerbare sonstige Leistungen (zeile 34)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_35
msgid "35. zu anderen Steuersätzen (zeile 15)"
msgstr "35. zu anderen Steuersätzen (zeile 15)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_36
msgid "36. zu anderen Steuersatzen (zeile 15)"
msgstr "36. zu anderen Steuersatzen (zeile 15)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_37_74
msgid "37. Minderung der abziehbaren Vorsteuerbeträge (zeile 51)"
msgstr "37. Minderung der abziehbaren Vorsteuerbeträge (zeile 51)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_39
msgid "39. Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (zeile 48)"
msgstr "39. Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (zeile 48)"
#. module: l10n_de
#: model:ir.model.fields,help:l10n_de.field_account_tax__l10n_de_datev_code
msgid "4 digits code use by Datev"
msgstr "Von Datev verwendeter 4-stelliger Code"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_41
msgid "41. an Abnehmer mit USt-IdNr (zeile 18)"
msgstr "41. an Abnehmer mit USt-IdNr (zeile 18)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_42
msgid "42. Dreiecksgeschäften (zeile 32)"
msgstr "42. Dreiecksgeschäften (zeile 32)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_43
msgid "43. Weitere steuerfreie Umsätze mit Vorsteuerabzug (zeile 21)"
msgstr "43. Weitere steuerfreie Umsätze mit Vorsteuerabzug (zeile 21)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_44
msgid "44. neuer Fahrzeuge an Abnehmer ohne USt-IdNr (zeile 19)"
msgstr "44. neuer Fahrzeuge an Abnehmer ohne USt-IdNr (zeile 19)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_45
msgid "45. Übrige nicht steuerbare Umsätze (zeile 35)"
msgstr "45. Übrige nicht steuerbare Umsätze (zeile 35)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_48
msgid "46. Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (zeile 29)"
msgstr "46. Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (zeile 29)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_47
msgid "47. Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebietansässigen Unternehmers (zeile 29)"
msgstr "47. Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebietansässigen Unternehmers (zeile 29)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_24
msgid "48. Steuerfreie Umsätze ohne Vorsteuerabzug (zeile 22)"
msgstr "48. Steuerfreie Umsätze ohne Vorsteuerabzug (zeile 22)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_49
msgid "49. neuer Fahrzeuge außerhalb eines Unternehmens (zeile 20)"
msgstr "49. neuer Fahrzeuge außerhalb eines Unternehmens (zeile 20)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_50
msgid "50. Minderung der Bemessungsgrundlage (zeile 50)"
msgstr "50. Minderung der Bemessungsgrundlage (zeile 50)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_59
msgid "59. Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (zeile 42)"
msgstr "59. Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (zeile 42)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_60
msgid "60. Übrige steuerpflichtige Umsätze, für die der Leistungsempfänger die Steuer nach § 13b Abs. 5 UStG schuldet (zeile 33)"
msgstr "60. Übrige steuerpflichtige Umsätze, für die der Leistungsempfänger die Steuer nach § 13b Abs. 5 UStG schuldet (zeile 33)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_61
msgid "61. Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (zeile 38)"
msgstr "61. Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (zeile 38)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_62
msgid "62. Entstandene Einfuhrumsatzsteuer (zeile 39)"
msgstr "62. Entstandene Einfuhrumsatzsteuer (zeile 39)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_63
msgid "63. Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (zeile 41)"
msgstr "63. Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (zeile 41)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_64
msgid "64. Berichtigung des Vorsteuerabzugs (zeile 43)"
msgstr "64. Berichtigung des Vorsteuerabzugs (zeile 43)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_65
msgid "65. Steuer infolge Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen u. ä. wegen Steuersatzänderung (zeile 45)"
msgstr "65. Steuer infolge Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen u. ä. wegen Steuersatzänderung (zeile 45)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_66
msgid "66. Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (zeile 37)"
msgstr "66. Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (zeile 37)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_67
msgid "67. Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (zeile 40)"
msgstr "67. Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (zeile 40)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_69
msgid "69. In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (zeile 46)"
msgstr "69. In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (zeile 46)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_73
msgid "73. Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter das GrEStG fallen (zeile 30)"
msgstr "73. Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter das GrEStG fallen (zeile 30)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_74
msgid "74. Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter das GrEStG fallen (zeile 30)"
msgstr "74. Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter das GrEStG fallen (zeile 30)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_76
msgid "76. Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (zeile 17)"
msgstr "76. Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (zeile 17)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_77
msgid "77. Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an Abnehmer mit USt-IdNr. (zeile 16)"
msgstr "77. Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an Abnehmer mit USt-IdNr. (zeile 16)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_80
msgid "80. Umsatze, fur die eine Steuer nach § 24 UStG zu entrichten ist (zeile 17)"
msgstr "80. Umsatze, fur die eine Steuer nach § 24 UStG zu entrichten ist (zeile 17)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_26
#: model:account.report.line,name:l10n_de.tax_report_de_tag_81
msgid "81. zum Steuersatz von 19 % (zeile 12)"
msgstr "81. zum Steuersatz von 19 % (zeile 12)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_83
msgid "83. Verbleibende Umsatzsteuer-Vorauszahlung (zeile 49)"
msgstr "83. Verbleibende Umsatzsteuer-Vorauszahlung (zeile 49)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_84
msgid "84. Andere Leistungen (zeile 31)"
msgstr "84. Andere Leistungen (zeile 31)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_85
msgid "85. Andere Leistungen (zeile 31)"
msgstr "85. Andere Leistungen (zeile 31)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_27
#: model:account.report.line,name:l10n_de.tax_report_de_tag_86
msgid "86. zum Steuersatz von 7 % (zeile 13)"
msgstr "86. zum Steuersatz von 7 % (zeile 13)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_87
msgid "87. zum Steuersatz von 0 % (zeile 14)"
msgstr "87. zum Steuersatz von 0 % (zeile 14)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_89
msgid "89. Steuerpflichtige innergemeinschaftliche Erwerbe zum Steuersatz von 19 % (zeile 24)"
msgstr "89. Steuerpflichtige innergemeinschaftliche Erwerbe zum Steuersatz von 19 % (zeile 24)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_33
msgid "89. zum Steuersatz von 19 % (zeile 24)"
msgstr "89. zum Steuersatz von 19 % (zeile 24)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_90
msgid "90. zum Steuersatz von 0 % (zeile 26)"
msgstr "90. zum Steuersatz von 0 % (zeile 26)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_91
msgid "91. Steuerfreie innergemeinschaftliche Erwerbe (zeile 23)"
msgstr "91. Steuerfreie innergemeinschaftliche Erwerbe (zeile 23)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_34
#: model:account.report.line,name:l10n_de.tax_report_de_tag_93
msgid "93. zum Steuersatz von 7 % (zeile 25)"
msgstr "93. zum Steuersatz von 7 % (zeile 25)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_94
msgid "94. neuer Fahrzeuge von Lieferern ohne (zeile 28)"
msgstr "94. neuer Fahrzeuge von Lieferern ohne (zeile 28)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_95
msgid "95. zu anderen Steuersätzen (zeile 27)"
msgstr "95. zu anderen Steuersätzen (zeile 27)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_96
msgid "96. neuer Fahrzeuge von Lieferern ohne USt-IdNr. zum allgemeinen Steuersatz (zeile 28)"
msgstr "96. neuer Fahrzeuge von Lieferern ohne USt-IdNr. zum allgemeinen Steuersatz (zeile 28)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_98
msgid "98. zu anderen Steuersatzen (zeile 27)"
msgstr "98. zu anderen Steuersatzen (zeile 27)"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tax_tag_55
msgid "Abziehbare Vorsteuerbetrage"
msgstr "Abziehbare Vorsteuerbetrage"
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_account_chart_template
msgid "Account Chart Template"
msgstr "Kontenplanvorlage"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tax_tag_64
msgid "Andere Steuerbetrage"
msgstr "Andere Steuerbetrage"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_17
#: model:account.report.line,name:l10n_de.tax_report_de_tax_tag_17
msgid "Anmeldung der Umsatzsteuer-Vorauszahlung"
msgstr "Anmeldung der Umsatzsteuer-Vorauszahlung"
#. module: l10n_de
#: model:account.report.column,name:l10n_de.tax_report_balance
msgid "Balance"
msgstr "Saldo"
#. module: l10n_de
#. odoo-python
#: code:addons/l10n_de/models/chart_template.py:0
#, python-format
msgid "Bank Suspense Account"
msgstr "Bankzwischenkonto"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_01
msgid "Bemessungsgrundlage"
msgstr "Bemessungsgrundlage"
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_res_company
msgid "Companies"
msgstr "Unternehmen"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_37
msgid "Ergänzende Angaben zu Umsätzen"
msgstr "Ergänzende Angaben zu Umsätzen"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_31
#: model:account.report.line,name:l10n_de.tax_report_de_tax_tag_31
msgid "Innergemeinschaftliche Erwerbe"
msgstr "Innergemeinschaftliche Erwerbe"
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_account_journal
msgid "Journal"
msgstr "Journal"
#. 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 "L10N De Datev-Code"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tax_tag_46
msgid "Leistungsempfanger als Steuerschuldner"
msgstr "Leistungsempfanger als Steuerschuldner"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_46
msgid "Leistungsempfänger als Steuerschuldner"
msgstr "Leistungsempfänger als Steuerschuldner"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_18
#: model:account.report.line,name:l10n_de.tax_report_de_tax_tag_18
msgid "Lieferungen und sonstige Leistungen"
msgstr "Lieferungen und sonstige Leistungen"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_71
msgid "Minderung"
msgstr "Minderung"
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_product_template
msgid "Product"
msgstr "Produkt"
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_ir_actions_report
msgid "Report Action"
msgstr "Berichtsaktion"
#. module: l10n_de
#: model:ir.model.fields,field_description:l10n_de.field_res_company__l10n_de_stnr
msgid "St.-Nr."
msgstr "St.-Nr."
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_02
msgid "Steuer"
msgstr "Steuer"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_25
msgid "Steuerfreie Umsätze mit Vorsteuerabzug"
msgstr "Steuerfreie Umsätze mit Vorsteuerabzug"
#. module: l10n_de
#: model:ir.model.fields,help:l10n_de.field_res_company__l10n_de_stnr
msgid "Steuernummer. Scheme: ??FF0BBBUUUUP, e.g.: 2893081508152 https://de.wikipedia.org/wiki/Steuernummer"
msgstr "Steuernummer. Schema: ??FF0BBBUUUUP, z. B.: 2893081508152 https://de.wikipedia.org/wiki/Steuernummer"
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_19
#: model:account.report.line,name:l10n_de.tax_report_de_tax_tag_19
msgid "Steuerpflichtige Umsätze"
msgstr "Steuerpflichtige Umsätze"
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_account_tax
msgid "Tax"
msgstr "Steuer"
#. module: l10n_de
#: model:account.report,name:l10n_de.tax_report
msgid "Tax Report"
msgstr "Steuerbericht"
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_account_tax_template
msgid "Templates for Taxes"
msgstr "Steuervorlagen"
#. module: l10n_de
#: model:ir.model.fields,field_description:l10n_de.field_res_company__l10n_de_widnr
msgid "W-IdNr."
msgstr "W-IdNr."
#. module: l10n_de
#: model:ir.model.fields,help:l10n_de.field_res_company__l10n_de_widnr
msgid "Wirtschafts-Identifikationsnummer."
msgstr "Wirtschafts-Identifikationsnummer."
#~ msgid "Germany"
#~ msgstr "Deutschland"
#. module: l10n_de_reports
#: code:addons/l10n_de_reports/models/account_generic_tax_report.py:0
#, python-format
msgid "Your company's SteuerNummer is not compatible with your state"
msgstr ""
"Die Steuernummer Ihres Unternehmens ist nicht mit Ihrem Bundesland kompatibel."
#. module: l10n_de_reports
#: code:addons/l10n_de_reports/models/account_generic_tax_report.py:0
#, python-format
msgid "Your company's SteuerNummer is not valid"
msgstr "Die Steuernummer Ihres Unternehmens ist nicht gültig."
#. module: l10n_de
#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__zip
msgid "Zip"
msgstr "Postleitzahl"

View file

@ -0,0 +1,446 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_de
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-13 21:47+0000\n"
"PO-Revision-Date: 2024-02-13 21:47+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:account.report.line,name:l10n_de.tax_report_de_tag_21
msgid "21. Nicht steuerbare sonstige Leistungen (zeile 34)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_35
msgid "35. zu anderen Steuersätzen (zeile 15)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_36
msgid "36. zu anderen Steuersatzen (zeile 15)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_37_74
msgid "37. Minderung der abziehbaren Vorsteuerbeträge (zeile 51)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_39
msgid ""
"39. Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung "
"(zeile 48)"
msgstr ""
#. module: l10n_de
#: model:ir.model.fields,help:l10n_de.field_account_tax__l10n_de_datev_code
msgid "4 digits code use by Datev"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_41
msgid "41. an Abnehmer mit USt-IdNr (zeile 18)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_42
msgid "42. Dreiecksgeschäften (zeile 32)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_43
msgid "43. Weitere steuerfreie Umsätze mit Vorsteuerabzug (zeile 21)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_44
msgid "44. neuer Fahrzeuge an Abnehmer ohne USt-IdNr (zeile 19)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_45
msgid "45. Übrige nicht steuerbare Umsätze (zeile 35)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_48
msgid ""
"46. Steuerpflichtige sonstige Leistungen eines im übrigen "
"Gemeinschaftsgebiet ansässigen Unternehmers (zeile 29)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_47
msgid ""
"47. Steuerpflichtige sonstige Leistungen eines im übrigen "
"Gemeinschaftsgebietansässigen Unternehmers (zeile 29)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_24
msgid "48. Steuerfreie Umsätze ohne Vorsteuerabzug (zeile 22)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_49
msgid "49. neuer Fahrzeuge außerhalb eines Unternehmens (zeile 20)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_50
msgid "50. Minderung der Bemessungsgrundlage (zeile 50)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_59
msgid ""
"59. Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge "
"außerhalb eines Unternehmens (zeile 42)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_60
msgid ""
"60. Übrige steuerpflichtige Umsätze, für die der Leistungsempfänger die "
"Steuer nach § 13b Abs. 5 UStG schuldet (zeile 33)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_61
msgid ""
"61. Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen"
" (zeile 38)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_62
msgid "62. Entstandene Einfuhrumsatzsteuer (zeile 39)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_63
msgid ""
"63. Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet "
"sind (zeile 41)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_64
msgid "64. Berichtigung des Vorsteuerabzugs (zeile 43)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_65
msgid ""
"65. Steuer infolge Wechsels der Besteuerungsform sowie Nachsteuer auf "
"versteuerte Anzahlungen u. ä. wegen Steuersatzänderung (zeile 45)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_66
msgid ""
"66. Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (zeile 37)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_67
msgid "67. Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (zeile 40)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_69
msgid ""
"69. In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge "
"(zeile 46)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_73
msgid ""
"73. Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter "
"das GrEStG fallen (zeile 30)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_74
msgid ""
"74. Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter "
"das GrEStG fallen (zeile 30)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_76
msgid ""
"76. Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (zeile 17)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_77
msgid ""
"77. Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an "
"Abnehmer mit USt-IdNr. (zeile 16)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_80
msgid ""
"80. Umsatze, fur die eine Steuer nach § 24 UStG zu entrichten ist (zeile 17)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_26
#: model:account.report.line,name:l10n_de.tax_report_de_tag_81
msgid "81. zum Steuersatz von 19 % (zeile 12)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_83
msgid "83. Verbleibende Umsatzsteuer-Vorauszahlung (zeile 49)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_84
msgid "84. Andere Leistungen (zeile 31)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_85
msgid "85. Andere Leistungen (zeile 31)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_27
#: model:account.report.line,name:l10n_de.tax_report_de_tag_86
msgid "86. zum Steuersatz von 7 % (zeile 13)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_87
msgid "87. zum Steuersatz von 0 % (zeile 14)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_89
msgid ""
"89. Steuerpflichtige innergemeinschaftliche Erwerbe zum Steuersatz von 19 % "
"(zeile 24)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_33
msgid "89. zum Steuersatz von 19 % (zeile 24)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_90
msgid "90. zum Steuersatz von 0 % (zeile 26)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_91
msgid "91. Steuerfreie innergemeinschaftliche Erwerbe (zeile 23)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_34
#: model:account.report.line,name:l10n_de.tax_report_de_tag_93
msgid "93. zum Steuersatz von 7 % (zeile 25)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_94
msgid "94. neuer Fahrzeuge von Lieferern ohne (zeile 28)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_95
msgid "95. zu anderen Steuersätzen (zeile 27)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_96
msgid ""
"96. neuer Fahrzeuge von Lieferern ohne USt-IdNr. zum allgemeinen Steuersatz "
"(zeile 28)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_98
msgid "98. zu anderen Steuersatzen (zeile 27)"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tax_tag_55
msgid "Abziehbare Vorsteuerbetrage"
msgstr ""
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_account_chart_template
msgid "Account Chart Template"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tax_tag_64
msgid "Andere Steuerbetrage"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_17
#: model:account.report.line,name:l10n_de.tax_report_de_tax_tag_17
msgid "Anmeldung der Umsatzsteuer-Vorauszahlung"
msgstr ""
#. module: l10n_de
#: model:account.report.column,name:l10n_de.tax_report_balance
msgid "Balance"
msgstr ""
#. module: l10n_de
#. odoo-python
#: code:addons/l10n_de/models/chart_template.py:0
#, python-format
msgid "Bank Suspense Account"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_01
msgid "Bemessungsgrundlage"
msgstr ""
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_res_company
msgid "Companies"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_37
msgid "Ergänzende Angaben zu Umsätzen"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_31
#: model:account.report.line,name:l10n_de.tax_report_de_tax_tag_31
msgid "Innergemeinschaftliche Erwerbe"
msgstr ""
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_account_journal
msgid "Journal"
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:account.report.line,name:l10n_de.tax_report_de_tax_tag_46
msgid "Leistungsempfanger als Steuerschuldner"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_46
msgid "Leistungsempfänger als Steuerschuldner"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_18
#: model:account.report.line,name:l10n_de.tax_report_de_tax_tag_18
msgid "Lieferungen und sonstige Leistungen"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_71
msgid "Minderung"
msgstr ""
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_product_template
msgid "Product"
msgstr ""
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_ir_actions_report
msgid "Report Action"
msgstr ""
#. module: l10n_de
#: model:ir.model.fields,field_description:l10n_de.field_res_company__l10n_de_stnr
msgid "St.-Nr."
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_02
msgid "Steuer"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_25
msgid "Steuerfreie Umsätze mit Vorsteuerabzug"
msgstr ""
#. module: l10n_de
#: model:ir.model.fields,help:l10n_de.field_res_company__l10n_de_stnr
msgid ""
"Steuernummer. Scheme: ??FF0BBBUUUUP, e.g.: 2893081508152 "
"https://de.wikipedia.org/wiki/Steuernummer"
msgstr ""
#. module: l10n_de
#: model:account.report.line,name:l10n_de.tax_report_de_tag_19
#: model:account.report.line,name:l10n_de.tax_report_de_tax_tag_19
msgid "Steuerpflichtige Umsätze"
msgstr ""
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_account_tax
msgid "Tax"
msgstr ""
#. module: l10n_de
#: model:account.report,name:l10n_de.tax_report
msgid "Tax Report"
msgstr ""
#. module: l10n_de
#: model:ir.model,name:l10n_de.model_account_tax_template
msgid "Templates for Taxes"
msgstr ""
#. module: l10n_de
#: model:ir.model.fields,field_description:l10n_de.field_res_company__l10n_de_widnr
msgid "W-IdNr."
msgstr ""
#. module: l10n_de
#: model:ir.model.fields,help:l10n_de.field_res_company__l10n_de_widnr
msgid "Wirtschafts-Identifikationsnummer."
msgstr ""
#. module: l10n_de_reports
#: code:addons/l10n_de_reports/models/account_generic_tax_report.py:0
#, python-format
msgid "Your company's SteuerNummer is not compatible with your state"
msgstr ""
#. module: l10n_de_reports
#: code:addons/l10n_de_reports/models/account_generic_tax_report.py:0
#, python-format
msgid "Your company's SteuerNummer is not valid"
msgstr ""
#. module: l10n_de
#: model:ir.model.fields,field_description:l10n_de.field_base_document_layout__zip
msgid "Zip"
msgstr ""

View file

@ -0,0 +1,53 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details
from odoo import api, SUPERUSER_ID
def migrate(cr, version):
# The tax report line 68 has been removed as it does not appear in tax report anymore.
# But, it was referenced in the account.sales.report
# So, we update amls of this line only, to make this report consistent.
env = api.Environment(cr, SUPERUSER_ID, {})
country = env['res.country'].search([('code', '=', 'DE')], limit=1)
tags_68 = env['account.account.tag']._get_tax_tags('68', country.id)
tags_60 = env['account.account.tag']._get_tax_tags('60', country.id)
if tags_68.filtered(lambda tag: tag.tax_negate):
cr.execute(
"""
UPDATE account_account_tag_account_move_line_rel
SET account_account_tag_id = %s
WHERE account_account_tag_id IN %s;
""",
[
tags_60.filtered(lambda tag: tag.tax_negate)[0].id,
tuple(tags_68.filtered(lambda tag: tag.tax_negate).ids)
]
)
if tags_68.filtered(lambda tag: not tag.tax_negate):
cr.execute(
"""
UPDATE account_account_tag_account_move_line_rel
SET account_account_tag_id = %s
WHERE account_account_tag_id IN %s;
""",
[
tags_60.filtered(lambda tag: not tag.tax_negate)[0].id,
tuple(tags_68.filtered(lambda tag: not tag.tax_negate).ids)
]
)
cr.execute(
r"""
UPDATE account_move_line
SET tax_audit = REGEXP_REPLACE(tax_audit, '(?<=(^|\s))68:', '60:')
FROM (
SELECT aml.id as aml_id
FROM account_move_line aml
JOIN account_account_tag_account_move_line_rel aml_tag_rel ON aml_tag_rel.account_move_line_id = aml.id
WHERE aml_tag_rel.account_account_tag_id IN %s
) aml
WHERE id = aml.aml_id
""", [tuple(tags_60.ids)]
)

View file

@ -0,0 +1,56 @@
# -*- coding: utf-8 -*-
def rename_tag(cr, old_tag, new_tag):
cr.execute(
"""UPDATE ir_model_data
SET name=%s
WHERE module='l10n_de' AND name=%s
""",
(new_tag, old_tag),
)
def migrate(cr, version):
# By deleting tag B from ir_model_data we ensure that the ORM won't try to remove this record.
# This is done because the tag might be already used as a FK somewhere else.
cr.execute(
"""DELETE FROM ir_model_data
WHERE module='l10n_de'
AND name='tag_de_liabilities_bs_B'
"""
)
# As some people already upgraded, they will have renamed the C_1 tag to B_1. This doesn't come from the script but from the
# account_account_tags_data.xml. If they try to run this script now in the fix they get the error that B_1 already exists.
# To fix this we can check if it exists or not, and if it does then we don't run the script. This means that the ones
# that upgraded won't have the old tags data transferred to the new tags but they will still be able to have the updated sheet.
cr.execute(
"""SELECT 1 FROM ir_model_data
WHERE module='l10n_de' AND name='tag_de_liabilities_bs_B_1'
""")
if cr.rowcount:
# If the script didn't run, we should remove the tags that have been replaced from ir_model_data too so they're
# not deleted by the ORM if they were already used.
cr.execute(
"""DELETE FROM ir_model_data
WHERE module='l10n_de'
AND name IN ('tag_de_liabilities_bs_F', 'tag_de_liabilities_bs_D_1', 'tag_de_liabilities_bs_D_2',
'tag_de_liabilities_bs_D_3', 'tag_de_liabilities_bs_D_4', 'tag_de_liabilities_bs_D_5',
'tag_de_liabilities_bs_D_6', 'tag_de_liabilities_bs_D_7', 'tag_de_liabilities_bs_D_8')
"""
)
return
rename_tag(cr, "tag_de_liabilities_bs_C_1", "tag_de_liabilities_bs_B_1")
rename_tag(cr, "tag_de_liabilities_bs_C_2", "tag_de_liabilities_bs_B_2")
rename_tag(cr, "tag_de_liabilities_bs_C_3", "tag_de_liabilities_bs_B_3")
rename_tag(cr, "tag_de_liabilities_bs_D_1", "tag_de_liabilities_bs_C_1")
rename_tag(cr, "tag_de_liabilities_bs_D_2", "tag_de_liabilities_bs_C_2")
rename_tag(cr, "tag_de_liabilities_bs_D_3", "tag_de_liabilities_bs_C_3")
rename_tag(cr, "tag_de_liabilities_bs_D_4", "tag_de_liabilities_bs_C_4")
rename_tag(cr, "tag_de_liabilities_bs_D_5", "tag_de_liabilities_bs_C_5")
rename_tag(cr, "tag_de_liabilities_bs_D_6", "tag_de_liabilities_bs_C_6")
rename_tag(cr, "tag_de_liabilities_bs_D_7", "tag_de_liabilities_bs_C_7")
rename_tag(cr, "tag_de_liabilities_bs_D_8", "tag_de_liabilities_bs_C_8")
rename_tag(cr, "tag_de_liabilities_bs_E", "tag_de_liabilities_bs_D")
rename_tag(cr, "tag_de_liabilities_bs_F", "tag_de_liabilities_bs_E")

View file

@ -0,0 +1,8 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import account_journal
from . import datev
from . import chart_template
from . import ir_actions_report
from . import res_company

View file

@ -0,0 +1,17 @@
# -*- coding: utf-8 -*-
from odoo import api, models
class AccountJournal(models.Model):
_inherit = "account.journal"
@api.model
def _prepare_liquidity_account_vals(self, company, code, vals):
res = super()._prepare_liquidity_account_vals(company, code, vals)
if company.account_fiscal_country_id.code == 'DE':
tag_ids = res.get('tag_ids', [])
tag_ids.append((4, self.env.ref('l10n_de.tag_de_asset_bs_B_IV').id))
res['tag_ids'] = tag_ids
return res

View file

@ -0,0 +1,53 @@
# -*- coding: utf-8 -*-
from odoo import models, Command, _
class AccountChartTemplate(models.Model):
_inherit = 'account.chart.template'
# Write paperformat and report template used on company
def _load(self, company):
res = super(AccountChartTemplate, self)._load(company)
if self in [
self.env.ref('l10n_de_skr03.l10n_de_chart_template', raise_if_not_found=False),
self.env.ref('l10n_de_skr04.l10n_chart_de_skr04', raise_if_not_found=False)
]:
company.write({
'external_report_layout_id': self.env.ref('l10n_din5008.external_layout_din5008').id,
'paperformat_id': self.env.ref('l10n_din5008.paperformat_euro_din').id
})
outstanding_receipt = company.account_journal_payment_debit_account_id
outstanding_payment = company.account_journal_payment_credit_account_id
asset_tag = self.env.ref('l10n_de.tag_de_asset_bs_B_II_4')
outstanding_receipt['tag_ids'] += asset_tag
outstanding_payment['tag_ids'] += asset_tag
return res
def _prepare_transfer_account_template(self):
res = super(AccountChartTemplate, self)._prepare_transfer_account_template(None)
if self in [
self.env.ref('l10n_de_skr03.l10n_de_chart_template', raise_if_not_found=False),
self.env.ref('l10n_de_skr04.l10n_chart_de_skr04', raise_if_not_found=False)
]:
tag_ids = res.get('tag_ids', [])
tag_ids += [Command.link(self.env.ref('l10n_de.tag_de_asset_bs_B_II_4').id)]
res['tag_ids'] = tag_ids
return res
def _create_liquidity_journal_suspense_account(self, company, code_digits):
if self not in [
self.env.ref('l10n_de_skr03.l10n_de_chart_template', raise_if_not_found=False),
self.env.ref('l10n_de_skr04.l10n_chart_de_skr04', raise_if_not_found=False)
]:
return super()._create_liquidity_journal_suspense_account(company, code_digits)
return self.env['account.account'].create({
'name': _("Bank Suspense Account"),
'code': self.env['account.account']._search_new_account_code(company, code_digits, company.bank_account_code_prefix or ''),
'account_type': 'asset_current',
'company_id': company.id,
'tag_ids': self.env.ref('l10n_de.tag_de_asset_bs_B_IV')
})

View file

@ -0,0 +1,40 @@
from odoo import fields, models
class AccountTaxTemplate(models.Model):
_inherit = 'account.tax.template'
l10n_de_datev_code = fields.Char(size=4)
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=4, help="4 digits code use by Datev")
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.account_fiscal_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)
result['income'] = result_income or result['income']
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)
result['expense'] = result_expense or result['expense']
return result

View file

@ -0,0 +1,10 @@
from odoo import models
class IrActionsReport(models.Model):
_inherit = 'ir.actions.report'
def _get_rendering_context(self, report, docids, data):
data = super()._get_rendering_context(report, docids, data)
data['din_header_spacing'] = report.get_paperformat().header_spacing
return data

View file

@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
import stdnum.de.stnr
import stdnum.exceptions
class ResCompany(models.Model):
_inherit = 'res.company'
l10n_de_stnr = fields.Char(string="St.-Nr.", help="Steuernummer. Scheme: ??FF0BBBUUUUP, e.g.: 2893081508152 https://de.wikipedia.org/wiki/Steuernummer")
l10n_de_widnr = fields.Char(string="W-IdNr.", help="Wirtschafts-Identifikationsnummer.")
@api.depends('country_code')
@api.constrains('state_id', 'l10n_de_stnr')
def _validate_l10n_de_stnr(self):
for record in self:
record.get_l10n_de_stnr_national()
def get_l10n_de_stnr_national(self):
self.ensure_one()
national_steuer_nummer = None
if self.l10n_de_stnr and self.country_code == 'DE':
try:
national_steuer_nummer = stdnum.de.stnr.to_country_number(self.l10n_de_stnr, self.state_id.name)
except stdnum.exceptions.InvalidComponent:
raise ValidationError(_("Your company's SteuerNummer is not compatible with your state"))
except stdnum.exceptions.InvalidFormat:
if stdnum.de.stnr.is_valid(self.l10n_de_stnr, self.state_id.name):
national_steuer_nummer = self.l10n_de_stnr
else:
raise ValidationError(_("Your company's SteuerNummer is not valid"))
elif self.l10n_de_stnr:
national_steuer_nummer = self.l10n_de_stnr
return national_steuer_nummer

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 21 KiB

View file

@ -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" attrs="{'invisible': [('country_code', '!=', 'DE')]}"/>
</field>
</field>
</record>
</odoo>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="res_company_form_l10n_de" model="ir.ui.view">
<field name="name">res.company.form</field>
<field name="model">res.company</field>
<field name="inherit_id" ref="account.view_company_form"/>
<field name="arch" type="xml">
<field name="vat" position="after">
<field name="l10n_de_stnr" attrs="{'invisible':[('account_enabled_tax_country_ids', 'not in', %(base.de)d)]}"/>
<field name="l10n_de_widnr" attrs="{'invisible':[('country_code', '!=', 'DE')]}"/>
</field>
</field>
</record>
</odoo>

View file

@ -0,0 +1,45 @@
[project]
name = "odoo-bringout-oca-ocb-l10n_de"
version = "16.0.0"
description = "Germany - Accounting - Odoo addon"
authors = [
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
]
dependencies = [
"odoo-bringout-oca-ocb-account>=16.0.0",
"odoo-bringout-oca-ocb-base_iban>=16.0.0",
"odoo-bringout-oca-ocb-base_vat>=16.0.0",
"odoo-bringout-oca-ocb-l10n_din5008>=16.0.0",
"requests>=2.25.1"
]
readme = "README.md"
requires-python = ">= 3.11"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Office/Business",
]
[project.urls]
homepage = "https://github.com/bringout/0"
repository = "https://github.com/bringout/0"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.wheel]
packages = ["l10n_de"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]