Initial commit: L10N_Asia Pacific packages

This commit is contained in:
Ernad Husremovic 2025-08-29 15:20:52 +02:00
commit 54c86b612c
828 changed files with 58224 additions and 0 deletions

View file

@ -0,0 +1,44 @@
# DIN 5008
This is the base module that defines the DIN 5008 standard in Odoo.
## Installation
```bash
pip install odoo-bringout-oca-ocb-l10n_din5008
```
## Dependencies
This addon depends on:
- account
## Manifest Information
- **Name**: DIN 5008
- **Version**: 1.0
- **Category**: Accounting/Localizations
- **License**: LGPL-3
- **Installable**: False
## Source
Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_din5008`.
## 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_din5008 Module - l10n_din5008
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_din5008. 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,5 @@
# Dependencies
This addon depends on:
- [account](../../odoo-bringout-oca-ocb-account)

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_din5008 or install in UI.

View file

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

View file

@ -0,0 +1,14 @@
# Models
Detected core models and extensions in l10n_din5008.
```mermaid
classDiagram
class account_analytic_line
class account_move
class base_document_layout
```
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_din5008. Provides features documented in upstream Odoo 16 under this addon.
- Source: OCA/OCB 16.0, addon l10n_din5008
- License: LGPL-3

View file

@ -0,0 +1,22 @@
# Reports
Report definitions and templates in l10n_din5008.
```mermaid
classDiagram
```
## Available Reports
No named reports found in XML files.
## Report Files
- **din5008_report.xml** (XML template/definition)
## Notes
- Named reports above are accessible through Odoo's reporting menu
- Python files define report logic and data processing
- XML files contain report templates, definitions, and formatting
- Reports are integrated with Odoo's printing and email systems

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_din5008
```

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,21 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'DIN 5008',
'version': '1.0',
'category': 'Accounting/Localizations',
'description': "This is the base module that defines the DIN 5008 standard in Odoo.",
'author': 'Odoo SA',
'depends': ['account'],
'data': [
'report/din5008_report.xml',
'data/report_layout.xml',
],
'assets': {
'web.report_assets_common': [
'l10n_din5008/static/src/**/*',
],
},
'license': 'LGPL-3',
}

View file

@ -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_din5008.external_layout_din5008"/>
<field name="image"></field>
<field name="pdf"></field>
<field name="name">DIN 5008</field>
</record>
</data>
</odoo>

View file

