| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-germany |
| GIT | |
| GIT | https://github.com/OCA/l10n-germany.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-germany/tree/18.0/datev_export_xml |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), initOS GmbH, Guenter Selbert, Thorsten Vocks, Maciej Wichowski, Daniela Scarpa, Maria Sparenberg, Jan Sierpina |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), initOS GmbH, Guenter Selbert, Thorsten Vocks, Maciej Wichowski, Daniela Scarpa, Maria Sparenberg, Jan Sierpina |
| COMMITTERS | |
| COMMITTERS | Holger Brunn, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-germany |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:19 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-germany: - datev_export odoo/odoo: - account - base_setup - base - web - onboarding - product - bus - web_tour - html_editor - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - l10n_de - base_iban - base_vat - l10n_din5008 |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | ## Odoo Export to DATEV XML The datev_export_xml module allows to export invoices and bills with their origin digitized receipts in order to transmitt structured accounting data via file-based DATEV XML format. The transfer of these files created by this module to the invoice books in DATEV Unternehmen Online can be done currently via the free DATEV document transfer app. The DATEV XML interface cannot cover use cases such as: - Pure G/L account postings (G/L account to G/L account, e.g. payment postings) - Master data transfer for business partners (customers/creditors) - certain §13b UStG issues (see permissible tax codes for DATEV Unternehmen online) |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
datev_export_view_kanban |
datev.export.xml.kanban | datev.export.xml | kanban | New |
datev_export_view_tree |
datev.export.xml.view.list | datev.export.xml | list | New |
export_invoice |
export_invoice | ir.ui.view | qweb | New |
export_invoice_document |
export_invoice_document | ir.ui.view | qweb | New |
export_invoice_line |
export_invoice_line | ir.ui.view | qweb | New |
export_invoice_line_item |
export_invoice_line_item | ir.ui.view | qweb | New |
export_party |
export_party | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.datev.view.form | res.config.settings | block | Inherits datev_export.res_config_settings_view_form |
view_account_invoice_filter |
account.move | filter | Inherits account.view_account_invoice_filter | |
view_datev_export_form |
datev.export.xml.form | datev.export.xml | form | New |
view_datev_export_popup_form |
datev.export.xml.popup.form | datev.export.xml | header | Inherits view_datev_export_form |
view_move_datev_validation |
account.move | list | New | |
view_move_form |
account.move | group | Inherits account.view_move_form |
datev_exported
Boolean
copy=False
help='When finishing a datev export the processed invoices are marked as exported.\nIf you need to export the invoices again, set this field to False.'
string='Exported to Datev'
datev_validation
Text
datev_delivery_date(self)
datev_filename(self, extension='.pdf')
datev_format_total(self, value, prec=2)
datev_invoice_id(self)
datev_invoice_type(self)
datev_order_id(self)
datev_party_attributes(self, partner)
datev_sanitize(self, value, length=36)
No new fields.
Public methods (2)datev_analytic_account(self)
datev_price_information(self)
check_xsd
Boolean
default=True
required=True
args: 'Check XSD'
client_number
Char
readonly=True
related='company_id.datev_client_number'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
consultant_number
Char
readonly=True
related='company_id.datev_consultant_number'
date_start
Date
default=_default_start
args: 'From Date'
date_stop
Date
default=_default_stop
args: 'To Date'
exception_info
Text
readonly=True
export_invoice
Boolean
default=True
args: 'Export Invoices'
export_refund
Boolean
default=True
args: 'Export Refunds'
export_type
Selection
default='out'
required=True
args: [('out', 'Customers'), ('in', 'Vendors')]
invoice_ids
Many2many → account.move
comodel_name='account.move'
string='Invoices'
invoices_count
Integer
compute='_compute_invoices_count'
store=True
string='Total Invoices'
invoices_exported_count
Integer
compute='_compute_invoices_count'
store=True
string='Exported Invoices'
line_count
Integer
compute='_compute_line_count'
line_ids
One2many → datev.export.xml.line
manually_document_selection
Boolean
default=False
name
Char
problematic_invoices_count
Integer
compute='_compute_problematic_invoices_count'
state
Selection
default='draft'
readonly=True
required=True
string='Status'
tracking=True
args: [('draft', 'Draft'), ('pending', 'Pending'), ('running', 'Running'), ('done', 'Done'), ('failed', 'Failed')]
action_done(self)
action_draft(self)
action_invalidate_lines(self)
action_pending(self)
action_show_invalid_invoices_view(self)
action_show_related_invoices_view(self)
action_validate(self)
create(self, vals_list)
cron_run_pending_export(self)
export_zip(self)
export_zip_invoice(self, invoice_ids=None)
get_invoices(self)
get_type_list(self)
get_zip(self)
validate_types(self)
write(self, vals)
attachment_id
Many2one → ir.attachment
ondelete='cascade'
readonly=True
args: 'ir.attachment'
export_id
Many2one → datev.export.xml
readonly=True
args: 'datev.export.xml'
filename
Char
readonly=True
related='attachment_id.name'
filesize
Char
compute='_compute_filesize'
invoice_ids
Many2many → account.move
readonly=True
args: 'account.move'
invoices_count
Integer
compute='_compute_invoices_count'
store=True
string='Invoices'
action_datev_download(self)
action_open_invoices(self)
unlink(self)
No new fields.
Public methods (3)find_existing_attachments(self, invoice)
generate_pdf(self, invoice)
report_name(self)
No new fields.
Public methods (3)check_xml_file(self, doc_name, root, xsd=None, invoice=None)
generate_xml_document(self, invoices, check_xsd=True)
generate_xml_invoice(self, invoice, check_xsd=True)
No new fields.
Public methods (2)check_valid_data(self, invoices)
generate_zip(self, invoices, check_xsd)
datev_customer_order_ref
Selection
default='odoo'
required=True
args: [('odoo', 'Odoo Reference'), ('partner', 'Partner Reference'), ('payment', 'Payment Reference')], 'Customer Order Reference'
datev_default_period
Selection
default='week'
help='Used to get default values for start and stop date at DATEV Export!'
args: [('day', 'Day'), ('week', 'Week'), ('month', 'Month'), ('year', 'Year')]
datev_export_state
Boolean
help='If set, the invoices are marked as exported when finishing a Datev export.'
datev_package_limit
Integer
default=100
string='Package Limit in MB'
datev_vendor_order_ref
Selection
default='odoo'
required=True
args: [('odoo', 'Odoo Reference'), ('partner', 'Partner Reference'), ('payment', 'Payment Reference')], 'Vendor Order Reference'
No public methods.
datev_customer_order_ref
Selection
readonly=False
related='company_id.datev_customer_order_ref'
datev_default_period
Selection
readonly=False
related='company_id.datev_default_period'
datev_export_state
Boolean
readonly=False
related='company_id.datev_export_state'
datev_package_limit
Integer
readonly=False
related='company_id.datev_package_limit'
datev_vendor_order_ref
Selection
readonly=False
related='company_id.datev_vendor_order_ref'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-germany |
| GIT | |
| GIT | https://github.com/OCA/l10n-germany.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-germany/tree/17.0/datev_export_xml |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), initOS GmbH, Guenter Selbert, Thorsten Vocks, Maciej Wichowski, Daniela Scarpa, Maria Sparenberg, Jan Sierpina |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), initOS GmbH, Guenter Selbert, Thorsten Vocks, Maciej Wichowski, Daniela Scarpa, Maria Sparenberg, Jan Sierpina |
| COMMITTERS | |
| COMMITTERS | Enric Tobella, Víctor Martínez, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-germany |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:10 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-germany: - datev_export odoo/odoo: - account - base_setup - base - web - onboarding - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - l10n_de - base_iban - base_vat - l10n_din5008 |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | ## Odoo Export to DATEV XML The datev_export_xml module allows to export invoices and bills with their origin digitized receipts in order to transmitt structured accounting data via file-based DATEV XML format. The transfer of these files created by this module to the invoice books in DATEV Unternehmen Online can be done currently via the free DATEV document transfer app. The DATEV XML interface cannot cover use cases such as: - Pure G/L account postings (G/L account to G/L account, e.g. payment postings) - Master data transfer for business partners (customers/creditors) - certain §13b UStG issues (see permissible tax codes for DATEV Unternehmen online) |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
datev_export_view_kanban |
datev.export.xml.kanban | datev.export.xml | kanban | New |
datev_export_view_tree |
datev.export.xml.view.tree | datev.export.xml | tree | New |
export_invoice |
export_invoice | ir.ui.view | qweb | New |
export_invoice_document |
export_invoice_document | ir.ui.view | qweb | New |
export_invoice_line |
export_invoice_line | ir.ui.view | qweb | New |
export_invoice_line_item |
export_invoice_line_item | ir.ui.view | qweb | New |
export_party |
export_party | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.datev.view.form | res.config.settings | div | Inherits datev_export.res_config_settings_view_form |
view_account_invoice_filter |
account.move | filter | Inherits account.view_account_invoice_filter | |
view_datev_export_form |
datev.export.xml.form | datev.export.xml | form | New |
view_datev_export_popup_form |
datev.export.xml.popup.form | datev.export.xml | header | Inherits view_datev_export_form |
view_move_datev_validation |
account.move | tree | New | |
view_move_form |
account.move | group | Inherits account.view_move_form |
datev_exported
Boolean
copy=False
help='When finishing a datev export the processed invoices are marked as exported.\nIf you need to export the invoices again, set this field to False.'
string='Exported to Datev'
datev_validation
Text
datev_delivery_date(self)
datev_filename(self, extension='.pdf')
datev_format_total(self, value, prec=2)
datev_invoice_id(self)
datev_invoice_type(self)
datev_order_id(self)
datev_sanitize(self, value, length=36)
No new fields.
Public methods (2)datev_analytic_account(self)
datev_price_information(self)
attachment_id
Many2one → ir.attachment
comodel_name='ir.attachment'
readonly=True
required=False
string='Attachment'
check_xsd
Boolean
default=True
required=True
args: 'Check XSD'
client_number
Char
readonly=True
related='company_id.datev_client_number'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
consultant_number
Char
readonly=True
related='company_id.datev_consultant_number'
date_start
Date
default=_default_start
args: 'From Date'
date_stop
Date
default=_default_stop
args: 'To Date'
datev_file
Binary
readonly=True
related='attachment_id.datas'
args: 'ZIP file'
datev_filename
Char
readonly=True
related='attachment_id.name'
args: 'ZIP filename'
datev_filesize
Char
compute='_compute_datev_filesize'
args: 'Filesize'
exception_info
Text
readonly=True
export_invoice
Boolean
default=True
args: 'Export Invoices'
export_refund
Boolean
default=True
args: 'Export Refunds'
export_type
Selection
default='out'
required=True
args: [('out', _('Customers')), ('in', _('Vendors'))]
invoice_ids
Many2many → account.move
comodel_name='account.move'
string='Invoices'
invoices_count
Integer
compute='_compute_invoices_count'
store=True
manually_document_selection
Boolean
default=False
name
Char
problematic_invoices_count
Integer
compute='_compute_problematic_invoices_count'
state
Selection
default='draft'
readonly=True
required=True
string='Status'
tracking=True
args: [('draft', _('Draft')), ('pending', _('Pending')), ('running', _('Running')), ('done', _('Done')), ('failed', _('Failed'))]
action_done(self)
action_draft(self)
action_pending(self)
action_show_invalid_invoices_view(self)
action_show_related_invoices_view(self)
action_validate(self)
create(self, vals_list)
cron_run_pending_export(self)
export_zip(self)
export_zip_invoice(self, invoice_ids=None)
get_invoices(self)
get_type_list(self)
get_zip(self)
unlink(self)
validate_types(self)
write(self, vals)
No new fields.
Public methods (3)find_existing_attachments(self, invoice)
generate_pdf(self, invoice)
report_name(self)
No new fields.
Public methods (3)check_xml_file(self, doc_name, root, xsd=None, invoice=None)
generate_xml_document(self, invoices, check_xsd=True)
generate_xml_invoice(self, invoice, check_xsd=True)
No new fields.
Public methods (2)check_valid_data(self, invoices)
generate_zip(self, invoices, check_xsd)
datev_customer_order_ref
Selection
default='odoo'
required=True
args: [('odoo', _('Odoo Reference')), ('partner', _('Partner Reference')), ('payment', _('Payment Reference'))], 'Customer Order Reference'
datev_default_period
Selection
default='week'
help='Used to get default values for start and stop date at DATEV Export!'
args: [('day', _('Day')), ('week', _('Week')), ('month', _('Month')), ('year', _('Year'))]
datev_export_state
Boolean
help='If set, the invoices are marked as exported when finishing a Datev export.'
datev_vendor_order_ref
Selection
default='odoo'
required=True
args: [('odoo', _('Odoo Reference')), ('partner', _('Partner Reference')), ('payment', _('Payment Reference'))], 'Vendor Order Reference'
No public methods.
datev_customer_order_ref
Selection
readonly=False
related='company_id.datev_customer_order_ref'
datev_default_period
Selection
readonly=False
related='company_id.datev_default_period'
datev_export_state
Boolean
readonly=False
related='company_id.datev_export_state'
datev_vendor_order_ref
Selection
readonly=False
related='company_id.datev_vendor_order_ref'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-germany |
| GIT | |
| GIT | https://github.com/OCA/l10n-germany.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-germany/tree/16.0/datev_export_xml |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), initOS GmbH, Guenter Selbert, Thorsten Vocks, Maciej Wichowski, Daniela Scarpa, Maria Sparenberg, Jan Sierpina |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), initOS GmbH, Guenter Selbert, Thorsten Vocks, Maciej Wichowski, Daniela Scarpa, Maria Sparenberg, Jan Sierpina |
| COMMITTERS | |
| COMMITTERS | Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Jan Sierpina |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-germany |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:58 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-germany: - datev_export odoo/odoo: - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - l10n_de - base_iban - base_vat - l10n_din5008 |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
datev_export_view_kanban |
datev.export.xml.kanban | datev.export.xml | kanban | New |
datev_export_view_tree |
datev.export.xml.view.tree | datev.export.xml | tree | New |
export_invoice |
export_invoice | ir.ui.view | qweb | New |
export_invoice_document |
export_invoice_document | ir.ui.view | qweb | New |
export_invoice_line |
export_invoice_line | ir.ui.view | qweb | New |
export_invoice_line_item |
export_invoice_line_item | ir.ui.view | qweb | New |
export_party |
export_party | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.datev.view.form | res.config.settings | div | Inherits datev_export.res_config_settings_view_form |
view_account_invoice_filter |
account.move | filter | Inherits account.view_account_invoice_filter | |
view_datev_export_form |
datev.export.xml.form | datev.export.xml | form | New |
view_datev_export_popup_form |
datev.export.xml.popup.form | datev.export.xml | header | Inherits view_datev_export_form |
view_move_datev_validation |
account.move | tree | New | |
view_move_form |
account.move | group | Inherits account.view_move_form |
datev_exported
Boolean
copy=False
help='When finishing a datev export the processed invoices are marked as exported.\nIf you need to export the invoices again, set this field to False.'
string='Exported to Datev'
datev_validation
Text
datev_delivery_date(self)
datev_filename(self, extension='.pdf')
datev_format_total(self, value, prec=2)
datev_invoice_id(self)
datev_invoice_type(self)
datev_order_id(self)
datev_sanitize(self, value, length=36)
No new fields.
Public methods (2)datev_analytic_account(self)
datev_price_information(self)
attachment_id
Many2one → ir.attachment
comodel_name='ir.attachment'
readonly=True
required=False
string='Attachment'
check_xsd
Boolean
default=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
args: 'Check XSD'
client_number
Char
readonly=True
related='company_id.datev_client_number'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
consultant_number
Char
readonly=True
related='company_id.datev_consultant_number'
date_start
Date
default=_default_start
readonly=True
states={'draft': [('readonly', False)]}
args: 'From Date'
date_stop
Date
default=_default_stop
readonly=True
states={'draft': [('readonly', False)]}
args: 'To Date'
datev_file
Binary
readonly=True
related='attachment_id.datas'
args: 'ZIP file'
datev_filename
Char
readonly=True
related='attachment_id.name'
args: 'ZIP filename'
datev_filesize
Char
compute='_compute_datev_filesize'
args: 'Filesize'
exception_info
Text
readonly=True
export_invoice
Boolean
default=True
readonly=True
states={'draft': [('readonly', False)]}
args: 'Export Invoices'
export_refund
Boolean
default=True
readonly=True
states={'draft': [('readonly', False)]}
args: 'Export Refunds'
export_type
Selection
default='out'
readonly=True
required=True
states={'draft': [('readonly', False)]}
args: [('out', _('Customers')), ('in', _('Vendors'))]
invoice_ids
Many2many → account.move
comodel_name='account.move'
string='Invoices'
invoices_count
Integer
compute='_compute_invoices_count'
store=True
manually_document_selection
Boolean
default=False
name
Char
problematic_invoices_count
Integer
compute='_compute_problematic_invoices_count'
state
Selection
default='draft'
readonly=True
required=True
string='Status'
tracking=True
args: [('draft', _('Draft')), ('pending', _('Pending')), ('running', _('Running')), ('done', _('Done')), ('failed', _('Failed'))]
action_done(self)
action_draft(self)
action_pending(self)
action_show_invalid_invoices_view(self)
action_show_related_invoices_view(self)
action_validate(self)
create(self, vals)
cron_run_pending_export(self)
export_zip(self)
export_zip_invoice(self, invoice_ids=None)
get_invoices(self)
get_type_list(self)
get_zip(self)
name_get(self)
unlink(self)
validate_types(self)
write(self, vals)
No new fields.
Public methods (3)find_existing_attachments(self, invoice)
generate_pdf(self, invoice)
report_name(self)
No new fields.
Public methods (3)check_xml_file(self, doc_name, root, xsd=None, invoice=None)
generate_xml_document(self, invoices, check_xsd=True)
generate_xml_invoice(self, invoice, check_xsd=True)
No new fields.
Public methods (2)check_valid_data(self, invoices)
generate_zip(self, invoices, check_xsd)
datev_customer_order_ref
Selection
default='odoo'
required=True
args: [('odoo', _('Odoo Reference')), ('partner', _('Partner Reference')), ('payment', _('Payment Reference'))], 'Customer Order Reference'
datev_default_period
Selection
default='week'
help='Used to get default values for start and stop date at DATEV Export!'
args: [('day', _('Day')), ('week', _('Week')), ('month', _('Month')), ('year', _('Year'))]
datev_export_state
Boolean
help='If set, the invoices are marked as exported when finishing a Datev export.'
datev_vendor_order_ref
Selection
default='odoo'
required=True
args: [('odoo', _('Odoo Reference')), ('partner', _('Partner Reference')), ('payment', _('Payment Reference'))], 'Vendor Order Reference'
No public methods.
datev_customer_order_ref
Selection
readonly=False
related='company_id.datev_customer_order_ref'
datev_default_period
Selection
readonly=False
related='company_id.datev_default_period'
datev_export_state
Boolean
readonly=False
related='company_id.datev_export_state'
datev_vendor_order_ref
Selection
readonly=False
related='company_id.datev_vendor_order_ref'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-germany |
| GIT | |
| GIT | https://github.com/OCA/l10n-germany.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-germany/tree/15.0/datev_export_xml |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), initOS GmbH, Guenter Selbert, Thorsten Vocks, Maciej Wichowski, Daniela Scarpa, Maria Sparenberg |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), initOS GmbH, Guenter Selbert, Thorsten Vocks, Maciej Wichowski, Daniela Scarpa, Maria Sparenberg |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, fkantelberg |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-germany |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:43 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-germany: - datev_export odoo/odoo: - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - l10n_de - base_iban - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
datev_export_view_kanban |
datev.export.xml.kanban | datev.export.xml | kanban | New |
datev_export_view_tree |
datev.export.xml.view.tree | datev.export.xml | tree | New |
export_invoice |
export_invoice | ir.ui.view | qweb | New |
export_invoice_document |
export_invoice_document | ir.ui.view | qweb | New |
export_invoice_line |
export_invoice_line | ir.ui.view | qweb | New |
export_invoice_line_item |
export_invoice_line_item | ir.ui.view | qweb | New |
export_party |
export_party | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.datev.view.form | res.config.settings | div | Inherits datev_export.res_config_settings_view_form |
view_account_invoice_filter |
account.move | filter | Inherits account.view_account_invoice_filter | |
view_datev_export_form |
datev.export.xml.form | datev.export.xml | form | New |
view_datev_export_popup_form |
datev.export.xml.popup.form | datev.export.xml | header | Inherits view_datev_export_form |
view_move_datev_validation |
account.move | tree | New | |
view_move_form |
account.move | group | Inherits account.view_move_form |
datev_exported
Boolean
copy=False
help='When finishing a datev export the processed invoices are marked as exported.\nIf you need to export the invoices again, set this field to False.'
string='Exported to Datev'
datev_validation
Text
datev_delivery_date(self)
datev_filename(self, extension='.pdf')
datev_format_total(self, value, prec=2)
datev_invoice_id(self)
datev_invoice_type(self)
datev_order_id(self)
datev_sanitize(self, value, length=36)
No new fields.
Public methods (1)datev_price_information(self)
attachment_id
Many2one → ir.attachment
comodel_name='ir.attachment'
readonly=True
required=False
string='Attachment'
check_xsd
Boolean
default=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
args: 'Check XSD'
client_number
Char
readonly=True
related='company_id.datev_client_number'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
consultant_number
Char
readonly=True
related='company_id.datev_consultant_number'
date_start
Date
default=_default_start
readonly=True
states={'draft': [('readonly', False)]}
args: 'From Date'
date_stop
Date
default=_default_stop
readonly=True
states={'draft': [('readonly', False)]}
args: 'To Date'
datev_file
Binary
readonly=True
related='attachment_id.datas'
args: 'ZIP file'
datev_filename
Char
readonly=True
related='attachment_id.name'
args: 'ZIP filename'
datev_filesize
Char
compute='_compute_datev_filesize'
args: 'Filesize'
exception_info
Text
readonly=True
export_invoice
Boolean
default=True
readonly=True
states={'draft': [('readonly', False)]}
args: 'Export Invoices'
export_refund
Boolean
default=True
readonly=True
states={'draft': [('readonly', False)]}
args: 'Export Refunds'
export_type
Selection
default='out'
readonly=True
required=True
states={'draft': [('readonly', False)]}
args: [('out', _('Customers')), ('in', _('Vendors'))]
invoice_ids
Many2many → account.move
comodel_name='account.move'
string='Invoices'
invoices_count
Integer
compute='_compute_invoices_count'
store=True
manually_document_selection
Boolean
default=False
name
Char
problematic_invoices_count
Integer
compute='_compute_problematic_invoices_count'
state
Selection
default='draft'
readonly=True
required=True
string='Status'
tracking=True
args: [('draft', _('Draft')), ('pending', _('Pending')), ('running', _('Running')), ('done', _('Done')), ('failed', _('Failed'))]
action_done(self)
action_draft(self)
action_pending(self)
action_show_invalid_invoices_view(self)
action_show_related_invoices_view(self)
action_validate(self)
create(self, vals)
cron_run_pending_export(self)
export_zip(self)
export_zip_invoice(self, invoice_ids=None)
get_invoices(self)
get_type_list(self)
get_zip(self)
name_get(self)
unlink(self)
validate_types(self)
write(self, vals)
No new fields.
Public methods (3)find_existing_attachments(self, invoice)
generate_pdf(self, invoice)
report_name(self)
No new fields.
Public methods (3)check_xml_file(self, doc_name, root, xsd=None, invoice=None)
generate_xml_document(self, invoices, check_xsd=True)
generate_xml_invoice(self, invoice, check_xsd=True)
No new fields.
Public methods (2)check_valid_data(self, invoices)
generate_zip(self, invoices, check_xsd)
datev_customer_order_ref
Selection
default='odoo'
required=True
args: [('odoo', _('Odoo Reference')), ('partner', _('Partner Reference')), ('payment', _('Payment Reference'))], 'Customer Order Reference'
datev_default_period
Selection
default='week'
help='Used to get default values for start and stop date at DATEV Export!'
args: [('day', _('Day')), ('week', _('Week')), ('month', _('Month')), ('year', _('Year'))]
datev_export_state
Boolean
help='If set, the invoices are marked as exported when finishing a Datev export.'
datev_vendor_order_ref
Selection
default='odoo'
required=True
args: [('odoo', _('Odoo Reference')), ('partner', _('Partner Reference')), ('payment', _('Payment Reference'))], 'Vendor Order Reference'
No public methods.
datev_customer_order_ref
Selection
readonly=False
related='company_id.datev_customer_order_ref'
datev_default_period
Selection
readonly=False
related='company_id.datev_default_period'
datev_export_state
Boolean
readonly=False
related='company_id.datev_export_state'
datev_vendor_order_ref
Selection
readonly=False
related='company_id.datev_vendor_order_ref'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-germany |
| GIT | |
| GIT | https://github.com/OCA/l10n-germany.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-germany/tree/14.0/datev_export_xml |
| VERSION | |
| VERSION | 1.1.4 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), initOS GmbH, Guenter Selbert, Thorsten Vocks, Maciej Wichowski, Daniela Scarpa, Maria Sparenberg |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), initOS GmbH, Guenter Selbert, Thorsten Vocks, Maciej Wichowski, Daniela Scarpa, Maria Sparenberg |
| COMMITTERS | |
| COMMITTERS | oca-travis, Weblate, OCA-git-bot, fkantelberg |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-germany |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:11 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-germany: - datev_export odoo/odoo: - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - l10n_de - base_iban - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
datev_export_view_kanban |
datev.export.xml.kanban | datev.export.xml | kanban | New |
datev_export_view_tree |
datev.export.xml.view.tree | datev.export.xml | tree | New |
export_invoice |
export_invoice | ir.ui.view | qweb | New |
export_invoice_document |
export_invoice_document | ir.ui.view | qweb | New |
export_invoice_line |
export_invoice_line | ir.ui.view | qweb | New |
export_invoice_line_item |
export_invoice_line_item | ir.ui.view | qweb | New |
export_party |
export_party | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.datev.view.form | res.config.settings | div | Inherits datev_export.res_config_settings_view_form |
view_account_invoice_filter |
account.move | filter | Inherits account.view_account_invoice_filter | |
view_datev_export_form |
datev.export.xml.form | datev.export.xml | form | New |
view_datev_export_popup_form |
datev.export.xml.popup.form | datev.export.xml | header | Inherits view_datev_export_form |
view_move_datev_validation |
account.move | tree | New | |
view_move_form |
account.move | group | Inherits account.view_move_form |
datev_exported
Boolean
copy=False
help='When finishing a datev export the processed invoices are marked as exported.\nIf you need to export the invoices again, set this field to False.'
string='Exported to Datev'
datev_validation
Text
datev_delivery_date(self)
datev_filename(self, extension='.pdf')
datev_format_total(self, value, prec=2)
datev_invoice_id(self)
datev_invoice_type(self)
datev_order_id(self)
datev_sanitize(self, value, length=36)
No new fields.
Public methods (1)datev_price_information(self)
check_xsd
Boolean
default=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Check XSD'
client_number
Char
readonly=True
related='company_id.datev_client_number'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
consultant_number
Char
readonly=True
related='company_id.datev_consultant_number'
date_start
Date
default=_default_start
readonly=True
states={'draft': [('readonly', False)]}
string='From Date'
date_stop
Date
default=_default_stop
readonly=True
states={'draft': [('readonly', False)]}
string='To Date'
exception_info
Text
readonly=True
string='Exception Info'
export_invoice
Boolean
default=True
readonly=True
states={'draft': [('readonly', False)]}
string='Export Invoices'
export_refund
Boolean
default=True
readonly=True
states={'draft': [('readonly', False)]}
string='Export Refunds'
export_type
Selection
default='out'
readonly=True
required=True
states={'draft': [('readonly', False)]}
args: [('out', _('Customers')), ('in', _('Vendors'))]
invoice_ids
Many2many → account.move
comodel_name='account.move'
string='Invoices'
invoices_count
Integer
compute='_compute_invoices_count'
store=True
string='Total Invoices'
invoices_exported_count
Integer
compute='_compute_invoices_count'
store=True
string='Exported Invoices'
line_count
Integer
compute='_compute_line_count'
line_ids
One2many → datev.export.xml.line
manually_document_selection
Boolean
default=False
name
Char
problematic_invoices_count
Integer
compute='_compute_problematic_invoices_count'
state
Selection
default='draft'
readonly=True
required=True
string='Status'
tracking=True
args: [('draft', _('Draft')), ('pending', _('Pending')), ('running', _('Running')), ('done', _('Done')), ('failed', _('Failed'))]
action_done(self)
action_draft(self)
action_invalidate_lines(self)
action_pending(self)
action_show_invalid_invoices_view(self)
action_show_related_invoices_view(self)
action_validate(self)
create(self, vals)
cron_run_pending_export(self)
export_zip(self)
export_zip_invoice(self, invoice_ids=None)
get_invoices(self)
get_type_list(self)
get_zip(self)
name_get(self)
unlink(self)
validate_types(self)
write(self, vals)
attachment_id
Many2one → ir.attachment
ondelete='cascade'
readonly=True
args: 'ir.attachment'
export_id
Many2one → datev.export.xml
readonly=True
args: 'datev.export.xml'
filename
Char
readonly=True
related='attachment_id.name'
filesize
Char
compute='_compute_filesize'
invoice_ids
Many2many → account.move
readonly=True
args: 'account.move'
invoices_count
Integer
compute='_compute_invoices_count'
store=True
string='Invoices'
action_datev_download(self)
action_open_invoices(self)
unlink(self)
No new fields.
Public methods (3)find_existing_attachments(self, invoice)
generate_pdf(self, invoice)
report_name(self)
No new fields.
Public methods (3)check_xml_file(self, doc_name, root, xsd=None, invoice=None)
generate_xml_document(self, invoices, check_xsd=True)
generate_xml_invoice(self, invoice, check_xsd=True)
No new fields.
Public methods (2)check_valid_data(self, invoices)
generate_zip(self, invoices, check_xsd)
datev_customer_order_ref
Selection
default='odoo'
required=True
string='Customer Order Reference'
args: [('odoo', _('Odoo Reference')), ('partner', _('Partner Reference')), ('payment', _('Payment Reference'))]
datev_default_period
Selection
default='week'
help='Used to get default values for start and stop date at DATEV Export!'
args: [('day', _('Day')), ('week', _('Week')), ('month', _('Month')), ('year', _('Year'))]
datev_export_state
Boolean
help='If set, the invoices are marked as exported when finishing a Datev export.'
string='Datev Export State'
datev_package_limit
Integer
default=100
string='Package Limit in MB'
datev_vendor_order_ref
Selection
default='odoo'
required=True
string='Vendor Order Reference'
args: [('odoo', _('Odoo Reference')), ('partner', _('Partner Reference')), ('payment', _('Payment Reference'))]
No public methods.
datev_customer_order_ref
Selection
readonly=False
related='company_id.datev_customer_order_ref'
datev_default_period
Selection
readonly=False
related='company_id.datev_default_period'
datev_export_state
Boolean
readonly=False
related='company_id.datev_export_state'
datev_package_limit
Integer
readonly=False
related='company_id.datev_package_limit'
datev_vendor_order_ref
Selection
readonly=False
related='company_id.datev_vendor_order_ref'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-germany |
| GIT | |
| GIT | https://github.com/OCA/l10n-germany.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-germany/tree/13.0/datev_export_xml |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), initOS GmbH, Guenter Selbert, Thorsten Vocks, Maciej Wichowski, Daniela Scarpa, Maria Sparenberg |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), initOS GmbH, Guenter Selbert, Thorsten Vocks, Maciej Wichowski, Daniela Scarpa, Maria Sparenberg |
| COMMITTERS | |
| COMMITTERS | OCA-git-bot, oca-ci, Carolina Fernandez |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-germany |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-germany: - datev_export odoo/odoo: - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - l10n_de - base_iban - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
datev_export_view_kanban |
datev.export.xml.kanban | datev.export.xml | kanban | New |
datev_export_view_tree |
datev.export.xml.view.tree | datev.export.xml | tree | New |
export_invoice |
export_invoice | ir.ui.view | qweb | New |
export_invoice_document |
export_invoice_document | ir.ui.view | qweb | New |
export_invoice_line |
export_invoice_line | ir.ui.view | qweb | New |
export_invoice_line_item |
export_invoice_line_item | ir.ui.view | qweb | New |
export_party |
export_party | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.datev.view.form | res.config.settings | div | Inherits datev_export.res_config_settings_view_form |
view_account_invoice_filter |
account.move | filter | Inherits account.view_account_invoice_filter | |
view_datev_export_form |
datev.export.xml.form | datev.export.xml | form | New |
view_datev_export_popup_form |
datev.export.xml.popup.form | datev.export.xml | header | Inherits view_datev_export_form |
view_move_form |
account.move | group | Inherits account.view_move_form |
datev_exported
Boolean
copy=False
help='When finishing a datev export the processed invoices are marked as exported.\nIf you need to export the invoices again, set this field to False.'
string='Exported to Datev'
datev_delivery_date(self)
datev_filename(self, extension='.pdf')
datev_format_total(self, value)
datev_invoice_id(self)
datev_invoice_type(self)
datev_order_id(self)
datev_sanitize(self, value, length=36)
No new fields.
Public methods (1)datev_price_information(self)
attachment_id
Many2one → ir.attachment
comodel_name='ir.attachment'
readonly=True
required=False
string='Attachment'
check_xsd
Boolean
default=True
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Check XSD'
client_number
Char
readonly=True
related='company_id.datev_client_number'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company'
consultant_number
Char
readonly=True
related='company_id.datev_consultant_number'
date_start
Date
default=_default_start
readonly=True
states={'draft': [('readonly', False)]}
string='From Date'
date_stop
Date
default=_default_stop
readonly=True
states={'draft': [('readonly', False)]}
string='To Date'
datev_file
Binary
readonly=True
related='attachment_id.datas'
args: 'ZIP file'
datev_filename
Char
readonly=True
related='attachment_id.name'
args: 'ZIP filename'
datev_filesize
Char
compute='_compute_datev_filesize'
args: 'Filesize'
exception_info
Text
readonly=True
string='Exception Info'
export_invoice
Boolean
default=True
readonly=True
states={'draft': [('readonly', False)]}
string='Export Invoices'
export_refund
Boolean
default=True
readonly=True
states={'draft': [('readonly', False)]}
string='Export Refunds'
export_type
Selection
default='out'
readonly=True
required=True
states={'draft': [('readonly', False)]}
args: [('out', _('Customers')), ('in', _('Vendors'))]
invoice_ids
Many2many → account.move
comodel_name='account.move'
string='Invoices'
invoices_count
Integer
compute='_compute_invoices_count'
store=True
string='Invoices Count'
manually_document_selection
Boolean
default=False
name
Char
state
Selection
default='draft'
readonly=True
required=True
string='Status'
tracking=True
args: [('draft', _('Draft')), ('pending', _('Pending')), ('running', _('Running')), ('done', _('Done')), ('failed', _('Failed'))]
action_done(self)
action_draft(self)
action_pending(self)
action_show_related_invoices_view(self)
create(self, vals)
cron_run_pending_export(self)
export_zip(self)
export_zip_invoice(self, invoice_ids=None)
get_invoices(self)
get_type_list(self)
get_zip(self)
name_get(self)
unlink(self)
validate_types(self)
write(self, vals)
No new fields.
Public methods (3)find_existing_attachments(self, invoice)
generate_pdf(self, invoice)
report_name(self)
No new fields.
Public methods (3)check_xml_file(self, doc_name, root, xsd=None)
generate_xml_document(self, invoices, check_xsd=True)
generate_xml_invoice(self, invoice, check_xsd=True)
No new fields.
Public methods (2)check_valid_data(self, invoices)
generate_zip(self, invoices, check_xsd)
datev_customer_order_ref
Selection
default='odoo'
required=True
string='Customer Order Reference'
args: [('odoo', _('Odoo Reference')), ('partner', _('Partner Reference')), ('payment', _('Payment Reference'))]
datev_default_period
Selection
default='week'
help='Used to get default values for start and stop date at DATEV Export!'
args: [('day', _('Day')), ('week', _('Week')), ('month', _('Month')), ('year', _('Year'))]
datev_export_state
Boolean
help='If set, the invoices are marked as exported when finishing a Datev export.'
string='Datev Export State'
datev_vendor_order_ref
Selection
default='odoo'
required=True
string='Vendor Order Reference'
args: [('odoo', _('Odoo Reference')), ('partner', _('Partner Reference')), ('payment', _('Payment Reference'))]
No public methods.
datev_customer_order_ref
Selection
readonly=False
related='company_id.datev_customer_order_ref'
datev_default_period
Selection
readonly=False
related='company_id.datev_default_period'
datev_export_state
Boolean
readonly=False
related='company_id.datev_export_state'
datev_vendor_order_ref
Selection
readonly=False
related='company_id.datev_vendor_order_ref'
No public methods.