@ -0,0 +1,311 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_din5008
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-13 21:49+0000\n"
"PO-Revision-Date: 2024-02-14 08:46+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_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css
msgid ""
"&amp;.din_page {\n"
" &amp;.header {\n"
" .company_header {\n"
" .name_container {\n"
" color:"
msgstr ""
"&amp;.din_page {\n"
" &amp;.header {\n"
" .company_header {\n"
" .name_container {\n"
" color:"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css
msgid ""
";\n"
" }\n"
" }\n"
" }\n"
" h2 {\n"
" color:"
msgstr ""
";\n"
" }\n"
" }\n"
" }\n"
" h2 {\n"
" color:"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css
msgid ""
";\n"
" }\n"
" }\n"
" }\n"
" &amp;.invoice_note {\n"
" td {\n"
" .address {\n"
" &gt; span {\n"
" color:"
msgstr ""
";\n"
" }\n"
" }\n"
" }\n"
" &amp;.invoice_note {\n"
" td {\n"
" .address {\n"
" &gt; span {\n"
" color:"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css
msgid ""
";\n"
" }\n"
" .page {\n"
" [name=invoice_line_table], "
"[name=stock_move_table], .o_main_table {\n"
" th {\n"
" color:"
msgstr ""
";\n"
" }\n"
" .page {\n"
" [name=invoice_line_table], "
"[name=stock_move_table], .o_main_table {\n"
" th {\n"
" color:"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "<span>|</span>"
msgstr "<span>|</span>"
#. module: l10n_din5008
#: model:ir.model,name:l10n_din5008.model_account_analytic_line
msgid "Analytic Line"
msgstr "Kostenstellenbuchung"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "BIC:"
msgstr "BIC:"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__bank_ids
msgid "Banks"
msgstr "Banken"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Cancelled Invoice"
msgstr "Stornierte Rechnung"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__city
msgid "City"
msgstr "Stadt"
#. module: l10n_din5008
#: model:ir.model,name:l10n_din5008.model_base_document_layout
msgid "Company Document Layout"
msgstr "Dokumentlayout des Unternehmens"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__company_registry
msgid "Company ID"
msgstr "Unternehmens-ID"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Credit Note"
msgstr "Gutschrift"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Draft Invoice"
msgstr "Rechnungsentwurf"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Due Date"
msgstr "Fälligkeitsdatum"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__account_fiscal_country_id
msgid "Fiscal Country"
msgstr "Steuerland"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "HRB Nr:"
msgstr "HRB-Nr.:"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "IBAN:"
msgstr "IBAN:"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Invoice"
msgstr "Rechnung"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Invoice Date"
msgstr "Rechnungsdatum"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Invoice No."
msgstr "Rechnungsnr."
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Invoicing Address:"
msgstr "Rechnungsadresse:"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Invoicing and Shipping Address:"
msgstr "Rechnungs- und Lieferadresse:"
#. module: l10n_din5008
#: model:ir.model,name:l10n_din5008.model_account_move
msgid "Journal Entry"
msgstr "Journalbuchung"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_addresses
#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_addresses
#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_addresses
msgid "L10N Din5008 Addresses"
msgstr "L10N Din5008 Adressen"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_document_title
msgid "L10N Din5008 Document Title"
msgstr "L10N Din5008 Dokumenttitel"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_template_data
msgid "L10N Din5008 Template Data"
msgstr "L10N Din5008 Vorlagendaten"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "Page: <span class=\"page\"/> of <span class=\"topage\"/>"
msgstr "Seite: <span class=\"page\"/> von <span class=\"topage\"/>"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Reference"
msgstr "Referenz"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Shipping Address:"
msgstr "Lieferadresse:"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Source"
msgstr "Verweis"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street
msgid "Street"
msgstr "Straße"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street2
msgid "Street2"
msgstr "Straße 2"
#. module: l10n_din5008
#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__account_fiscal_country_id
msgid "The country to use the tax reports from for this company"
msgstr ""
"Das Land, aus dem die Steuerberichte für dieses Unternehmen zu verwenden sind"
#. module: l10n_din5008
#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__company_registry
msgid ""
"The registry number of the company. Use it if it is different from the Tax "
"ID. It must be unique across all partners of a same country"
msgstr ""
"Die Registernummer des Unternehmens. Verwenden Sie diese, wenn sie sich von "
"der USt-IdNr. unterscheidet. Sie muss für alle Partner desselben Landes "
"eindeutig sein."
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Vendor Bill"
msgstr "Lieferantenrechnung"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Vendor Credit Note"
msgstr "Lieferantengutschrift"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__zip
msgid "Zip"
msgstr "Postleitzahl"

View file

@ -0,0 +1,284 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_din5008
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-13 21:49+0000\n"
"PO-Revision-Date: 2024-02-14 09:13+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr\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_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css
msgid ""
"&amp;.din_page {\n"
" &amp;.header {\n"
" .company_header {\n"
" .name_container {\n"
" color:"
msgstr ""
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css
msgid ""
";\n"
" }\n"
" }\n"
" }\n"
" h2 {\n"
" color:"
msgstr ""
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css
msgid ""
";\n"
" }\n"
" }\n"
" }\n"
" &amp;.invoice_note {\n"
" td {\n"
" .address {\n"
" &gt; span {\n"
" color:"
msgstr ""
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.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_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "<span>|</span>"
msgstr ""
#. module: l10n_din5008
#: model:ir.model,name:l10n_din5008.model_account_analytic_line
msgid "Analytic Line"
msgstr "Ligne analytique"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "BIC:"
msgstr "BIC :"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__bank_ids
msgid "Banks"
msgstr "Banques"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Cancelled Invoice"
msgstr "Facture annulée"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__city
msgid "City"
msgstr "Ville"
#. module: l10n_din5008
#: model:ir.model,name:l10n_din5008.model_base_document_layout
msgid "Company Document Layout"
msgstr "Mise en page des documents de votre société"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__company_registry
msgid "Company ID"
msgstr "ID de la société"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Credit Note"
msgstr "Note de crédit"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Draft Invoice"
msgstr "Facture en brouillon"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Due Date"
msgstr "Date d'échéance"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__account_fiscal_country_id
msgid "Fiscal Country"
msgstr "Pays d'imposition"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "HRB Nr:"
msgstr "Numéro HRB :"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "IBAN:"
msgstr "IBAN :"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Invoice"
msgstr "Facture client"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Invoice Date"
msgstr "Date de facturation"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Invoice No."
msgstr "N° de facture"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Invoicing Address:"
msgstr "Adresse de facturation :"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Invoicing and Shipping Address:"
msgstr "Adresse de facturation et d'expédition :"
#. module: l10n_din5008
#: model:ir.model,name:l10n_din5008.model_account_move
msgid "Journal Entry"
msgstr "Pièce comptable"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_addresses
#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_addresses
#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_addresses
msgid "L10N Din5008 Addresses"
msgstr "Adresses L10N Din5008"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_document_title
msgid "L10N Din5008 Document Title"
msgstr "Titre du document L10N Din5008"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_template_data
msgid "L10N Din5008 Template Data"
msgstr "Données de modèle L10N Din5008"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "Page: <span class=\"page\"/> of <span class=\"topage\"/>"
msgstr "Page: <span class=\"page\"/> sur <span class=\"topage\"/>"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Reference"
msgstr "Référence"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Shipping Address:"
msgstr "Adresse de livraison :"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Source"
msgstr "Source"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street
msgid "Street"
msgstr "Rue"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street2
msgid "Street2"
msgstr "Rue 2"
#. module: l10n_din5008
#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__account_fiscal_country_id
msgid "The country to use the tax reports from for this company"
msgstr ""
"Le pays à partir duquel utiliser les déclarations fiscales pour cette société"
#. module: l10n_din5008
#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__company_registry
msgid ""
"The registry number of the company. Use it if it is different from the Tax "
"ID. It must be unique across all partners of a same country"
msgstr ""
"Le numéro de registre de la société. Utilisez-le s'il est différent du "
"numéro d'identification fiscale. Il doit être unique pour tous les "
"partenaires d'un même pays"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Vendor Bill"
msgstr "Facture fournisseur"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Vendor Credit Note"
msgstr "Avoir fournisseur"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__zip
msgid "Zip"
msgstr "Code postal"

View file

@ -0,0 +1,282 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_din5008
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-13 21:49+0000\n"
"PO-Revision-Date: 2024-02-14 09:14+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: it\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_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css
msgid ""
"&amp;.din_page {\n"
" &amp;.header {\n"
" .company_header {\n"
" .name_container {\n"
" color:"
msgstr ""
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css
msgid ""
";\n"
" }\n"
" }\n"
" }\n"
" h2 {\n"
" color:"
msgstr ""
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css
msgid ""
";\n"
" }\n"
" }\n"
" }\n"
" &amp;.invoice_note {\n"
" td {\n"
" .address {\n"
" &gt; span {\n"
" color:"
msgstr ""
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.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_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "<span>|</span>"
msgstr ""
#. module: l10n_din5008
#: model:ir.model,name:l10n_din5008.model_account_analytic_line
msgid "Analytic Line"
msgstr "Riga analitica"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "BIC:"
msgstr "BIC:"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__bank_ids
msgid "Banks"
msgstr "Banche"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Cancelled Invoice"
msgstr "Fattura annullata"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__city
msgid "City"
msgstr "Città"
#. module: l10n_din5008
#: model:ir.model,name:l10n_din5008.model_base_document_layout
msgid "Company Document Layout"
msgstr "Struttura documenti azienda"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__company_registry
msgid "Company ID"
msgstr "ID Azienda"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Credit Note"
msgstr "Nota di credito"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Draft Invoice"
msgstr "Fattura in bozza"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Due Date"
msgstr "Scadenza"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__account_fiscal_country_id
msgid "Fiscal Country"
msgstr "Paese fiscale"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "HRB Nr:"
msgstr "No HRB:"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "IBAN:"
msgstr "Codice IBAN:"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Invoice"
msgstr "Fattura"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Invoice Date"
msgstr "Data fattura"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Invoice No."
msgstr "Fattura n."
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Invoicing Address:"
msgstr "Indirizzo di fatturazione:"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Invoicing and Shipping Address:"
msgstr "Indirizzo di fatturazione e spedizione:"
#. module: l10n_din5008
#: model:ir.model,name:l10n_din5008.model_account_move
msgid "Journal Entry"
msgstr "Registrazioni contabili"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_addresses
#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_addresses
#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_addresses
msgid "L10N Din5008 Addresses"
msgstr "Indirizzi L10N Din5008"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_document_title
msgid "L10N Din5008 Document Title"
msgstr "Titolo del documento L10N Din5008"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_template_data
msgid "L10N Din5008 Template Data"
msgstr "Dati modello L10N Din5008"
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "Page: <span class=\"page\"/> of <span class=\"topage\"/>"
msgstr "Pagina: <span class=\"page\"/> di <span class=\"topage\"/>"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Reference"
msgstr "Riferimento"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Shipping Address:"
msgstr "Indirizzo di spedizione:"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Source"
msgstr "Fonte"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street
msgid "Street"
msgstr "Strada"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street2
msgid "Street2"
msgstr "Strada 2"
#. module: l10n_din5008
#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__account_fiscal_country_id
msgid "The country to use the tax reports from for this company"
msgstr "Il paese da cui utilizzare i report fiscali per questa società"
#. module: l10n_din5008
#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__company_registry
msgid ""
"The registry number of the company. Use it if it is different from the Tax "
"ID. It must be unique across all partners of a same country"
msgstr ""
"Il numero di registro dell'azienda. Inseriscilo se è diverso dalla partita "
"IVA. Deve essere unico per tutti i partner di una stessa nazione"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Vendor Bill"
msgstr "Fattura fornitore"
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Vendor Credit Note"
msgstr "Nota di credito fornitore"
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__zip
msgid "Zip"
msgstr "CAP"

View file

@ -0,0 +1,278 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_din5008
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-02-13 21:49+0000\n"
"PO-Revision-Date: 2024-02-13 21:49+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_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css
msgid ""
"&amp;.din_page {\n"
" &amp;.header {\n"
" .company_header {\n"
" .name_container {\n"
" color:"
msgstr ""
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css
msgid ""
";\n"
" }\n"
" }\n"
" }\n"
" h2 {\n"
" color:"
msgstr ""
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css
msgid ""
";\n"
" }\n"
" }\n"
" }\n"
" &amp;.invoice_note {\n"
" td {\n"
" .address {\n"
" &gt; span {\n"
" color:"
msgstr ""
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.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_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "<span>|</span>"
msgstr ""
#. module: l10n_din5008
#: model:ir.model,name:l10n_din5008.model_account_analytic_line
msgid "Analytic Line"
msgstr ""
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "BIC:"
msgstr ""
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__bank_ids
msgid "Banks"
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Cancelled Invoice"
msgstr ""
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__city
msgid "City"
msgstr ""
#. module: l10n_din5008
#: model:ir.model,name:l10n_din5008.model_base_document_layout
msgid "Company Document Layout"
msgstr ""
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__company_registry
msgid "Company ID"
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Credit Note"
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Draft Invoice"
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Due Date"
msgstr ""
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__account_fiscal_country_id
msgid "Fiscal Country"
msgstr ""
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "HRB Nr:"
msgstr ""
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "IBAN:"
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Invoice"
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Invoice Date"
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Invoice No."
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Invoicing Address:"
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Invoicing and Shipping Address:"
msgstr ""
#. module: l10n_din5008
#: model:ir.model,name:l10n_din5008.model_account_move
msgid "Journal Entry"
msgstr ""
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_addresses
#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_addresses
#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_addresses
msgid "L10N Din5008 Addresses"
msgstr ""
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_document_title
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_document_title
msgid "L10N Din5008 Document Title"
msgstr ""
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_template_data
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_template_data
msgid "L10N Din5008 Template Data"
msgstr ""
#. module: l10n_din5008
#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008
msgid "Page: <span class=\"page\"/> of <span class=\"topage\"/>"
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#: code:addons/l10n_din5008/models/base_document_layout.py:0
#, python-format
msgid "Reference"
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Shipping Address:"
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Source"
msgstr ""
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street
msgid "Street"
msgstr ""
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street2
msgid "Street2"
msgstr ""
#. module: l10n_din5008
#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__account_fiscal_country_id
msgid "The country to use the tax reports from for this company"
msgstr ""
#. module: l10n_din5008
#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__company_registry
msgid ""
"The registry number of the company. Use it if it is different from the Tax "
"ID. It must be unique across all partners of a same country"
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Vendor Bill"
msgstr ""
#. module: l10n_din5008
#. odoo-python
#: code:addons/l10n_din5008/models/account_move.py:0
#, python-format
msgid "Vendor Credit Note"
msgstr ""
#. module: l10n_din5008
#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__zip
msgid "Zip"
msgstr ""

View file

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

View file

@ -0,0 +1,58 @@
from odoo import models, fields, _
from odoo.tools import format_date
class AccountMove(models.Model):
_inherit = 'account.move'
l10n_din5008_template_data = fields.Binary(compute='_compute_l10n_din5008_template_data')
l10n_din5008_document_title = fields.Char(compute='_compute_l10n_din5008_document_title')
l10n_din5008_addresses = fields.Binary(compute='_compute_l10n_din5008_addresses', exportable=False)
def _compute_l10n_din5008_template_data(self):
for record in self:
record.l10n_din5008_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_din5008_document_title(self):
for record in self:
record.l10n_din5008_document_title = ''
if record.move_type == 'out_invoice':
if record.state == 'posted':
record.l10n_din5008_document_title = _('Invoice')
elif record.state == 'draft':
record.l10n_din5008_document_title = _('Draft Invoice')
elif record.state == 'cancel':
record.l10n_din5008_document_title = _('Cancelled Invoice')
elif record.move_type == 'out_refund':
record.l10n_din5008_document_title = _('Credit Note')
elif record.move_type == 'in_refund':
record.l10n_din5008_document_title = _('Vendor Credit Note')
elif record.move_type == 'in_invoice':
record.l10n_din5008_document_title = _('Vendor Bill')
def _compute_l10n_din5008_addresses(self):
for record in self:
record.l10n_din5008_addresses = data = []
if record.partner_shipping_id == record.partner_id:
data.append((_("Invoicing and Shipping Address:"), record.partner_shipping_id))
elif record.move_type in ("in_invoice", "in_refund") or not record.partner_shipping_id:
data.append((_("Invoicing and Shipping Address:"), record.partner_id))
else:
data.append((_("Shipping Address:"), record.partner_shipping_id))
data.append((_("Invoicing Address:"), record.partner_id))
def check_field_access_rights(self, operation, field_names):
field_names = super().check_field_access_rights(operation, field_names)
return [field_name for field_name in field_names if field_name not in {
'l10n_din5008_addresses',
}]

View file

@ -0,0 +1,27 @@
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)
account_fiscal_country_id = fields.Many2one(related='company_id.account_fiscal_country_id', readonly=True)
l10n_din5008_template_data = fields.Binary(compute='_compute_l10n_din5008_template_data')
l10n_din5008_document_title = fields.Char(compute='_compute_l10n_din5008_document_title')
def _compute_l10n_din5008_template_data(self):
self.l10n_din5008_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_din5008_document_title(self):
self.l10n_din5008_document_title = _('Invoice')

View file

@ -0,0 +1,15 @@
from odoo import models, fields
class AccountAnalyticLine(models.Model):
_inherit = 'account.analytic.line'
l10n_din5008_template_data = fields.Binary(compute='_compute_l10n_din5008_template_data')
l10n_din5008_document_title = fields.Char(compute='_compute_l10n_din5008_document_title')
def _compute_l10n_din5008_template_data(self):
for record in self:
record.l10n_din5008_template_data = []
def _compute_l10n_din5008_document_title(self):
for record in self:
record.l10n_din5008_document_title = ''

View file

@ -0,0 +1,206 @@
<?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>
<!-- New report layout for din5008 format -->
<template id="external_layout_din5008">
<div>
<div t-attf-class="header din_page o_company_#{company.id}_layout #{'din_page_pdf' if report_type == 'pdf' else ''}">
<table class="company_header table-borderless" 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>
<t t-set="layout_background_url"
t-value="'data:image/png;base64,%s' % company.layout_background_image.decode('utf-8') if company.layout_background_image and company.layout_background == 'Custom' else '/base/static/img/bg_background_template.jpg' if company.layout_background == 'Geometric' else ''" />
<div t-attf-class="din_page invoice_note article o_company_#{company.id}_layout {{'o_report_layout_background' if company.layout_background in ['Geometric', 'Custom'] else ''}} #{'din_page_pdf' if report_type == 'pdf' else ''}"
t-attf-style="{{ 'background-image: url(%s);' % layout_background_url if layout_background_url else '' }}"
t-att-data-oe-model="o and o._name"
t-att-data-oe-id="o and o.id"
t-att-data-oe-lang="o and o.env.context.get('lang')">
<table class="table-borderless" t-if="not skip_headers">
<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-out="address"/>
</div>
<div t-else="fallback_address">
<t t-esc="fallback_address"
t-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": True}' />
</div>
</div>
</td>
<td>
<div class="information_block">
<t t-if="'l10n_din5008_template_data' in company" t-set="template_data" t-value="company.l10n_din5008_template_data"/>
<t t-if="o and 'l10n_din5008_template_data' in o" t-set="template_data" t-value="o.l10n_din5008_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>
<div>
<tr t-if="o and 'l10n_din5008_addresses' in o">
<t t-foreach="o.l10n_din5008_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>
</div>
</table>
<h2 t-if="not skip_headers">
<span t-if="not o and not docs"><t t-esc="company.l10n_din5008_document_title"/></span>
<span t-else="">
<t t-set="o" t-value="docs[0]" t-if="not o" />
<span t-if="'l10n_din5008_document_title' in o"><t t-esc="o.l10n_din5008_document_title"/></span>
<span t-elif="'name' in o" t-field="o.name"/>
</span>
</h2>
<t t-out="0"/>
</div>
<div t-attf-class="din_page footer o_company_#{company.id}_layout #{'din_page_pdf' if report_type == 'pdf' else ''}">
<div class="text-end page_number">
<div class="text-muted">
Page: <span class="page"/> of <span class="topage"/>
</div>
</div>
<div class="company_details">
<table class="table-borderless">
<tr>
<td>
<ul class="list-inline text-nowrap">
<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.account_fiscal_country_id.vat_label or 'Tax ID'"/>:
<span t-if="forced_vat" t-esc="forced_vat"/>
<span t-else="" t-field="company.vat"/>
</li>
<li>HRB Nr: <span t-field="company.company_registry"/></li>
</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_din5008.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>

View file

@ -0,0 +1,192 @@
.din_page {
font-size: 9pt;
.container-fluid & { // center the invoice in portal preview
margin-left: auto;
margin-right: auto;
}
&.header {
table {
width: 100%;
img, h3, div.h3, td, tr {
padding: 0;
margin: 0;
}
h3, div.h3 {
color: $o-default-report-primary-color;
position: relative;
top: -10mm;
margin-bottom: -10mm;
}
img {
padding-top: 10mm;
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, [name=payment_communication], [name=payment_term], [name=comment], [name=note], [name=incoterm] {
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, .mt-4 > h2 {
display: none;
}
[name=invoice_line_table], [name=stock_move_table], .o_main_table {
margin-top: 8.46mm;
th {
color: $o-default-report-secondary-color;
}
}
tr {
td {
vertical-align: bottom;
}
}
}
}
&.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;
}
}
}
}
}
}
.din_page_pdf {
width: 180mm;
margin-left: -1rem;
}
// 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;
}
}
}

View file

@ -0,0 +1,42 @@
[project]
name = "odoo-bringout-oca-ocb-l10n_din5008"
version = "16.0.0"
description = "DIN 5008 - Odoo addon"
authors = [
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
]
dependencies = [
"odoo-bringout-oca-ocb-account>=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_din5008"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]