This commit is contained in:
esam 2026-01-21 13:47:20 -05:00
parent cae66f6bc2
commit 26633a6f16
116 changed files with 11080 additions and 6570 deletions

View File

@ -1,137 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:26+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: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr ""
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr ""
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr ""
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,144 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Nurlan Farajov <coolinuxoid@gmail.com>, 2024
# Jumshud Sultanov <cumshud@gmail.com>, 2024
# ERPGo Odoo <erpgo.odoo@gmail.com>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2025-11-07 15:23+0000\n"
"Last-Translator: ERPGo Odoo <erpgo.odoo@gmail.com>\n"
"Language-Team: Azerbaijani <https://translate.odoo.com/projects/odoo-18/"
"account_saft_import/az/>\n"
"Language: az\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.12.2\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Ləğv edin"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Şirkətlər"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Şirkət"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Yaradan"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Yaradılma tarixi"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Görünən Adı"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Fayl"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "İmport"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Son Yeniləyən"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Son Yenilənmə tarixi"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,145 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Petko Karamotchev, 2024
# aleksandar ivanov, 2024
# KeyVillage, 2024
# preslav <hackerz99999@gmail.com>, 2024
# Maria Boyadjieva <marabo2000@gmail.com>, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Maria Boyadjieva <marabo2000@gmail.com>, 2024\n"
"Language-Team: Bulgarian (https://app.transifex.com/odoo/teams/41243/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Счетоводни настройки"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Отказ"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Фирми"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Фирма"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Създаден от"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Създадено на"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Име за показване"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Файл"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Име на файл"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Внос"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Последно актуализирано от"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Последно актуализирано на"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,142 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Weblate <noreply-mt-weblate@weblate.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2025-11-17 16:33+0000\n"
"Last-Translator: Weblate <noreply-mt-weblate@weblate.org>\n"
"Language-Team: Bosnian <https://translate.odoo.com/projects/odoo-18/"
"account_saft_import/bs/>\n"
"Language: bs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.12.2\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Otkaži"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Kompanije"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Kompanija"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Kreirao"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Kreirano"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Prikazani naziv"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Datoteka"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Uvoz"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Zadnji ažurirao"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Zadnje ažurirano"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,147 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# marcescu, 2024
# RGB Consulting <odoo@rgbconsulting.com>, 2024
# Óscar Fonseca <tecnico@pyming.com>, 2024
# Iván Infantes Castarnado, 2024
# Quim - coopdevs <quim.rebull@coopdevs.org>, 2024
# Martin Trigaux, 2024
# Noemi Pla, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Noemi Pla, 2025\n"
"Language-Team: Catalan (https://app.transifex.com/odoo/teams/41243/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Assistent d'importació de compte SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Fitxer de dades comptables SAF-T per importar"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Paràmetres de comptabilitat"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Cancel·lar"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Empreses"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Empresa"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Empresa utilitzada per a la importació"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Creat per"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Creat el"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Nom mostrat"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Fitxer"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Nom de l'arxiu"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importar"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Importar SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Importar els saldos inicials dels comptes"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Importa les teves dades comptables des de formats de fitxer SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Última actualització per"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Última actualització el"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "Importació SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "Moviment de saldo inicial SAF-T"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Seleccionar un arxiu"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Primer hauries d'instal·lar una localització fiscal."

View File

@ -1,142 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
# Marta Wacławek, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Marta Wacławek, 2025\n"
"Language-Team: Czech (https://app.transifex.com/odoo/teams/41243/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: cs\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Nastavení účetnictví"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Zrušit"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Společnosti"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Společnost"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Vytvořeno uživatelem"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Vytvořeno dne"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Zobrazovací název"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Soubor"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Název souboru"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Import"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Naimportovat počáteční zůstatky účtu"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Naposledy upraveno uživatelem"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Naposledy upraveno dne"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "SAF-T Import"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Nejprve byste měli nainstalovat fiskální lokalizaci."

View File

@ -1,143 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Mads Søndergaard, 2024
# Pernille Kristensen <pernillekristensen1994@gmail.com>, 2024
# Martin Trigaux, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Martin Trigaux, 2024\n"
"Language-Team: Danish (https://app.transifex.com/odoo/teams/41243/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Regnskabsindstillinger"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Annullér"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Virksomheder"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Virksomhed"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Oprettet af"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Oprettet den"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Vis navn"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Fil"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Filnavn"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importer"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Sidst opdateret af"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Sidst opdateret den"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Du bør først installere en Finans Lokalisering."

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: German (https://app.transifex.com/odoo/teams/41243/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Buchhaltungsassistent für SAF-T-Import"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Zu importierende SAF-T-Datei für Buchhaltungsdaten"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Buchhaltungseinstellungen"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Abbrechen"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Unternehmen"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Unternehmen"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Für den Import verwendetes Unternehmen"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Erstellt von"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Erstellt am"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Anzeigename"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Datei"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Dateiname"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importieren"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "SAF-T importieren"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Kontoreröffnungssalden importieren"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Importieren Sie Ihre Buchhaltungsdaten aus SAF-T-Dateiformaten"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Zuletzt aktualisiert von"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Zuletzt aktualisiert am"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "SAF-T-Import"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "SAF-T-Eröffnungsbuchung"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Datei auswählen"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Sie sollten zuerst eine steuerliche Lokalisierung installieren."

View File

@ -1,143 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Kostas Goutoudis <goutoudis@gmail.com>, 2024
# Stefanos Nikou <stefanos.nikou@gmail.com>, 2024
# Martin Trigaux, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Martin Trigaux, 2024\n"
"Language-Team: Greek (https://app.transifex.com/odoo/teams/41243/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Ρυθμίσεις Λογιστικής"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Ακύρωση"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Εταιρίες"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Εταιρία"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Δημιουργήθηκε από"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Δημιουργήθηκε στις"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Εμφάνιση Ονόματος"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Αρχείο"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Όνομα αρχείου"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "Κωδικός"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Εισαγωγή"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Τελευταία Ενημέρωση από"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Τελευταία Ενημέρωση στις"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,145 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
# "Larissa Manderfeld (lman)" <lman@odoo.com>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2025-08-25 10:08+0000\n"
"Last-Translator: \"Larissa Manderfeld (lman)\" <lman@odoo.com>\n"
"Language-Team: Spanish <https://translate.odoo.com/projects/odoo-18/"
"account_saft_import/es/>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n != 0 && n % 1000000 == 0)"
" ? 1 : 2);\n"
"X-Generator: Weblate 5.12.2\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Asistente de importación de cuenta SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Archivo de información de contabilidad SAF-T a importar"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Opciones de contabilidad"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Cancelar"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Compañías"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Compañía"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Compañía usada para la importación"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Creado el"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Nombre para mostrar"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Archivo"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Nombre de archivo"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importar"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Importar SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Importar saldos de apertura de cuenta"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Importe sus datos de contabilidad desde formatos de archivos SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Última actualización por"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Última actualización el"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "Importación SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "Movimiento de saldo de apertura de SAF-T"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Seleccionar archivo"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Primero instale su localización fiscal."

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Spanish (Latin America) (https://app.transifex.com/odoo/teams/41243/es_419/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: es_419\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Asistente de importación SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Datos de contabilidad SAF-T por importar"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Ajustes de contabilidad"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Cancelar"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Empresas"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Empresa"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "La empresa que se usa para la importación"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Creado el"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Nombre en pantalla"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Archivo"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Nombre del archivo"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importar"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Importar SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Importar los saldos iniciales de la cuenta"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Importar sus datos de contabilidad desde archivos con formatos SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Última actualización por"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Última actualización el"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "Importación SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "Movimiento de apertura de saldo SAF-T"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Seleccionar archivo"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Primero debe instalar una localización fiscal."

View File

@ -1,145 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Stevin Lilla, 2024
# Egon Raamat <egon@avalah.ee>, 2024
# Arma Gedonsky <armagedonsky@hot.ee>, 2024
# Anna, 2024
# Birgit Vijar, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Birgit Vijar, 2024\n"
"Language-Team: Estonian (https://app.transifex.com/odoo/teams/41243/et/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: et\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Konto SAF-T impordi viisard"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Imporditav raamatupidamise SAF-T andmefail."
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Raamatupidamise seadistused"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Tühista"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Ettevõtted"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Ettevõte"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Impordiks kasutatud ettevõte"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Loonud"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Loodud"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Kuvatav nimi"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Fail"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Faili nimi"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Impordi"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Impordi SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Impordi algsaldod"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Impordi raamatupidamise andmed SAF-T faili formaadist"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Viimati uuendatud"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Viimati uuendatud"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "SAF-T import"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "SAF-T algsaldo kanne"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Vali fail"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Esmalt peaksite installima maksukeskkond. "

View File

@ -1,142 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# zakariya moradi, 2025
# Tiffany Chang, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Tiffany Chang, 2025\n"
"Language-Team: Persian (https://app.transifex.com/odoo/teams/41243/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: fa\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "تنظیمات حسابداری"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "لغو"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "شرکت‌ها"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "شرکت"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "ایجاد شده توسط"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "ایجاد شده در"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "نام نمایشی"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "پرونده"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "نام فایل"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "شناسه"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "ورود"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "آخرین بروز رسانی توسط"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "آخرین بروز رسانی در"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "ابتدا باید یک برنامه‌ برای تعیین موقعیت مالی نصب کنید."

View File

@ -1,147 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Martin Trigaux, 2024
# Kari Lindgren <kari.lindgren@emsystems.fi>, 2024
# Tuomo Aura <tuomo.aura@web-veistamo.fi>, 2024
# Tommi Rintala <tommi.rintala@gmail.com>, 2024
# Ossi Mantylahti <ossi.mantylahti@obs-solutions.fi>, 2024
# Jessica Jakara, 2025
# Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2025\n"
"Language-Team: Finnish (https://app.transifex.com/odoo/teams/41243/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Tili SAF-T tuonti-toiminto"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Kirjanpidon SAF-T-tiedosto, joka tuodaan"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Kirjanpidon asetukset"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Peruuta"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Yritykset"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Yritys"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Tuontia varten käytettävä yritys"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Luonut"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Luotu"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Näyttönimi"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Tiedosto"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Tiedostonnimi"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Tuo"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Tuo SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Tuo tilien avaussaldot"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Tuo kirjanpitotiedot SAF-T-tiedostoformaateista"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Viimeksi päivittänyt"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Viimeksi päivitetty"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "SAF-T Tuonti"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "SAF-T-avaussaldon muutos"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Valitse tiedosto"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Verotietojen asema on asennettava ensin."

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: French (https://app.transifex.com/odoo/teams/41243/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: fr\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Assistant d'import de comptes SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Fichier de données comptables SAF-T à importer"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Paramètres de comptabilité"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Annuler"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Sociétés"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Société"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Société utilisée pour l'import"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Créé par"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Créé le"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Nom d'affichage"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Fichier"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Nom de fichier"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Import"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Importer SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Importer les soldes d'ouverture"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Importer vos données comptables à partir des formats de fichier SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Dernière mise à jour par"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Dernière mise à jour le"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "Import SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "Mouvement du solde d'ouverture SAF-T"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Sélectionner un fichier"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Vous devez d'abord installer une localisation fiscale."

View File

@ -1,145 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# ZVI BLONDER <ZVIBLONDER@gmail.com>, 2024
# Moshe Flam <pashute@gmail.com>, 2024
# Martin Trigaux, 2024
# Lilach Gilliam <lilach.gilliam@gmail.com>, 2024
# Yihya Hugirat <hugirat@gmail.com>, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Yihya Hugirat <hugirat@gmail.com>, 2024\n"
"Language-Team: Hebrew (https://app.transifex.com/odoo/teams/41243/he/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: he\n"
"Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "הגדרות חשבונאות"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "בטל"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "חברות"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "חברה"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "נוצר על-ידי"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "נוצר ב-"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "שם לתצוגה"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "קובץ"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "שם קובץ"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "מזהה"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "ייבא"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "עודכן לאחרונה על-ידי"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "עדכון אחרון ב"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,144 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Martin Trigaux, 2024
# Wil Odoo, 2024
# Manav Shah, 2025
# Ujjawal Pathak, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Ujjawal Pathak, 2025\n"
"Language-Team: Hindi (https://app.transifex.com/odoo/teams/41243/hi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: hi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "अकाउंट SAF-T इंपोर्ट विज़ॉर्ड"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "अकाउंटिंग की SAF-T फाइल सिस्टम में डालनी है"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "अकाउंटिंग सेटिंग"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "रद्द"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "कंपनियां"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "संस्था"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "इंपोर्ट करने के लिए इस्तेमाल की गई कंपनी"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "द्वारा निर्मित"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "इस तारीख को बनाया गया"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "डिस्प्ले नाम"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "फ़ाइल"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "फ़ाइल का नाम"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "आईडी"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "इंपोर्ट करें"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "SAF-T इंपोर्ट करें"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "अकाउंट ओपनिंग बैलेंस इंपोर्ट करें"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "अपनी अकाउंटिंग जानकारी SAF-T फ़ाइल से सिस्टम में इंपोर्ट करें"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "इन्होंने आखिरी बार अपडेट किया"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "आखिरी बार अपडेट हुआ"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "SAF-T इंपोर्ट"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "SAF-T ओपनिंग बैलेंस मूव"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "फ़ाइल चुनें"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "आपको पहले अपने देश के टैक्स और अकाउंटिंग नियम इंस्टॉल करने होंगे."

View File

@ -1,143 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Vladimir Olujić <olujic.vladimir@storm.hr>, 2024
# Karolina Tonković <karolina.tonkovic@storm.hr>, 2024
# Bole <bole@dajmi5.com>, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>, 2024\n"
"Language-Team: Croatian (https://app.transifex.com/odoo/teams/41243/hr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: hr\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Postavke računovodstva"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Otkaži"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Tvrtke"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Tvrtka"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Kreirao"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Kreirano"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Naziv za prikaz"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Datoteka"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Naziv datoteke"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Uvoz"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Promijenio"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Promijenjeno"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,146 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Kovács Tibor <kovika@gmail.com>, 2024
# Martin Trigaux, 2024
# Tamás Dombos, 2024
# Ákos Nagy <akos.nagy@oregional.hu>, 2024
# krnkris, 2024
# gezza <geza.nagy@oregional.hu>, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: gezza <geza.nagy@oregional.hu>, 2024\n"
"Language-Team: Hungarian (https://app.transifex.com/odoo/teams/41243/hu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Könyvelés beállítások"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Visszavonás"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Vállalatok"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Vállalat"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Létrehozta"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Létrehozva"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Megjelenített név"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Fájl"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Fájlnév"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importálás"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Frissítette"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Frissítve"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Indonesian (https://app.transifex.com/odoo/teams/41243/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Alat bantu impor Akun SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "File data SAF-T Akuntansi untuk diimpor"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Pengaturan Akuntansi"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Batal"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Perusahaan"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Perusahaan"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Perusahaan digunakan untuk impor"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Dibuat oleh"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Dibuat pada"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Nama Tampilan"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "File"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Nama file"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Impor"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Impor SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Impor saldo buka akun"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Impor data akuntansi Anda dari file format SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Terakhir Diperbarui oleh"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Terakhir Diperbarui pada"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "Impor SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "Pergerakkan saldo buka SAF-T"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Pilih File"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Anda sebaiknya menginstal Lokalisasi Fiskal terlebih dahulu"

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Italian (https://app.transifex.com/odoo/teams/41243/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: it\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Procedura guidata importazione conto SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "File dati SAF-T contabilità da importare"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Impostazioni contabilità"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Annulla"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Aziende"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Azienda"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Azienda utilizzata per l'importazione"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Creato da"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Creato il"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Nome visualizzato"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "File"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Nome file"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importa"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Importa SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Importa saldi di apertura"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Importa i dati contabili da file con formato SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Ultimo aggiornamento di"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Ultimo aggiornamento il"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "Importazione SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "Movimento saldo di apertura SAF-T"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Seleziona file"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Deve prima essere installata una localizzazione fiscale."

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "アカウント SAF-T インポートウィザード"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "未インポート会計SAF-Tデータファイル"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "会計設定"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "キャンセル"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "会社"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "会社"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "インポートに使用された会社"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "作成者"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "作成日"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "表示名"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "ファイル"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "ファイル名"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "インポート"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "SAF-Tをインポート"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "口座開設残高をインポート"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "SAF-Tファイルフォーマットから会計データをインポート"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "最終更新者"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "最終更新日"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "SAF-T インポート"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "SAF-T開設残高記帳"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "ファイルを選択"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "まずは会計ローカライゼーションをインストールして下さい。"

View File

@ -1,142 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Odoo Translation Bot <c3p@odoo.com>, 2025.
# Weblate <noreply-mt-weblate@weblate.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2025-11-17 16:33+0000\n"
"Last-Translator: Weblate <noreply-mt-weblate@weblate.org>\n"
"Language-Team: Kabyle <https://translate.odoo.com/projects/odoo-18/"
"account_saft_import/kab/>\n"
"Language: kab\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.12.2\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Sefsex"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Tikebbaniyin"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Takebbwanit"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Yerna-t"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Yerna di"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "Asulay"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr ""
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Aleqqem aneggaru sɣuṛ"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Aleqqem aneggaru di"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Korean (https://app.transifex.com/odoo/teams/41243/ko/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ko\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "계정 SAF-T 가져오기 마법사"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "가져올 회계 SAF-T 데이터 파일"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "회계 설정"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "취소"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "회사"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "회사"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "가져오기에 사용된 회사"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "작성자"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "작성일자"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "표시명"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "파일"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "파일명"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "가져오기"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "SAF-T 가져오기"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "계좌 개설 잔액 가져오기"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "SAF-T 파일 형식에서 회계 데이터 가져오기"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "최근 갱신한 사람"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "최근 갱신 일자"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "SAF-T 가져오기"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "SAF-T 개시 잔액 이동"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "파일 선택"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "재정 현지화 항목을 먼저 설치해야 합니다."

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Raz Omer Hussein, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Raz Omer Hussein, 2025\n"
"Language-Team: Kurdish (https://app.transifex.com/odoo/teams/41243/ku/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ku\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "ڕەتکردنەوە"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "کۆمپانیاکان"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "کۆمپانیا"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "دروستکراوە لەلایەن..."
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "دروستکراوە لە"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr ""
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "دوایین نوێکردنەوە لەلایەن..."
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "دوایین نوێکردنەوە لە..."
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,145 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Linas Versada <linaskrisiukenas@gmail.com>, 2024
# Arunas V. <arunas@devoro.com>, 2024
# UAB "Draugiški sprendimai" <transifex@draugiskisprendimai.lt>, 2024
# digitouch UAB <digitouchagencyeur@gmail.com>, 2024
# Martin Trigaux, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Martin Trigaux, 2024\n"
"Language-Team: Lithuanian (https://app.transifex.com/odoo/teams/41243/lt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: lt\n"
"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Apskaitos nustatymai "
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Atšaukti"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Įmonės"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Įmonė"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Sukūrė"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Sukurta"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Rodomas pavadinimas"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Failas"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Failo pavadinimas"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importuoti"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Paskutinį kartą atnaujino"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Paskutinį kartą atnaujinta"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,145 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Armīns Jeltajevs <armins.jeltajevs@gmail.com>, 2024
# Arnis Putniņš <arnis@allegro.lv>, 2024
# Konstantins Zabogonskis <inculin4ik@gmail.com>, 2024
# ievaputnina <ievai.putninai@gmail.com>, 2024
# Martin Trigaux, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Martin Trigaux, 2024\n"
"Language-Team: Latvian (https://app.transifex.com/odoo/teams/41243/lv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: lv\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Grāmatvedības uzstādījumi"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Atcelt"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Uzņēmumi"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Uzņēmums"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Izveidoja"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Izveidots"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Nosaukums"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Fails"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Faila nosaukums"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importēt"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Pēdējo reizi atjaunoja"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Pēdējās izmaiņas"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,143 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Ubuntu Erka <erdenebold10@gmail.com>, 2024
# Batmunkh Ganbat <batmunkh2522@gmail.com>, 2024
# Martin Trigaux, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Martin Trigaux, 2024\n"
"Language-Team: Mongolian (https://app.transifex.com/odoo/teams/41243/mn/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: mn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Санхүүгийн тохиргоо"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Цуцлах"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Компаниуд"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Компани"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Үүсгэсэн этгээд"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Үүсгэсэн огноо"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Дэлгэрэнгүй нэр"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Файл"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Файлын нэр"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Импортлох"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Сүүлд зассан этгээд"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Сүүлд зассан огноо"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Oakarmin Iron <oakarminiron@gmail.com>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2025-10-09 07:27+0000\n"
"Last-Translator: Oakarmin Iron <oakarminiron@gmail.com>\n"
"Language-Team: Burmese <https://translate.odoo.com/projects/odoo-18/"
"account_saft_import/my/>\n"
"Language: my\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.12.2\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "ပယ်ဖျက်"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "ကုမ္ပဏီများ"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "ကုမ္ပဏီ"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "ဖန်တီးသူ"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "ဖန်တီးချိန်"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "ပြသသော အမည်"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "ဖိုင်"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "အိုင်ဒီ"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "အင်ပို့"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "နောက်ဆုံးပြင်ဆင်သူ"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "နောက်ဆုံးပြင်ဆင်ချိန်"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,144 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Jorunn D. Newth, 2024
# Thor Arne Hvidsten <thor.arne.hvidsten@gmail.com>, 2024
# Marius Stedjan <marius@stedjan.com>, 2024
# Martin Trigaux, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Martin Trigaux, 2024\n"
"Language-Team: Norwegian Bokmål (https://app.transifex.com/odoo/teams/41243/nb/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: nb\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Regnskapsinnstillinger"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Avbryt"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Firmaer"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Firma"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Opprettet av"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Opprettet den"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Visningsnavn"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Fil"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Filnavn"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Import"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Sist oppdatert av"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Sist oppdatert"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Dutch (https://app.transifex.com/odoo/teams/41243/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Account SAF-T importwizard"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Te importeren SAF-T-boekhoudgegevensbestand"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Boekhoudinstellingen"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Annuleren"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Bedrijven"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Bedrijf"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Bedrijf gebruikt voor import"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Aangemaakt door"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Aangemaakt op"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Schermnaam"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Bestand"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Bestandsnaam"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Import"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "SAF-T importeren"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Openingssaldi importeren"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Importeer je boekhoudgegevens uit SAF-T-bestanden"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Laatst bijgewerkt door"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Laatste bijgewerkt op"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "SAF-T import"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "SAF-T openingssaldo"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Selecteer bestand"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Je moet eerst een fiscale lokalisatie installeren."

View File

@ -1,147 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
# Marta Wacławek, 2025
#
# Weblate <noreply-mt-weblate@weblate.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2025-11-15 18:34+0000\n"
"Last-Translator: Weblate <noreply-mt-weblate@weblate.org>\n"
"Language-Team: Polish <https://translate.odoo.com/projects/odoo-18/"
"account_saft_import/pl/>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && ("
"n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && "
"n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
"X-Generator: Weblate 5.12.2\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Kreator importu konta SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Plik danych księgowych SAF-T do importu"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Ustawienia księgowości"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Anuluj"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Firmy"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Firma"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Firma wykorzystywana do importu"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Utworzył(a)"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Data utworzenia"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Nazwa wyświetlana"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Plik"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Nazwa pliku"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importuj"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Import SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Importuj salda początkowe kont"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Importuj dane księgowe z formatów pliku SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Ostatnio aktualizowane przez"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Data ostatniej aktualizacji"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "Import SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "Saldo otwarcia SAF-T"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Wybierz plik"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "W pierwszej kolejności należy zainstalować lokalizację fiskalną."

View File

@ -1,146 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# NumerSpiral HBG, 2025
# Peter Lawrence Romão <peterromao@yahoo.co.uk>, 2025
# Wil Odoo, 2025
# Weblate <noreply-mt-weblate@weblate.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2025-11-15 18:34+0000\n"
"Last-Translator: Weblate <noreply-mt-weblate@weblate.org>\n"
"Language-Team: Portuguese <https://translate.odoo.com/projects/odoo-18/"
"account_saft_import/pt/>\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : ((n != 0 && n % "
"1000000 == 0) ? 1 : 2);\n"
"X-Generator: Weblate 5.12.2\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Assistente de importação de SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Arquivo de dados contábeis SAF-T a importar"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Definições da Contabilidade"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Cancelar"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Empresas"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Empresa"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Empresa utilizada para importação"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Criado por"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Criado em"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Nome a Exibir"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Ficheiro"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Nome de ficheiro"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "Id."
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importar"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Importar SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Importar saldos iniciais de contas"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Importar dados contábeis de formatos de arquivo SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Última Atualização por"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Última Atualização em"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "Importação SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "Movimento do saldo inicial do SAF-T"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Selecionar arquivo"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "É necessário instalar uma localização fiscal primeiro."

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/odoo/teams/41243/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Assistente de importação de SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Arquivo de dados contábeis SAF-T a importar"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Definições financeiras"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Cancelar"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Empresas"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Empresa"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Empresa utilizada para importação"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Criado por"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Criado em"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Nome exibido"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Arquivo"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Nome do arquivo"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importar"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Importar SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Importar saldos iniciais de contas"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Importar dados contábeis de formatos de arquivo SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Última atualização por"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Última atualização em"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "Importação SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "Movimento do saldo inicial do SAF-T"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Selecionar arquivo"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Você deve instalar uma localização fiscal primeiro."

View File

@ -1,143 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Lyall Kindmurr, 2024
# Wil Odoo, 2024
# Larisa_nexterp, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Larisa_nexterp, 2025\n"
"Language-Team: Romanian (https://app.transifex.com/odoo/teams/41243/ro/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ro\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Asistent import SAF-T cont"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Fișierul de date SAF-T contabil ce urmează a fi importat"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Setări contabilitate"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Anulează"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Companii"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Companie"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Compania folosită pentru import"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Creat de"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Creat pe"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Nume afișat"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Fișier"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Nume fișier"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importă"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Importă SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Importă soldurile de deschidere ale conturilor"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Importă datele contabile din fișiere SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Ultima actualizare făcută de"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Ultima actualizare pe"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "Import SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "Mișcare sold de deschidere SAF-T"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Selectează fișier"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Ar trebui să instalați mai întâi o localizare fiscală."

View File

@ -1,142 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
# Anastasiia Koroleva, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Anastasiia Koroleva, 2025\n"
"Language-Team: Russian (https://app.transifex.com/odoo/teams/41243/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Мастер импорта счета SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Импортируемый файл данных бухгалтерского учета SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Бухгалтерские настройки"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Отменить"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Компании"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Компания"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Компания, используемая для импорта"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Создано:"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Дата создания:"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Отображаемое имя"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Файл"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Название файла"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Импорт"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Импорт SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Импортируйте начальные остатки по счетам"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Импорт бухгалтерских данных из файлов формата SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Последнее обновление:"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Дата последнего обновления:"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "SAF-T Импорт"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "Перемещение баланса открытия SAF-T"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Выбрать файл"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Сначала необходимо установить фискальную локализацию."

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Slovak (https://app.transifex.com/odoo/teams/41243/sk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sk\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Nastavenia účtovníctva"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Zrušené"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Spoločnosti"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Spoločnost"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Vytvoril"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Vytvorené"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Zobrazovaný Názov"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Súbor"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Názov súboru"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Import"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Naposledy upravoval"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Naposledy upravované"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Najskôr by ste si mali nainštalovať fiškálnu lokalizáciu."

View File

@ -1,142 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
# Aleš Pipan, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Aleš Pipan, 2025\n"
"Language-Team: Slovenian (https://app.transifex.com/odoo/teams/41243/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Čarovnik za uvoz računa SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Računovodska podatkovna datoteka SAF-T za uvoz"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Nastavitve računovodstva"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Prekliči"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Podjetja"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Podjetje"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Podjetje, uporabljeno za uvoz"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Ustvaril"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Ustvarjeno"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Prikazani naziv"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Datoteka"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Naziv datoteke"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Uvozi"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Uvoz SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Uvozi začetna stanja na računu"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Uvozite svoje računovodske podatke iz formatov datotek SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Zadnji posodobil"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Zadnjič posodobljeno"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "SAF-T Uvoz"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "SAF-T premik začetnega stanja"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Izberite datoteko"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Najprej morate namestiti fiskalno lokalizacijo."

View File

@ -1,142 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Weblate <noreply-mt-weblate@weblate.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2025-11-15 18:35+0000\n"
"Last-Translator: Weblate <noreply-mt-weblate@weblate.org>\n"
"Language-Team: Serbian (Latin script) <https://translate.odoo.com/projects/"
"odoo-18/account_saft_import/sr_Latn/>\n"
"Language: sr@latin\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.12.2\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Otkaži"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Preduzeća"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Kompanija"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Kreirao"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Kreirano"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Naziv za prikaz"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Datoteka"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Uvoz"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Poslednje izmenio/la"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Poslednje ažuriranje dana"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,147 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Haojun Zou <apollo_zhj@msn.com>, 2024
# Robin Calvin, 2024
# Anders Wallenquist <anders.wallenquist@vertel.se>, 2024
# Martin Trigaux, 2024
# Jakob Krabbe <jakob.krabbe@vertel.se>, 2024
# Weblate <noreply-mt-weblate@weblate.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2025-11-15 18:34+0000\n"
"Last-Translator: Weblate <noreply-mt-weblate@weblate.org>\n"
"Language-Team: Swedish <https://translate.odoo.com/projects/odoo-18/"
"account_saft_import/sv/>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.12.2\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr ""
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Inställningar för redovisning"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Avbryt"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Företag"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Företag"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Skapad av"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Skapad den"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Visningsnamn"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Fil"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Filnamn"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Importera"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Importera ingående saldon för konton"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr ""
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Senast uppdaterad av"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Senast uppdaterad den"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "SAF-T Import"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr ""
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Välj fil"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr ""

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Thai (https://app.transifex.com/odoo/teams/41243/th/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: th\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "เครื่องมือนำเข้า SAF-T ของบัญชี"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "ไฟล์ข้อมูลบัญชี SAF-T ที่จะนำเข้า"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "การตั้งค่าการบัญชี"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "ยกเลิก"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "บริษัท"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "บริษัท"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "บริษัทที่ใช้ในการนำเข้า"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "สร้างโดย"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "สร้างเมื่อ"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "แสดงชื่อ"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "ไฟล์"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "ชื่อไฟล์"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ไอดี"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "นำเข้า"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "นำเข้า SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "นำเข้ายอดคงเหลือเปิดบัญชี"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "นำเข้าข้อมูลบัญชีของคุณจากรูปแบบไฟล์ SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "อัปเดตครั้งล่าสุดโดย"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "อัปเดตครั้งล่าสุดเมื่อ"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "การนำเข้า SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "SAF-T การเปิดยอดคงเหลือ"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "เลือกไฟล์"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "คุณควรติดตั้งการประยุกต์ใช้ทางการเงินก่อน"

View File

@ -1,144 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# emre oktem, 2024
# Ediz Duman <neps1192@gmail.com>, 2024
# Murat Kaplan <muratk@projetgrup.com>, 2024
# Deniz Guvener_Odoo <degu@odoo.com>, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Deniz Guvener_Odoo <degu@odoo.com>, 2025\n"
"Language-Team: Turkish (https://app.transifex.com/odoo/teams/41243/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "SAF-T hesap içe aktarma sihirbazı"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "İçe aktarılacak Muhasebe SAF-T veri dosyası"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Muhasebe Ayarları"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "İptal"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Şirketler"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Firma"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "İçe aktarma için kullanılan şirket"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Tarafından oluşturuldu"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Oluşturuldu"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "İsim Göster"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Dosya"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Dosya Adı"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "İçe Aktar"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "İlgili Kişileri Tanımla"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Hesap açılış bakiyelerini içe aktar"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Muhasebe verilerinizi SAF-T dosya formatlarından içe aktarın"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Son Güncelleyen"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Son Güncelleme"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "Partnerleri Görüntüle"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "SAF-T açılış bakiyesi hareketi"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Dosya Seç"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Önce bir Mali Yerelleştirme modülü kurmalısınız."

View File

@ -1,142 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
# Alina Lisnenko <alina.lisnenko@erp.co.ua>, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Alina Lisnenko <alina.lisnenko@erp.co.ua>, 2025\n"
"Language-Team: Ukrainian (https://app.transifex.com/odoo/teams/41243/uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: uk\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Помічник імпорту рахунку SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Файл бухгалтерських даних SAF-T для імпорту"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Налаштування бухобілку"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Скасувати"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Компанії"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Компанія"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Компанія, що використовується для імпорту"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Створив"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Створено"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Назва для відображення"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Файл"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Назва файлу"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Імпорт"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Імпорт SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Імпортувати відкритий бухгалтерський баланс"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Імпортуйте ваші бухгалтерські дані з форматів файлу SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Востаннє оновив"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Останнє оновлення"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "Імпорт SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "Проводка відкритого балансу SAF-T"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Виберіть файл"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Спершу вам необхідно встановити схему оподаткування."

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Vietnamese (https://app.transifex.com/odoo/teams/41243/vi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: vi\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "Công cụ nhập SAF-T kế toán"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "Tệp dữ liệu kế toán SAF-T cần nhập"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "Cài đặt kế toán"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "Hủy"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "Công ty"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "Công ty"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "Công ty được sử dụng để nhập"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "Được tạo bởi"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "Được tạo vào"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "Tên hiển thị"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "Tệp"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "Tên tập tin"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "Nhập"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "Nhập SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "Nhập số dư đầu kỳ của tài khoản"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "Nhập dữ liệu kế toán của bạn từ định dạng tệp SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "Cập nhật lần cuối bởi"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "Cập nhật lần cuối vào"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "Nhập SAF-T"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "SAF-T opening balance move"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "Chọn tệp"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "Đầu tiên, bạn nên cài đặt Bản địa hoá tài chính."

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "账户 SAF-T 导入向导"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "要导入的会计 SAF-T 数据文件"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "会计设置"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "取消"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "公司"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "公司"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "用作导入的公司"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "创建人"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "创建日期"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "显示名称"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "文件"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "文件名"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "ID"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "导入"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "导入 SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "导入账户开户结余"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "从 SAF-T 文件格式导入会计数据"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "最后更新人"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "上次更新日期"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "SAF-T 导入"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "SAF-T 开户余额分录"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "选择文件"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "您应该首先安装财务本地化套装。"

View File

@ -1,141 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_saft_import
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-25 09:26+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Chinese (Taiwan) (https://app.transifex.com/odoo/teams/41243/zh_TW/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_account_saft_import_wizard
msgid "Account SAF-T import wizard"
msgstr "賬戶 SAF-T 匯入精靈"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "Accounting SAF-T data file to be imported"
msgstr "要匯入的會計 SAF-T 數據檔案"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "Accounting Settings"
msgstr "會計設定"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Cancel"
msgstr "取消"
#. module: account_saft_import
#: model:ir.model,name:account_saft_import.model_res_company
msgid "Companies"
msgstr "公司"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company"
msgstr "公司"
#. module: account_saft_import
#: model:ir.model.fields,help:account_saft_import.field_account_saft_import_wizard__company_id
msgid "Company used for the import"
msgstr "用作匯入的公司"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_uid
msgid "Created by"
msgstr "建立人員"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__create_date
msgid "Created on"
msgstr "建立於"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__display_name
msgid "Display Name"
msgstr "顯示名稱"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_id
msgid "File"
msgstr "文件"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__attachment_name
msgid "Filename"
msgstr "文件名"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__id
msgid "ID"
msgstr "識別號"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import"
msgstr "匯入"
#. module: account_saft_import
#. odoo-javascript
#: code:addons/account_saft_import/static/src/xml/account_saft_import_button.xml:0
msgid "Import SAF-T"
msgstr "匯入 SAF-T"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__import_opening_balance
msgid "Import account opening balances"
msgstr "匯入賬戶開戶結餘"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Import your accounting data from SAF-T file formats"
msgstr "從 SAF-T 檔案格式匯入會計數據"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_uid
msgid "Last Updated by"
msgstr "最後更新者"
#. module: account_saft_import
#: model:ir.model.fields,field_description:account_saft_import.field_account_saft_import_wizard__write_date
msgid "Last Updated on"
msgstr "最後更新於"
#. module: account_saft_import
#: model:ir.actions.act_window,name:account_saft_import.open_saft_import_wizard
#: model:ir.actions.server,name:account_saft_import.account_saft_import_action
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "SAF-T Import"
msgstr "SAF-T 匯入"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "SAF-T opening balance move"
msgstr "SAF-T 開戶結餘分錄"
#. module: account_saft_import
#: model_terms:ir.ui.view,arch_db:account_saft_import.account_saft_import_form
msgid "Select File"
msgstr "選擇檔案"
#. module: account_saft_import
#. odoo-python
#: code:addons/account_saft_import/wizard/import_wizard.py:0
msgid "You should install a Fiscal Localization first."
msgstr "你應該先安裝財政本地化套裝。"

View File

@ -0,0 +1,3 @@
from . import models
from . import wizard

View File

@ -0,0 +1,38 @@
{
'name': "SEPA Direct Debit",
'summary': "Collect payments from your customers through SEPA direct debit.",
'description': """
This module enables the generation of SEPA Direct Debit (SDD)-compliant XML files (consistent
with pain.008.001.02 specification) to send to your bank in order to
collect a set of payments.
""",
'category': 'Accounting/Accounting',
'depends': ['base_iban', 'odex30_account_batch_payment', 'account'],
'data': [
'security/account_sepa_direct_debit_security.xml',
'security/ir.model.access.csv',
'report/empty_mandate_report.xml',
'data/account_data.xml',
'data/sdd_payment_method.xml',
'data/sdd_mandate_state_cron.xml',
'data/email_templates.xml',
'views/sdd_mandate_views.xml',
'views/account_payment_view.xml',
'views/account_journal_dashboard_view.xml',
'views/report_invoice.xml',
'views/res_config_settings_views.xml',
'views/res_partner_view.xml',
'views/account_batch_payment_views.xml',
'views/account_move_view.xml',
'views/account_journal_views.xml',
'wizard/account_payment_register_view.xml',
'wizard/sdd_mandate_send_views.xml',
],
'license': 'OEEL-1',
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="sdd_mt_invoice_paid_with_mandate" model="mail.message.subtype">
<field name="name">Paid via direct debit</field>
<field name="res_model">account.move</field>
<field name="default" eval="False"/>
<field name="description">Invoice paid via direct debit.</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,219 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data>
<record id="email_template_sdd_mandate_expiring" model="mail.template">
<field name="name">SEPA Direct Debit mandate expiration warning</field>
<field name="subject">SEPA Direct Debit mandate expiration warning</field>
<field name="email_from">{{ (object.company_id.email_formatted or user.email_formatted) }}</field>
<field name="email_cc">{{ ','.join(object.message_follower_ids.mapped('email')) }}</field>
<field name="model_id" ref="odex30_account_sepa_direct_debit.model_sdd_mandate"/>
<field name="auto_delete" eval="True"/>
<field name="body_html" type="html">
<table border="0" cellpadding="0" cellspacing="0"
style="padding-top: 16px; background-color: #FFFFFF; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;">
<tr>
<td align="center">
<table border="0" cellpadding="0" cellspacing="0" width="590"
style="padding: 16px; background-color: #FFFFFF; color: #454748; border-collapse:separate;">
<tbody>
<!-- CONTENT -->
<tr>
<td align="center" style="min-width: 590px;">
<table border="0" cellpadding="0" cellspacing="0" width="590"
style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
<tr>
<td valign="top" style="font-size: 13px;">
<div>
Hello,<br/><br/>
A SEPA Direct Debit mandate will reach its automatic expiration date on <span t-out="format_date(object._get_expiry_date_per_mandate()[object])">2020-04-18</span><br/>
This can be caused by one of the following reason:
<ul>
<li>
That date is the mandate end date agreed upon signature.
</li>
<li>
It would then be more than 36 months since the last time this mandate was used.
</li>
</ul>
<div style="margin: 16px 0px 16px 0px;">
<a t-attf-href="{{ website_url }}/odoo/sdd-mandates/{{ object.id }}"
style="background-color: #4caf50; padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;">
Go to Mandate
</a>
</div>
Security Tip: Check that the domain name you are redirected to is: <b><a
t-att-href='object.get_base_url()' t-out="object.get_base_url() or ''">
https://yourcompany.odoo.com</a></b>
</div>
</td>
</tr>
<tr>
<td style="text-align:center;">
<hr width="100%"
style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<!-- POWERED BY -->
<tr>
<td align="center" style="min-width: 590px;">
<table border="0" cellpadding="0" cellspacing="0" width="590"
style="min-width: 590px; background-color: #F1F1F1; color: #454748; padding: 8px; border-collapse:separate;">
<tr>
<td style="text-align: center; font-size: 13px;">
Powered by <a target="_blank" href="https://www.odoo.com?utm_source=db&amp;utm_medium=auth"
style="color: #875A7B;">Odoo</a>
</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="590"
style="min-width: 590px; color: #454748; padding: 8px; border-collapse:separate;">
<tr>
<td style="text-align: center; font-size: 11px;">
PS: This is an automated email sent by EXP Accounting to notify you a SEPA Direct Debit mandate is going to get automatically closed.
</td>
</tr>
</table>
</td>
</tr>
</table>
</field>
</record>
<record id="email_template_sdd_pre_notification" model="mail.template">
<field name="name">SEPA Direct Debit Customer Pre-Notification mail</field>
<field name="subject">Payment notification {{ object.memo }}</field>
<field name="description">Sent to the customer to indicate their account will be charged</field>
<field name="email_from">{{ (object.company_id.email_formatted or user.email_formatted) }}</field>
<field name="email_to">{{ object.partner_id.email_formatted }}</field>
<field name="model_id" ref="odex30_account_batch_payment.model_account_payment"/>
<field name="lang">{{ object.partner_id.lang or user.lang }}</field>
<field name="auto_delete" eval="True"/>
<field name="body_html" type="html">
<table border="0" cellpadding="0" cellspacing="0" style="padding-top: 16px; background-color: #F1F1F1; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;"><tr><td align="center">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;">
<tbody>
<!-- HEADER -->
<tr>
<td align="center" style="min-width: 590px;">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
<tr><td valign="middle">
<t t-set="company" t-value="object.company_id"/>
<span style="font-size: 10px;">Your Direct Debit Payment Notification</span><br/>
</td></tr>
<tr><td valign="middle" align="right" t-if="not company.uses_default_logo">
<img t-attf-src="/logo.png?company={{ company.id }}" style="padding: 0px; margin: 0px; height: auto; width: 80px;" t-att-alt="company.name"/>
</td></tr>
<tr><td colspan="2" style="text-align:center;">
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin:16px 0px 16px 0px;"/>
</td></tr>
</table>
</td>
</tr>
<!-- CONTENT -->
<tr>
<td align="center" style="min-width: 590px;">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;">
<tr><td valign="top" style="font-size: 13px;">
Dear <t t-out="object.partner_id.name or ''">Azure Interior</t><br/>
<br/>
A Direct Debit payment request amounting to
<span style="font-weight:bold;" t-out="format_amount(object.amount, object.currency_id) or ''">$ 0.00</span>
will be sent to your bank.<br/>
Your account ending with <t t-out="ctx.get('iban_last_4') or ''">1234</t> will be automatically debited on the
<span style="font-weight:bold;" t-out="format_date(ctx.get('collection_date'))">2020-04-18</span>,
or shortly thereafter.<br/>
please make sure you have the requested funds.<br/>
<br/>
<t t-if="ctx.get('creditor_iban') or ctx.get('mandate_ref')">
Merchant data:<br/>
<ul>
<t t-if="ctx.get('creditor_iban')">
<li>IBAN: <t t-out="ctx['creditor_iban'] or ''">NO 93 8601 1117947</t></li>
</t>
<t t-if="ctx.get('mandate_ref')">
<li>SEPA DIRECT DEBIT MANDATE REFERENCE: <t t-out="ctx['mandate_ref'] or ''"></t></li>
</t>
</ul>
</t>
<br/>
Do not hesitate to contact us if you have any question.
</td></tr>
<tr><td style="text-align:center;">
<hr width="100%" style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin: 16px 0px 16px 0px;"/>
</td></tr>
</table>
</td>
</tr>
<!-- FOOTER -->
<tr>
<td align="center" style="min-width: 590px;">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: white; font-size: 11px; padding: 0px 8px 0px 8px; border-collapse:separate;">
<tr><td valign="middle" align="left">
<t t-out="company.name or ''">YourCompany</t>
</td></tr>
<tr><td valign="middle" align="left" style="opacity: 0.7;">
<t t-if="company.phone">
<t t-out="company.phone or ''">+1 650-123-4567</t> |
</t>
<t t-if="company.email">
<a t-attf-href="'mailto:%s' % {{ company.email }}" style="text-decoration:none; color: #454748;" t-out="company.email or ''">info@yourcompany.com</a> |
</t>
<t t-if="company.website">
<a t-attf-href="'%s' % {{ company.website }}" style="text-decoration:none; color: #454748;" t-out="company.website or ''">http://www.example.com</a>
</t>
</td></tr>
</table>
</td>
</tr>
</tbody>
</table>
</td></tr>
<!-- POWERED BY -->
<tr><td align="center" style="min-width: 590px;">
<table border="0" cellpadding="0" cellspacing="0" width="590" style="min-width: 590px; background-color: #F1F1F1; color: #454748; padding: 8px; border-collapse:separate;">
<tr><td style="text-align: center; font-size: 13px;">
Powered by <a target="_blank" href="https://www.odoo.com?utm_source=db&amp;utm_medium=mail" style="color: #875A7B;">Odoo</a>
</td></tr>
</table>
</td></tr>
</table>
</field>
</record>
<record id="email_template_sdd_new_mandate" model="mail.template">
<field name="name">SEPA Direct Debit Sending</field>
<field name="description">Email requesting the customer to sign the mandate attached</field>
<field name="model_id" ref="odex30_account_sepa_direct_debit.model_sdd_mandate_send"/>
<field name="subject">{{ object.partner_id.display_name }} SEPA Direct Debit Mandate</field>
<field name="auto_delete" eval="True"/>
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p style="margin: 0px; padding: 0px; font-size: 13px;">
Dear <t t-out="object.partner_id.display_name or ''">Azure Interior</t>
<br/>
<br/>
Here is your SEPA Direct Debit Mandate to sign to authorize
<t t-out="object.company_id.display_name or ''">YourCompany</t>
to send instructions to your bank to debit your account in accordance with the instructions from
<t t-out="object.company_id.display_name or ''">YourCompany</t>
Do not hesitate to contact us if you have any questions.
<br/>
Best regards,
<t t-if="not is_html_empty(user.signature)">
<br/><br/>
<t t-out="user.signature">--<br/>Mitchell Admin</t>
</t>
</p>
</div>
</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="sdd_mandate_state_cron" model="ir.cron">
<field name="name">Mandate state updater</field>
<field name="active" eval="True"/>
<field name="user_id" ref="base.user_root"/>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="model_id" ref="odex30_account_sepa_direct_debit.model_sdd_mandate"/>
<field name="state">code</field>
<field name="code">model.cron_update_mandates_states()</field>
<field name="priority">0</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="payment_method_sdd" model="account.payment.method">
<field name="name">SEPA Direct Debit</field>
<field name="code">sdd</field>
<field name="payment_type">inbound</field>
</record>
</data>
</odoo>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,12 @@
from . import account_batch_payment
from . import account_invoice
from . import account_journal
from . import account_payment
from . import account_partial_reconcile
from . import account_payment_method
from . import res_company
from . import res_config_settings
from . import res_partner
from . import res_partner_bank
from . import sdd_mandate

View File

@ -0,0 +1,286 @@
import ast
import base64
import re
from datetime import datetime, timedelta
from lxml import etree
from odoo import models, fields, api, _
from odoo.exceptions import RedirectWarning, ValidationError, UserError
from odoo.tools import SQL, format_date
from odoo.addons.odex30_account_sepa_direct_debit.models.sdd_mandate import SDD_MIN_PRENOT_PERIOD, SDD_FIRST_MIN_PRENOT_PERIOD
class AccountBatchPayment(models.Model):
_inherit = 'account.batch.payment'
sdd_required_collection_date = fields.Date(
string='Required Collection Date',
compute='_compute_sdd_required_collection_date', store=True,
help="Date when the company expects to receive the payments of this batch. "
"It can't be inferior to the sending day + the minimum pre-notification period.",
)
sdd_min_required_collection_date = fields.Date(compute='_compute_sdd_min_required_collection_date', export_string_translation=False)
sdd_first_time_payment_ids = fields.One2many('account.payment', compute='_compute_sdd_first_time_payment_ids', export_string_translation=False)
sdd_batch_booking = fields.Boolean(string="SDD Batch Booking", default=True, help="Request batch booking from the bank for the related bank statements.")
sdd_scheme = fields.Selection(string="SDD Scheme", selection=[('CORE', 'CORE'), ('B2B', 'B2B')],
help='The B2B scheme is an optional scheme,\noffered exclusively to business payers.\nSome banks/businesses might not accept B2B SDD.',
compute='_compute_sdd_scheme', store=True, readonly=False)
@api.depends('sdd_scheme')
def _compute_payment_ids_domain(self):
super()._compute_payment_ids_domain()
for batch in self:
domain = ast.literal_eval(batch.payment_ids_domain)
domain.extend([
'|',
('payment_method_id.code', 'not in', ('sdd', 'sepa_direct_debit')),
('sdd_mandate_id.sdd_scheme', '=', batch.sdd_scheme),
])
batch.payment_ids_domain = str(domain)
@api.depends('payment_ids')
def _compute_sdd_required_collection_date(self):
sepa_codes = set(self.env['account.payment.method']._get_sdd_payment_method_code())
for batch in self.filtered(lambda batch: batch.payment_method_code in sepa_codes):
if batch.sdd_required_collection_date: # Do not override when there is a time
batch.sdd_required_collection_date = batch.sdd_required_collection_date
continue
minimum_offset = SDD_FIRST_MIN_PRENOT_PERIOD
mandates = batch.payment_ids.sdd_mandate_id
all_used_mandates = batch._get_all_used_mandates()
if all(all_used_mandates.get(mandate, 0) > 0 for mandate in mandates):
minimum_offset = SDD_MIN_PRENOT_PERIOD
batch.sdd_required_collection_date = fields.Date.context_today(batch) + timedelta(
max([minimum_offset, *mandates.mapped('pre_notification_period')])
)
@api.depends('payment_ids')
def _compute_sdd_min_required_collection_date(self):
sepa_codes = set(self.env['account.payment.method']._get_sdd_payment_method_code())
for batch in self:
if batch.payment_method_code not in sepa_codes:
batch.sdd_min_required_collection_date = False
continue
mandates = batch.payment_ids.sdd_mandate_id
all_used_mandates = batch._get_all_used_mandates()
if all(all_used_mandates.get(mandate, 0) > 0 for mandate in mandates):
batch.sdd_min_required_collection_date = False
else:
batch.sdd_min_required_collection_date = fields.Date.context_today(batch) + timedelta(
SDD_FIRST_MIN_PRENOT_PERIOD
)
@api.depends('payment_ids')
def _compute_sdd_first_time_payment_ids(self):
sepa_codes = set(self.env['account.payment.method']._get_sdd_payment_method_code())
for batch in self:
if batch.payment_method_code not in sepa_codes:
batch.sdd_first_time_payment_ids = False
continue
all_used_mandates = batch._get_all_used_mandates()
batch.sdd_first_time_payment_ids = batch.payment_ids.filtered(
lambda p: all_used_mandates.get(p.sdd_mandate_id, 0) == 0
)
@api.depends('payment_method_id')
def _compute_sdd_scheme(self):
sdd_payment_codes = self.payment_method_id._get_sdd_payment_method_code()
for batch in self:
if batch.payment_method_id.code not in sdd_payment_codes:
batch.sdd_scheme = False
else:
if batch.sdd_scheme:
batch.sdd_scheme = batch.sdd_scheme
else:
batch.sdd_scheme = batch.payment_ids and batch.payment_ids[0].sdd_mandate_scheme or 'CORE'
def _get_all_used_mandates(self):
self.ensure_one()
mandates = self.payment_ids.sdd_mandate_id
return dict(self.env['account.payment']._read_group([
('sdd_mandate_id', 'in', mandates.ids),
('is_matched', '=', True),
],
groupby=['sdd_mandate_id'],
aggregates=['__count'],
))
def _get_methods_generating_files(self):
rslt = super()._get_methods_generating_files()
rslt += self.payment_method_id._get_sdd_payment_method_code()
return rslt
@api.constrains('sdd_required_collection_date', 'payment_method_id')
def _check_minimal_collection_date(self):
sepa_codes = self.env['account.payment.method']._get_sdd_payment_method_code()
sepa_batch_payment = self.filtered(lambda p: p.payment_method_code in sepa_codes)
if not sepa_batch_payment:
return
for batch in sepa_batch_payment:
minimum_date = fields.Date.context_today(batch) + timedelta(days=SDD_MIN_PRENOT_PERIOD)
if batch.payment_method_code in sepa_codes and batch.sdd_required_collection_date < minimum_date:
raise ValidationError(_(
"The bank needs to be informed at least %(min_days_new)s days in advance for collections related "
"to a new mandate and %(min_days)s days in advance when the mandate is already known by them.\n"
"The minimum collection date must be %(date)s.",
min_days_new=SDD_FIRST_MIN_PRENOT_PERIOD,
min_days=SDD_MIN_PRENOT_PERIOD,
date=format_date(self.env, minimum_date),
))
@api.constrains('batch_type', 'journal_id', 'payment_ids', 'payment_method_id')
def _check_payments_constrains(self):
super(AccountBatchPayment, self)._check_payments_constrains()
for record in self.filtered(lambda r: r.payment_method_code in r.payment_method_id._get_sdd_payment_method_code()):
all_sdd_schemes = set(record.payment_ids.mapped('sdd_mandate_id.sdd_scheme'))
if len(all_sdd_schemes) > 1:
raise ValidationError(_("All the payments in the batch must have the same SDD scheme."))
def validate_batch(self):
self.ensure_one()
if self.payment_method_code in self.payment_method_id._get_sdd_payment_method_code():
today = fields.Date.context_today(self)
company = self.journal_id.company_id
if not company.sdd_creditor_identifier:
action = self.env.ref('account.action_account_config')
raise RedirectWarning(_(
"Your company must have a creditor identifier in order to issue SEPA Direct Debit payments requests. "
"It can be defined in accounting module's settings."
),
action=action.id,
button_text=_("Go to settings"),
)
payments_without_mandate = self.payment_ids.filtered(lambda x: not x.sdd_mandate_id)
if payments_without_mandate:
raise RedirectWarning(
_("Some payments are not linked to any mandate."),
action={
'name': _("Payments without mandate"),
'type': 'ir.actions.act_window',
'res_model': 'account.payment',
'views': [(self.env.ref('account.view_account_payment_tree').id, 'list')],
'domain': [('id', 'in', payments_without_mandate.ids)]
},
button_text=_("Go to payments"),
)
invalid_mandates = self.payment_ids.sdd_mandate_id._update_and_partition_state_by_validity()['invalid']
if invalid_mandates:
raise RedirectWarning(
_("Some payments are linked to an inactive mandate."),
action={
'name': _("Problematic mandates"),
'type': 'ir.actions.act_window',
'res_model': 'sdd.mandate',
'views': [(self.env.ref('odex30_account_sepa_direct_debit.account_sepa_direct_debit_mandate_tree').id, 'list')],
'domain': [('id', 'in', invalid_mandates.ids)],
},
button_text=_("Go to mandates"),
)
collection_date = self.sdd_required_collection_date
min_collection_date = today + timedelta(days=SDD_MIN_PRENOT_PERIOD)
if collection_date < min_collection_date:
raise UserError(_(
"You cannot generate a SEPA Direct Debit file with a required collection date inferior to the "
"sending day + the minimum pre-notification period of %(prenot_days)s days.\n"
"The minimum required date should be %(minimum_date)s.",
prenot_days=SDD_MIN_PRENOT_PERIOD,
minimum_date=format_date(self.env, min_collection_date),
))
if self.journal_id.bank_account_id.acc_type != 'iban':
raise RedirectWarning(_(
"Only IBAN account numbers can receive SEPA Direct Debit payments. "
"Please select a journal associated to one or add an IBAN bank account to the current journal"
),
action={
'name': self.journal_id.name,
'type': 'ir.actions.act_window',
'res_model': 'account.journal',
'res_id': self.journal_id.id,
'views': [(self.env.ref('account.view_account_journal_form').id, 'form')],
},
button_text=_("Go to journal"),
)
return super().validate_batch()
def _check_and_post_draft_payments(self, draft_payments):
rslt = []
if self.payment_method_code in self.payment_method_id._get_sdd_payment_method_code():
drafts_without_mandate = draft_payments.filtered(lambda x: not x.get_usable_mandate())
if drafts_without_mandate:
rslt = [{'title': _("Some draft payments could not be posted because of the lack of any active mandate."),
'records': drafts_without_mandate,
'help': _("To solve that, you should create a mandate for each of the involved customers, valid at the moment of the payment date.")
}]
draft_payments -= drafts_without_mandate
return rslt + super()._check_and_post_draft_payments(draft_payments)
def _generate_export_file(self):
if self.payment_method_code in self.payment_method_id._get_sdd_payment_method_code():
company = self.env.company
return {
'filename': 'PAIN008' + datetime.now().strftime('%Y%m%d%H%M%S') + '.xml',
'file': base64.encodebytes(self.payment_ids.generate_xml(company, self.sdd_required_collection_date, self.sdd_batch_booking)),
}
return super()._generate_export_file()
def _send_after_validation(self):
res = super()._send_after_validation()
if self.env['ir.config_parameter'].sudo().get_param('odex30_account_sepa_direct_debit.disable_sdd_pre_notification'):
return res
template = self.env.ref('odex30_account_sepa_direct_debit.email_template_sdd_pre_notification')
sdd_codes = set(self.env['account.payment.method']._get_sdd_payment_method_code())
for payment in self.payment_ids.filtered(lambda payment: payment.payment_method_code in sdd_codes and payment.sdd_mandate_id):
mandate = payment.sdd_mandate_id
sanitized_acc_number = mandate.partner_bank_id.sanitized_acc_number
anonymized_bank_account_number = f"{re.sub(r'.', '*', sanitized_acc_number[:-4])}{sanitized_acc_number[-4:]}"
ctx = {
'iban_last_4': sanitized_acc_number[-4:],
'mandate_ref': mandate.name,
'collection_date': payment.batch_payment_id.sdd_required_collection_date,
'amount': payment.amount,
'creditor_iban': anonymized_bank_account_number,
}
payment.with_context(ctx).message_post_with_source(source_ref=template, subtype_xmlid='mail.mt_note')
return res
def check_payments_for_errors(self):
rslt = super().check_payments_for_errors()
if self.payment_method_code not in self.payment_method_id._get_sdd_payment_method_code():
return rslt
if len(self.payment_ids):
sdd_scheme = self.payment_ids[0].sdd_mandate_id.sdd_scheme
dif_scheme_payements = self.payment_ids.filtered(lambda x: x.sdd_mandate_id.sdd_scheme != sdd_scheme)
if dif_scheme_payements:
rslt.append({
'title': _("All the payments in the batch must have the same SDD scheme."),
'records': dif_scheme_payements,
'help': _("SDD scheme is set on the customer mandate.")
})
return rslt

View File

@ -0,0 +1,56 @@
from odoo import api, fields, models, _
from odoo.exceptions import UserError
class AccountMove(models.Model):
_inherit = 'account.move'
sdd_mandate_id = fields.Many2one(related='origin_payment_id.sdd_mandate_id')
sdd_has_usable_mandate = fields.Boolean(compute='_compute_sdd_has_usable_mandate', search='_search_sdd_has_usable_mandate')
@api.model
def _search_sdd_has_usable_mandate(self, operator, value):
if (operator == '=' and value) or (operator == '!=' and not value):
domain_operator = 'in'
else:
domain_operator = 'not in'
query = """
SELECT
move.id
FROM
sdd_mandate mandate
LEFT JOIN
account_move move ON move.company_id = mandate.company_id AND
move.commercial_partner_id = mandate.partner_id
WHERE
move.move_type IN ('out_invoice', 'in_refund') AND
mandate.state = 'active' AND
mandate.start_date <= move.invoice_date AND
(mandate.end_date IS NULL OR mandate.end_date > move.invoice_date)
"""
self._cr.execute(query)
return [('id', domain_operator, [x['id'] for x in self._cr.dictfetchall()])]
@api.depends('company_id', 'commercial_partner_id', 'invoice_date')
def _compute_sdd_has_usable_mandate(self):
for rec in self:
rec.sdd_has_usable_mandate = bool(rec._sdd_get_usable_mandate())
def _sdd_get_usable_mandate(self):
if self.move_type in ('out_invoice', 'in_refund'):
return self.env['sdd.mandate']._sdd_get_usable_mandate(self.company_id.id, self.commercial_partner_id.id, self.invoice_date)
else:
return None
def _track_subtype(self, init_values):
self.ensure_one()
if 'state' in init_values and self.state in ('in_payment', 'paid') and self.move_type == 'out_invoice' and self.sdd_mandate_id:
return self.env.ref('odex30_account_sepa_direct_debit.sdd_mt_invoice_paid_with_mandate')
return super(AccountMove, self)._track_subtype(init_values)

View File

@ -0,0 +1,40 @@
from odoo import fields, models
class AccountJournal(models.Model):
_inherit = 'account.journal'
debit_sepa_pain_version = fields.Selection(
[
('pain.008.001.02', 'Default (Pain 008.001.02)'),
('pain.008.001.08', 'Updated 2023 (Pain 008.001.08)'),
],
required=True,
string='SEPA Direct Debit Pain Version',
default='pain.008.001.02',
)
def _default_inbound_payment_methods(self):
res = super()._default_inbound_payment_methods()
if self._is_payment_method_available('sdd'):
res |= self.env.ref('odex30_account_sepa_direct_debit.payment_method_sdd')
return res
def _get_journal_dashboard_data_batched(self):
dashboard_data = super()._get_journal_dashboard_data_batched()
self._fill_dashboard_data_count(dashboard_data, 'account.payment', 'sdd_payments_to_send_number', [
('payment_method_code', 'in', self.env['account.payment.method']._get_sdd_payment_method_code()),
('state', '=', 'in_process'),
('is_sent', '=', False),
('is_matched', '=', False),
])
return dashboard_data
def open_sdd_payments(self):
ctx = self._context.copy()
ctx.update({'default_journal_id': self.id, 'search_default_journal_id': self.id})
action = self.env['ir.actions.act_window']._for_xml_id('odex30_account_sepa_direct_debit.action_sdd_payments_to_collect')
action.update({'context': ctx})
return action

View File

@ -0,0 +1,14 @@
from odoo import api, models
class AccountPartialReconcile(models.Model):
_inherit = 'account.partial.reconcile'
@api.ondelete(at_uninstall=False)
def _unlink_sdd_mandate_and_invoice(self):
for partial in self:
for move in {partial.debit_move_id.move_id, partial.credit_move_id.move_id}:
if (move.is_invoice(include_receipts=True) and move.sdd_mandate_id):
payments_with_mandate = move._get_reconciled_payments().filtered(lambda p: p.sdd_mandate_id and p.move_id not in {partial.debit_move_id.move_id, partial.credit_move_id.move_id})
if not payments_with_mandate:
move.sdd_mandate_id = False

View File

@ -0,0 +1,259 @@
import time
from datetime import datetime
from odoo import models, fields, api, _
from odoo.exceptions import UserError
from odoo.tools.float_utils import float_repr
from odoo.tools.xml_utils import create_xml_node, create_xml_node_chain
from odoo.addons.odex30_account_batch_payment.models import sepa_mapping
from lxml import etree
class AccountPayment(models.Model):
_inherit = 'account.payment'
# used to inform the end user there is a SDD mandate that could be used to register that payment
sdd_mandate_usable = fields.Boolean(string="Could a SDD mandate be used?",
compute='_compute_usable_mandate')
sdd_mandate_scheme = fields.Selection(related='sdd_mandate_id.sdd_scheme', readonly=True)
sdd_mandate_id = fields.Many2one(
name="SDD Mandate",
comodel_name='sdd.mandate',
copy=False,
check_company=True,
compute='_compute_sdd_mandate_id',
store=True,
readonly=False,
help="Once this invoice has been paid with Direct Debit, contains the mandate that allowed the payment.")
@api.depends('payment_method_line_id', 'partner_id', 'date')
def _compute_sdd_mandate_id(self):
sepa_codes = self.env['account.payment.method']._get_sdd_payment_method_code()
for payment in self:
payment.sdd_mandate_id = payment.get_usable_mandate() if payment.payment_method_line_id.code in sepa_codes else False
@api.onchange('partner_id')
def _onchange_partner_id(self):
sepa_codes = self.env['account.payment.method']._get_sdd_payment_method_code()
for payment in self:
mandate = payment.get_usable_mandate()
if not mandate or payment.payment_method_line_id.code not in sepa_codes:
payment.sdd_mandate_id = False
elif mandate and not payment.sdd_mandate_id.filtered(lambda _mandate: _mandate.partner_id == payment.partner_id):
payment.payment_method_line_id = payment.available_payment_method_line_ids.filtered(lambda l: l.code == 'sdd')[0]
payment.sdd_mandate_id = mandate
def write(self, vals):
unpaid = self.filtered(lambda p: p.state == 'draft')
res = super().write(vals)
for pay in unpaid.filtered(lambda p: p.state == 'in_process'):
if pay.sdd_mandate_id:
matched_invoices = pay.move_id._get_reconciled_invoices() + pay.invoice_ids
matched_invoices.filtered(lambda m: m.sdd_mandate_id != pay.sdd_mandate_id).sdd_mandate_id = pay.sdd_mandate_id
if pay.sdd_mandate_id.one_off:
pay.sdd_mandate_id.sudo().action_close_mandate()
return res
@api.model
def split_node(self, string_node, max_size):
string_node = self._sanitize_communication(string_node)
byte_node = string_node.encode()
if len(byte_node) <= max_size:
return string_node, ''
while byte_node[max_size] >= 0x80 and byte_node[max_size] < 0xc0:
max_size -= 1
return byte_node[0:max_size].decode(), byte_node[max_size:].decode()
@api.depends('date', 'partner_id', 'company_id')
def _compute_usable_mandate(self):
for payment in self:
payment.sdd_mandate_usable = bool(payment.get_usable_mandate())
@api.constrains('partner_id', 'sdd_mandate_id')
def _validate_sdd_mandate_id(self):
for pay in self:
if pay.sdd_mandate_id and pay.sdd_mandate_id.partner_id != pay.partner_id.commercial_partner_id:
raise UserError(_("Trying to register a payment on a mandate belonging to a different partner."))
@api.model
def _sanitize_communication(self, communication):
# DEPRECATED - to be removed in master
return sepa_mapping.sanitize_communication(communication, None)
def generate_xml(self, company_id, required_collection_date, askBatchBooking):
version = self.journal_id.debit_sepa_pain_version
if not version:
raise UserError(_("Select a SEPA Direct Debit version before generating the XML."))
document = etree.Element("Document", nsmap={None: f'urn:iso:std:iso:20022:tech:xsd:{version}', 'xsi': "http://www.w3.org/2001/XMLSchema-instance"})
CstmrDrctDbtInitn = etree.SubElement(document, 'CstmrDrctDbtInitn')
self._sdd_xml_gen_header(company_id, CstmrDrctDbtInitn)
payments_per_journal = self._group_payments_per_bank_journal()
payment_info_counter = 0
for (journal, journal_payments) in payments_per_journal.items():
journal_payments._sdd_xml_gen_payment_group(company_id, required_collection_date, askBatchBooking, payment_info_counter, journal, CstmrDrctDbtInitn)
payment_info_counter += 1
return etree.tostring(document, pretty_print=True, xml_declaration=True, encoding='utf-8')
def get_usable_mandate(self):
return self.env['sdd.mandate']._sdd_get_usable_mandate(
self.company_id.id or self.env.company.id,
self.partner_id.commercial_partner_id.id,
self.date)
def _sdd_xml_gen_header(self, company_id, CstmrDrctDbtInitn):
GrpHdr = create_xml_node(CstmrDrctDbtInitn, 'GrpHdr')
create_xml_node(GrpHdr, 'MsgId', str(time.time())) # Using time makes sure the identifier is unique in an easy way
create_xml_node(GrpHdr, 'CreDtTm', datetime.now().strftime('%Y-%m-%dT%H:%M:%S'))
create_xml_node(GrpHdr, 'NbOfTxs', str(len(self)))
create_xml_node(GrpHdr, 'CtrlSum', float_repr(sum(x.amount for x in self), precision_digits=2)) # This sum ignores the currency, it is used as a checksum (see SEPA rulebook)
InitgPty = create_xml_node(GrpHdr, 'InitgPty')
create_xml_node(InitgPty, 'Nm', self.split_node(company_id.name, 70)[0])
create_xml_node_chain(InitgPty, ['Id', 'OrgId', 'Othr', 'Id'], company_id.sdd_creditor_identifier)
def _sdd_xml_gen_address(self, root_node, partner, sdd_version):
contact_address = partner._display_address(without_company=True)
if contact_address:
PstlAdr = create_xml_node(root_node, 'PstlAdr')
if sdd_version == 'pain.008.001.02':
if partner.country_id and partner.country_id.code:
create_xml_node(PstlAdr, 'Ctry', partner.country_id.code)
n_line = 0
contact_address = contact_address.replace('\n', ' ').strip()
while contact_address and n_line < 2:
left_split, right_split = self.split_node(contact_address, 70)
create_xml_node(PstlAdr, 'AdrLine', left_split)
contact_address = right_split
n_line = n_line + 1
elif sdd_version == 'pain.008.001.08':
if partner.street:
street_name = partner.street if not partner.street2 else f'{partner.street}, {partner.street2}'
create_xml_node(PstlAdr, 'StrtNm', self.split_node(street_name, 70)[0]) # Number and box in street
if partner.zip:
create_xml_node(PstlAdr, 'PstCd', partner.zip)
if partner.city:
create_xml_node(PstlAdr, 'TwnNm', partner.city)
else:
raise UserError(_('The debtor and creditor city name is a compulsary information when generating the SDD XML.'))
if partner.state_id and partner.state_id.name:
create_xml_node(PstlAdr, 'CtrySubDvsn', partner.state_id.name)
if partner.country_id and partner.country_id.code:
create_xml_node(PstlAdr, 'Ctry', partner.country_id.code)
else:
raise UserError(_('The debtor and creditor country is a compulsary information when generating the SDD XML.'))
else:
raise UserError(_('A SEPA direct debit version should be selected to generate the addresses in the export file.'))
def _sdd_xml_gen_payment_group(self, company_id, required_collection_date, askBatchBooking, payment_info_counter, journal, CstmrDrctDbtInitn):
sdd_version = self.journal_id.debit_sepa_pain_version
if not sdd_version:
raise UserError(_('A SEPA direct debit version should be selected to generate the export file.'))
PmtInf = create_xml_node(CstmrDrctDbtInitn, 'PmtInf')
create_xml_node(PmtInf, 'PmtInfId', CstmrDrctDbtInitn.find('GrpHdr/MsgId').text + '/' + str(payment_info_counter))
create_xml_node(PmtInf, 'PmtMtd', 'DD')
create_xml_node(PmtInf, 'BtchBookg', askBatchBooking and 'true' or 'false')
create_xml_node(PmtInf, 'NbOfTxs', str(len(self)))
create_xml_node(PmtInf, 'CtrlSum', float_repr(sum(x.amount for x in self), precision_digits=2)) # This sum ignores the currency, it is used as a checksum (see SEPA rulebook)
PmtTpInf = create_xml_node_chain(PmtInf, ['PmtTpInf', 'SvcLvl', 'Cd'], 'SEPA')[0]
sdd_scheme = self[0].sdd_mandate_id.sdd_scheme or 'CORE'
create_xml_node_chain(PmtTpInf, ['LclInstrm', 'Cd'], sdd_scheme)
create_xml_node(PmtTpInf, 'SeqTp', 'RCUR')
create_xml_node(PmtInf, 'ReqdColltnDt', fields.Date.from_string(required_collection_date).strftime("%Y-%m-%d"))
Cdtr = create_xml_node_chain(PmtInf, ['Cdtr', 'Nm'], self.split_node(company_id.name, 70)[0])[0] # SEPA regulation gives a maximum size of 70 characters for this field
if sdd_version == 'pain.008.001.08':
self._sdd_xml_gen_address(Cdtr, company_id.partner_id, sdd_version)
create_xml_node_chain(PmtInf, ['CdtrAcct', 'Id', 'IBAN'], journal.bank_account_id.sanitized_acc_number)
if journal.bank_id and journal.bank_id.bic:
bic_tag = 'BIC' if sdd_version == 'pain.008.001.02' else 'BICFI'
create_xml_node_chain(PmtInf, ['CdtrAgt', 'FinInstnId', bic_tag], journal.bank_id.bic.replace(' ', '').upper())
else:
create_xml_node_chain(PmtInf, ['CdtrAgt', 'FinInstnId', 'Othr', 'Id'], "NOTPROVIDED")
CdtrSchmeId_Othr = create_xml_node_chain(PmtInf, ['CdtrSchmeId', 'Id', 'PrvtId', 'Othr', 'Id'], company_id.sdd_creditor_identifier)[-2]
create_xml_node_chain(CdtrSchmeId_Othr, ['SchmeNm', 'Prtry'], 'SEPA')
for payment in self:
payment.sdd_xml_gen_payment(company_id, payment.partner_id, self.split_node(payment.name, 35)[0], PmtInf)
def sdd_xml_gen_payment(self, company_id, partner, end2end_name, PmtInf):
""" Appends to a SDD XML file being generated all the data related to the
payments of a given partner.
"""
# The two following conditions should never execute.
# They are here to be sure future modifications won't ever break everything.
if company_id not in self.company_id.parent_ids:
raise UserError(_("Trying to generate a Direct Debit XML file containing payments from another company than that file's creditor."))
if self.payment_method_line_id.code not in self.payment_method_id._get_sdd_payment_method_code():
raise UserError(_("Trying to generate a Direct Debit XML for payments coming from another payment method than SEPA Direct Debit."))
if not self.sdd_mandate_id:
raise UserError(_("The payment must be linked to a SEPA Direct Debit mandate in order to generate a Direct Debit XML."))
if self.sdd_mandate_id.state == 'revoked':
raise UserError(_("The SEPA Direct Debit mandate associated to the payment has been revoked and cannot be used anymore."))
sdd_version = self.journal_id.debit_sepa_pain_version
if not sdd_version:
raise UserError(_('A SEPA direct debit version should be selected to generate the export file.'))
DrctDbtTxInf = create_xml_node_chain(PmtInf, ['DrctDbtTxInf', 'PmtId', 'EndToEndId'], end2end_name)[0]
InstdAmt = create_xml_node(DrctDbtTxInf, 'InstdAmt', float_repr(self.amount, precision_digits=2))
InstdAmt.attrib['Ccy'] = self.currency_id.name
MndtRltdInf = create_xml_node_chain(DrctDbtTxInf, ['DrctDbtTx', 'MndtRltdInf', 'MndtId'], self.sdd_mandate_id.name)[-2]
create_xml_node(MndtRltdInf, 'DtOfSgntr', fields.Date.to_string(self.sdd_mandate_id.start_date))
if self.sdd_mandate_id.partner_bank_id.bank_id.bic:
bic_tag = 'BIC' if sdd_version == 'pain.008.001.02' else 'BICFI'
create_xml_node_chain(DrctDbtTxInf, ['DbtrAgt', 'FinInstnId', bic_tag], self.sdd_mandate_id.partner_bank_id.bank_id.bic.replace(' ', '').upper())
else:
create_xml_node_chain(DrctDbtTxInf, ['DbtrAgt', 'FinInstnId', 'Othr', 'Id'], 'NOTPROVIDED')
debtor_name = self.sdd_mandate_id.partner_bank_id.acc_holder_name or partner.name or partner.parent_id.name
Dbtr = create_xml_node_chain(DrctDbtTxInf, ['Dbtr', 'Nm'], self.split_node(debtor_name, 70)[0])[0]
self._sdd_xml_gen_address(Dbtr, partner, sdd_version)
if self.sdd_mandate_id.debtor_id_code:
chain_keys = ['Id', 'PrvtId', 'Othr', 'Id']
if partner.commercial_partner_id.is_company:
chain_keys = ['Id', 'OrgId', 'Othr', 'Id']
create_xml_node_chain(Dbtr, chain_keys, self.sdd_mandate_id.debtor_id_code)
create_xml_node_chain(DrctDbtTxInf, ['DbtrAcct', 'Id', 'IBAN'], self.sdd_mandate_id.partner_bank_id.sanitized_acc_number)
if self.memo:
create_xml_node_chain(DrctDbtTxInf, ['RmtInf', 'Ustrd'], self.split_node(self.memo, 140)[0])
def _group_payments_per_bank_journal(self):
""" Groups the payments of this recordset per associated journal, in a dictionnary of recordsets.
"""
rslt = {}
for payment in self:
if rslt.get(payment.journal_id, False):
rslt[payment.journal_id] += payment
else:
rslt[payment.journal_id] = payment
return rslt

View File

@ -0,0 +1,18 @@
from odoo import api, models
class AccountPaymentMethod(models.Model):
_inherit = 'account.payment.method'
@api.model
def _get_payment_method_information(self):
res = super()._get_payment_method_information()
res['sdd'] = {'mode': 'multi', 'type': ('bank',)}
return res
@api.model
def _get_sdd_payment_method_code(self):
res = super()._get_sdd_payment_method_code()
res.append('sdd')
return res

View File

@ -0,0 +1,49 @@
import re
from odoo import api, fields, models, _
from odoo.exceptions import ValidationError
SDD_CREDITOR_IDENTIFIER_REGEX_PATTERN = r"(?P<country_code>[A-Z]{2})(?P<check_digits>\d{2})(?P<business_code>.{3})(?P<country_identifier>.{1,28})"
class ResCompany(models.Model):
_inherit = 'res.company'
sdd_creditor_identifier = fields.Char(string='SDD creditor identifier', help="SEPA Direct Debit creditor identifier of the company, given by the bank.")
@api.constrains('sdd_creditor_identifier')
def validate_sdd_creditor_identifier(self):
for record in self:
if not record.sdd_creditor_identifier:
continue
if len(record.sdd_creditor_identifier) > 35:
raise ValidationError(_("The creditor identifier exceeds the maximum length of 35 characters."))
matcher = re.match(SDD_CREDITOR_IDENTIFIER_REGEX_PATTERN, record.sdd_creditor_identifier.upper())
if matcher:
country_code = matcher.group('country_code')
check_digits = matcher.group('check_digits')
country_identifier = matcher.group('country_identifier')
test_str = re.sub('[^A-Z0-9]', '', country_identifier) + country_code + '00'
converted_test_str = self._convert_sdd_test_str(test_str)
if (98 - int(converted_test_str) % 97) != int(check_digits): # Mod 97-10 validation test
raise ValidationError(_("Invalid creditor identifier. Make sure you made no typo."))
else:
raise ValidationError(_("Invalid creditor identifier. Wrong format."))
@api.model
def _convert_sdd_test_str(self, test_str):
ascii_value_shift = 55 # ord('A') - ascii_value_shift = 10
rslt = ''
for char in test_str:
if re.match('[A-Z]', char):
rslt += str(ord(char) - ascii_value_shift)
else:
rslt += char
return rslt

View File

@ -0,0 +1,8 @@
from odoo import fields, models
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
sdd_creditor_identifier = fields.Char(related='company_id.sdd_creditor_identifier', string='Creditor Identifier', readonly=False,
help='Creditor identifier of your company within SEPA scheme.')

View File

@ -0,0 +1,19 @@
from odoo import fields, models
class Partner(models.Model):
_inherit = 'res.partner'
sdd_mandate_ids = fields.One2many(comodel_name='sdd.mandate', inverse_name='partner_id',
help="Every mandate belonging to this partner.")
sdd_count = fields.Integer(compute='_compute_sdd_count', string="SDD count")
def _compute_sdd_count(self):
sdd_data = self.env['sdd.mandate']._read_group(
domain=[('partner_id', 'in', self.ids)],
groupby=['partner_id'],
aggregates=['__count'])
mapped_data = {partner.id: count for partner, count in sdd_data}
for partner in self:
partner.sdd_count = mapped_data.get(partner.id, 0)

View File

@ -0,0 +1,10 @@
from odoo import api, models, _
from odoo.exceptions import UserError
class ResPartnerBank(models.Model):
_inherit = "res.partner.bank"
@api.ondelete(at_uninstall=False)
def _unlink_except_linked_to_mandate(self):
if self.env['sdd.mandate'].search_count([('partner_bank_id', 'in', self.ids), ('state', '=', 'active')], limit=1):
raise UserError(_('You cannot delete a bank account linked to an active SEPA Direct Debit mandate.'))

View File

@ -0,0 +1,335 @@
from datetime import datetime
from odoo import Command, api, fields, models, _
from odoo.exceptions import RedirectWarning, UserError
SDD_MIN_PRENOT_PERIOD = 2
SDD_FIRST_MIN_PRENOT_PERIOD = 5
class SDDMandate(models.Model):
_name = 'sdd.mandate'
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
_description = 'SDD Mandate'
_check_company_auto = True
_order = 'start_date, id'
_sql_constraints = [('name_unique', 'unique(name)', "Mandate identifier must be unique! Please choose another one.")]
def _get_default_start_date(self):
return fields.Date.context_today(self)
state = fields.Selection(
selection=[
('draft', 'Draft'),
('active', 'Active'),
('cancelled', 'Cancelled'),
('revoked', 'Revoked'),
('closed', 'Closed'),
],
readonly=True,
default='draft',
tracking=True,
help="Draft: Validate before use.\n"
"Active: Valid mandates to collect payments.\n"
"Cancelled: Mandates never validated.\n"
"Closed: Expired or manually closed mandates. Previous transactions remain valid.\n"
"Revoked: Fraudulent mandates. Previous invoices might need reimbursement.\n"
)
is_sent = fields.Boolean(string="Sent to the customer", default=False)
one_off = fields.Boolean(string='One-off Mandate',
default=False,
help="True if and only if this mandate can be used for only one transaction. It will automatically go from 'active' to 'closed' after its first use in payment if this option is set.\n")
name = fields.Char(string='Identifier', required=True, help="The unique identifier of this mandate.", default=lambda self: datetime.now().strftime('%f%S%M%H%d%m%Y'), copy=False)
debtor_id_code = fields.Char(string='Debtor Identifier', help="Free reference identifying the debtor in your company.")
partner_id = fields.Many2one(
comodel_name='res.partner',
string='Customer',
required=True,
check_company=True,
help="Customer whose payments are to be managed by this mandate.",
)
partner_parent_id = fields.Many2one(
related='partner_id.parent_id',
comodel_name='res.partner',
string="Parent Partner",
readonly=True,
)
company_id = fields.Many2one(comodel_name='res.company', default=lambda self: self.env.company, help="Company for whose invoices the mandate can be used.")
partner_bank_id = fields.Many2one(
comodel_name='res.partner.bank',
string='IBAN',
check_company=True,
help="Account of the customer to collect payments from.",
)
start_date = fields.Date(
string="Start Date",
required=True,
default=_get_default_start_date,
help="Date from which the mandate can be used (inclusive).",
)
end_date = fields.Date(string="End Date", help="Date until which the mandate can be used. It will automatically be closed after this date.")
expiration_warning_already_sent = fields.Boolean(
string="Expiration warning sent",
default=False,
readonly=True,
required=True,
copy=False,
)
pre_notification_period = fields.Integer(
string="Pre-notification",
default=SDD_MIN_PRENOT_PERIOD, required=True,
help="The minimum notice period in days, used to inform the customer prior to collection.",
)
sdd_scheme = fields.Selection(string="SDD Scheme", selection=[('CORE', 'CORE'), ('B2B', 'B2B')],
required=True, default='CORE', help='The B2B scheme is an optional scheme,\noffered exclusively to business payers.\n'
'Some banks/businesses might not accept B2B SDD.',)
paid_invoice_ids = fields.One2many(string='Invoices Paid', comodel_name='account.move',
compute='_compute_from_moves',
help="Invoices paid using this mandate.")
paid_invoices_nber = fields.Integer(string='Paid Invoices Number',
compute='_compute_from_moves',
help="Number of invoices paid with this mandate.")
payment_ids = fields.One2many(string='Payments', comodel_name='account.payment',
compute='_compute_from_moves',
help="In-process and completed payments generated under this mandate.")
payments_to_collect_nber = fields.Integer(string='Direct Debit Payments to Collect',
compute='_compute_from_moves',
help="Number of in-process and completed payments generated under this mandate.")
mandate_pdf_file = fields.Binary(
string="Mandate Form PDF",
attachment=True,
copy=False,
readonly=True,
)
@api.ondelete(at_uninstall=False)
def _unlink_if_draft(self):
if self.filtered(lambda x: x.state != 'draft'):
raise UserError(_("Only mandates in draft state can be deleted."))
@api.model
def _sdd_get_usable_mandate(self, company_id, partner_id, date):
mandates = self.env['sdd.mandate'].search([
('state', '=', 'active'),
('start_date', '<=', date),
'|', ('end_date', '=', False), ('end_date', '>=', date),
('company_id', '=', company_id),
('partner_id', '=', partner_id),
],
limit=1,
order='start_date,id',
)
return mandates
def _compute_from_moves(self):
stored_mandates = self.filtered('id')
if not stored_mandates:
self.paid_invoices_nber = 0
self.payments_to_collect_nber = 0
self.paid_invoice_ids = False
self.payment_ids = False
return
results = dict(
self.env['account.payment']._read_group([
('sdd_mandate_id', 'in', self.ids),
('payment_method_code', 'in', self.env['account.payment.method']._get_sdd_payment_method_code()),
('state', 'in', ('in_process', 'paid')),
], groupby=['sdd_mandate_id'], aggregates=['id:recordset'])
)
for mandate in self:
payments = results.get(mandate, self.env['account.payment'])
mandate.payment_ids = [Command.set(payments.ids)]
mandate.payments_to_collect_nber = len(payments)
invoices = payments.reconciled_invoice_ids.filtered(lambda move: move.payment_state == 'paid')
mandate.paid_invoice_ids = [Command.set(invoices.ids)]
mandate.paid_invoices_nber = len(invoices)
def _update_and_partition_state_by_validity(self):
today = fields.Date.context_today(self)
expiry_date_per_mandate = self._get_expiry_date_per_mandate()
active_mandates = self.filtered(lambda mandate: mandate.state == 'active')
valid_mandates = self.env['sdd.mandate']
expiring_mandates = self.env['sdd.mandate']
invalid_mandates = self - active_mandates
to_close = self.env['sdd.mandate']
for mandate in active_mandates:
expiry_date = expiry_date_per_mandate[mandate]
if mandate.start_date <= today <= expiry_date:
if today + fields.date_utils.relativedelta(days=30) >= expiry_date:
expiring_mandates += mandate # Used to send warnings
else:
valid_mandates += mandate
elif today < mandate.start_date:
invalid_mandates += mandate
else:
to_close += mandate
invalid_mandates += mandate
# Closing invalid mandates that haven't been closed yet
to_close.state = 'closed'
return {
'valid': valid_mandates.with_prefetch(),
'expiring': expiring_mandates.with_prefetch(),
'invalid': invalid_mandates.with_prefetch(),
}
def _get_expiry_date_per_mandate(self):
expiry_date_per_mandate = {}
delay_36_months = fields.date_utils.relativedelta(months=36)
payments_collected_per_mandate = dict(self.env['account.payment']._read_group([
('sdd_mandate_id', 'in', self.ids),
('payment_method_code', 'in', self.env['account.payment.method']._get_sdd_payment_method_code()),
('state', '=', 'paid'),
],
groupby=['sdd_mandate_id'],
aggregates=['id:recordset'],
))
for mandate in self:
payments_collected = payments_collected_per_mandate.get(mandate, self.env['account.payment'])
dates = [mandate.end_date] if mandate.end_date else []
dates.append(max(payments_collected.mapped('date'), default=mandate.start_date) + delay_36_months)
expiry_date_per_mandate[mandate] = min(dates) # Todo use records
return expiry_date_per_mandate
def _send_expiry_reminder(self):
self.ensure_one()
template = self.env.ref('odex30_account_sepa_direct_debit.email_template_sdd_mandate_expiring')
self.message_post_with_source(
source_ref=template,
subtype_id=self.env['ir.model.data']._xmlid_to_res_id('mail.mt_note'),
)
self.expiration_warning_already_sent = True
def action_send_and_print(self):
self.ensure_one()
self._ensure_required_data()
template = self.env.ref('odex30_account_sepa_direct_debit.email_template_sdd_new_mandate', raise_if_not_found=False)
return {
'name': _("Send"),
'type': 'ir.actions.act_window',
'view_mode': 'form',
'res_model': 'sdd.mandate.send',
'target': 'new',
'context': {
'default_mandate_id': self.id,
'default_template_id': template and template.id or False,
},
}
def action_validate_mandate(self):
self._ensure_required_data()
for mandate in self:
if not mandate.partner_bank_id:
raise UserError(_("A customer account is required to validate a SEPA Direct Debit mandate."))
if mandate.partner_bank_id.acc_type != 'iban':
raise UserError(_(
"SEPA Direct Debit scheme only accepts IBAN account numbers. "
"Please select an IBAN-compliant debtor account for this mandate."
))
if mandate.state == 'draft':
mandate.state = 'active'
def action_revoke_mandate(self):
self.state = 'revoked'
def action_cancel_mandate(self):
self.state = 'cancelled'
def action_close_mandate(self):
for record in self:
if record.state != 'revoked':
record.end_date = fields.Date.today()
record.state = 'closed'
def action_view_paid_invoices(self):
return self.paid_invoice_ids._get_records_action(name=_('Paid Invoices'))
def action_view_payments_to_collect(self):
return self.payment_ids._get_records_action(name=_('Payments to Collect'))
def action_parent_id_from_sdd_mandate(self):
parent = self.partner_id.parent_id
return parent._get_records_action(name=_("Partner's Parent"))
@api.constrains('end_date', 'start_date')
def _validate_end_date(self):
for record in self:
if record.end_date and record.start_date and record.end_date < record.start_date:
raise UserError(_("The end date of the mandate must be posterior or equal to its start date."))
@api.constrains('debtor_id_code')
def _validate_debtor_id_code(self):
for record in self:
if record.debtor_id_code and len(record.debtor_id_code) > 35: # Arbitrary limitation given by SEPA regulation for the <id> element used for this field when generating the XML
raise UserError(_("The debtor identifier you specified exceeds the limitation of 35 characters imposed by SEPA regulation"))
@api.constrains('pre_notification_period')
def _validate_pre_notification_period(self):
for mandate in self:
if mandate.pre_notification_period < SDD_MIN_PRENOT_PERIOD: # Minimum required for collection
raise UserError(_(
"SEPA regulations set the minimum pre-notification period to a minimum of %s days "
"to allow enough time for the customer to check that their account is adequately funded.",
SDD_MIN_PRENOT_PERIOD
))
def _ensure_required_data(self):
for mandate in self:
if mandate.sdd_scheme == 'B2B' and not mandate.partner_id.is_company:
raise UserError(_("Under B2B SDD Scheme, the customer must be a company."))
stateless_partners = self.partner_id.filtered(lambda partner: not partner.country_id)
if stateless_partners:
msg = _("The customer must have a country")
if len(stateless_partners) == 1:
raise RedirectWarning(
msg,
action={
'name': _("SEPA direct debit stateless customer"),
'type': 'ir.actions.act_window',
'res_model': 'res.partner',
'views': [(False, 'form'), (False, 'list')],
'res_id': self.partner_id.id
},
button_text=_("Open customer"),
)
else:
raise RedirectWarning(
msg,
action={
'name': _("SEPA direct debit stateless customer"),
'type': 'ir.actions.act_window',
'res_model': 'res.partner',
'views': [(False, 'list'), (False, 'form')],
'domain': [('id', 'in', self.partner_id.ids)],
},
button_text=_("Open customers"),
)
@api.model
def cron_update_mandates_states(self):
mandates = self.search([('state', '=', 'active')])
mandates_per_validity = mandates._update_and_partition_state_by_validity()
mandates_per_validity['valid'].expiration_warning_already_sent = False # Reset the field if a new payment came, resetting the period
for mandate in mandates_per_validity['expiring'].filtered(lambda sddm: not sddm.expiration_warning_already_sent):
# Warning 30 days before expiration
mandate._send_expiry_reminder()

View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="sdd_mandate_form_report_main" model="ir.actions.report">
<field name="name">Mandate form</field>
<field name="model">sdd.mandate</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">odex30_account_sepa_direct_debit.sdd_mandate_form_report</field>
<field name="report_file">odex30_account_sepa_direct_debit.sdd_mandate_form_report</field>
<field name="attachment_use">True</field>
<field name="binding_model_id" ref="model_sdd_mandate"/>
<field name="binding_type">report</field>
</record>
<template id="odex30_account_sepa_direct_debit.sdd_mandate_form_report">
<div class="oe_structure"></div>
<t t-call="web.html_container">
<t t-foreach="docs" t-as="o">
<t t-call="odex30_account_sepa_direct_debit.sdd_mandate_form_document" t-lang="o.partner_id.lang"/>
</t>
</t>
</template>
<template id="odex30_account_sepa_direct_debit.sdd_mandate_form_document">
<div class="oe_structure"></div>
<t t-call="web.external_layout">
<t t-call="odex30_account_sepa_direct_debit.sdd_mandate_form"/>
</t>
</template>
<template id="odex30_account_sepa_direct_debit.sdd_mandate_form">
<div>
<t t-if="o.sdd_scheme == 'CORE'">
<h2 class="mb-1">SEPA Direct Debit Mandate</h2>
</t>
<t t-elif="o.sdd_scheme == 'B2B'">
<h2 class="mb-1">SEPA Business-to-Business Direct Debit Mandate</h2>
</t>
<p class="mb-2">
<strong>Mandate identifier:</strong> <span t-out="o.name">SEPA1234</span>
</p>
<p class="mb-4 avoid-page-break-inside small">
By signing this mandate form, you authorise (A) <span t-out="o.company_id.name">Odoo PVT LTD</span> to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from <span t-out="o.company_id.name">Odoo PVT LTD</span>.
<t t-if="o.sdd_scheme == 'CORE'">
As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. Your rights are explained in a statement that you can obtain from your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited.
</t>
<t t-elif="o.sdd_scheme == 'B2B'">
This mandate is only intended for business-to-business transactions. You are not entitled to a refund from your bank after your account has been debited, but you are entitled to request your bank not to debit your account up until the day on which the payment is due.
</t>
</p>
<div class="oe_structure"></div>
<div class="mb-3 avoid-page-break-inside">
<div class="row">
<div class="col-6">
<h5 class="mb-2">Creditor</h5>
<p class="mb-2"><strong>Creditor identifier:</strong> <span t-out="o.company_id.sdd_creditor_identifier">CREDIT-1234</span></p>
<p class="mb-2"><span t-out="o.company_id.name">Odoo PVT LTD</span></p>
<span t-field="o.company_id.partner_id" t-options='{"widget": "contact", "fields": ["address"], "no_marker": True}'>SEPA-CUST-001</span>
</div>
<div class="col-6">
<h5 class="mb-2">Debtor</h5>
<div class="mb-2">
<p class="mb-2"><span t-out="o.partner_id.name">Marc Demo</span></p>
<t t-if="not o.partner_id.street and not o.partner_id.street2 or not o.partner_id.city or not o.partner_id.zip or not o.partner_id.country_id">
<p class="mb-2"><strong>Address:</strong><t if="not o.partner_id.street and not o.partner_id.street2"> ............................................................</t></p>
<t t-if="not o.partner_id.street and not o.partner_id.street2">
<p class="mb-2">................................................................................</p>
</t>
<span t-if="o.partner_id.street" t-out="o.partner_id.street">Rue de la Loi, 16</span>
<span t-if="o.partner_id.street2" t-out="o.partner_id.street2">Building C</span>
<p class="mb-2">
<span class="me-3">
<strong>City: </strong>
<span t-if="o.partner_id.city" t-out="o.partner_id.city">Antwerp</span>
<span t-else="">......................................</span>
</span>
<span>
<strong>Zip: </strong>
<span t-if="o.partner_id.zip" t-out="o.partner_id.zip">380055</span>
<span t-else="">.................</span>
</span>
</p>
<p class="mb-2">
<strong>Country: </strong>
<span t-if="o.partner_id.country_id.name" t-out="o.partner_id.country_id.name">Belgium</span>
<span t-else="">......................................</span>
</p>
</t>
<span t-else="" t-field="o.partner_id" t-options='{"widget": "contact", "fields": ["address"], "no_marker": True}'>123456789</span>
</div>
<p class="mb-2"><strong>IBAN:</strong> <span t-if="not o.partner_bank_id.acc_number">...................................................................</span><span t-else="" t-out="o.partner_bank_id.acc_number">3956012345678</span></p>
<p class="mb-2"><strong>Phone:</strong> <span t-if="not o.partner_id.phone">.................................................................</span><span t-else="" t-out="o.partner_id.phone">123456789</span></p>
<p class="mb-2"><strong>Email:</strong> <span t-if="not o.partner_id.email">...................................................................</span><span t-else="" t-out="o.partner_id.email">Demo@email.com</span></p>
<p class="mb-2"><strong>Identification code<span t-if="not o.debtor_id_code"> (if applicable)</span>: </strong>
<span t-if="not o.debtor_id_code">.........................................................</span>
<span t-else="" t-out="o.debtor_id_code">DEBT1234</span>
</p>
</div>
</div>
</div>
<div class="oe_structure"></div>
<div class="mb-3 avoid-page-break-inside">
<h5 class="mb-2">Validity</h5>
<p class="mb-3 small">
The mandate will only be used to pay invoices into the specified time range. If no end date is specified,
you will have to contact us to stop its use. The minimum notification period for creditors
to inform debtors about an upcoming collection is <strong><span t-out="o.pre_notification_period"/></strong> day(s).
It will be sent to the debtor's email.
</p>
<div class="oe_structure"></div>
<div class="row">
<div class="col-6">
<p class="mb-2"><strong>Transaction type:</strong> recurrent</p>
</div>
<div class="col-6">
<p class="mb-2"><strong>Start date:</strong> <span t-if="not o.start_date">......................................</span><span t-else="" t-out="o.start_date" t-options="{'widget': 'date'}">2023-08-10</span></p>
<p class="mb-2"><strong>End date<span t-if="not o.end_date"> (optional)</span>:</strong> <span t-if="not o.end_date">......................................</span><span t-else="" t-out="o.end_date" t-options="{'widget': 'date'}">2023-09-10</span></p>
</div>
</div>
</div>
<div class="avoid-page-break-inside">
<h5 class="mb-2">Signature</h5>
<div class="oe_structure"></div>
<div id="signature" class="row">
<div class="col-6">
<p class="mb-2"><strong>Name of the reference party:</strong> ......................................</p>
<p class="mb-2"><strong>Date and place of signature:</strong> ......................................</p>
</div>
<div class="col-6">
<p class="mb-2"><strong>Signature:</strong></p>
</div>
</div>
</div>
</div>
</template>
</data>
</odoo>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record model="ir.rule" id="sdd_mandate_comp_rule">
<field name="name">SDD Mandate multi-company</field>
<field name="model_id" ref="model_sdd_mandate"/>
<field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
</record>
<record model="ir.rule" id="sdd_mandate_portal_rule">
<field name="name">SDD Mandate portal-user creation</field>
<field name="model_id" ref="model_sdd_mandate"/>
<field name="domain_force">[('partner_id', '=', user.partner_id.id), ('state', '=', 'draft')]</field>
<field name="groups" eval="[(4, ref('base.group_portal'))]"/>
</record>
</data>
</odoo>

View File

@ -0,0 +1,5 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_sdd_mandate_portal,sdd.mandate.validate,model_sdd_mandate,base.group_portal,1,0,1,0
access_sdd_mandate,sdd.mandate,model_sdd_mandate,account.group_account_invoice,1,0,0,0
access_sdd_mandate_account_basic,sdd.mandate.account.basic,model_sdd_mandate,account.group_account_basic,1,1,1,1
access_sdd_mandate_send_account_basic,sdd.mandate.send.account.basic,model_sdd_mandate_send,account.group_account_basic,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_sdd_mandate_portal sdd.mandate.validate model_sdd_mandate base.group_portal 1 0 1 0
3 access_sdd_mandate sdd.mandate model_sdd_mandate account.group_account_invoice 1 0 0 0
4 access_sdd_mandate_account_basic sdd.mandate.account.basic model_sdd_mandate account.group_account_basic 1 1 1 1
5 access_sdd_mandate_send_account_basic sdd.mandate.send.account.basic model_sdd_mandate_send account.group_account_basic 1 1 1 1

View File

@ -0,0 +1,4 @@
from . import common
from . import test_sdd
from . import test_sdd_xml

View File

@ -0,0 +1,113 @@
from odoo import Command, fields
from odoo.addons.account.tests.common import AccountTestInvoicingCommon
class SDDTestCommon(AccountTestInvoicingCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.env.ref('base.EUR').active = True
cls.env.user.write({
'email': "ruben.rybnik@sorcerersfortress.com",
'groups_id': [Command.link(cls.env.ref('account.group_validate_bank_account').id)]
})
cls.country_belgium, cls.country_china, cls.country_germany = cls.env['res.country'].search([('code', 'in', ['BE', 'CN', 'DE'])], limit=3, order='name ASC')
cls.sdd_company = cls.env.company
cls.sdd_company.country_id = cls.country_belgium
cls.sdd_company.city = 'Company 1 City'
cls.sdd_company.sdd_creditor_identifier = 'BE30ZZZ300D000000042'
cls.sdd_company_bank_journal = cls.company_data['default_journal_bank']
cls.sdd_company_bank_journal.bank_acc_number = 'CH9300762011623852957'
cls.bank_ing = cls.env['res.bank'].create({'name': 'ING', 'bic': 'BBRUBEBB'})
cls.bank_bnp = cls.env['res.bank'].create({'name': 'BNP Paribas', 'bic': 'GEBABEBB'})
cls.bank_no_bic = cls.env['res.bank'].create({'name': 'NO BIC BANK'})
cls.sdd_company_bank_journal.bank_account_id.bank_id = cls.bank_ing
sdd_method_line = cls.sdd_company_bank_journal.inbound_payment_method_line_ids.filtered(lambda l: l.code == 'sdd')
sdd_method_line.payment_account_id = cls.inbound_payment_method_line.payment_account_id
cls.partner_agrolait = cls.env['res.partner'].create({'name': 'Agrolait', 'city': 'Agrolait Town', 'country_id': cls.country_germany.id})
cls.partner_bank_agrolait = cls.create_account('DE44500105175407324931', cls.partner_agrolait, cls.bank_ing)
cls.mandate_agrolait = cls.create_mandate(cls.partner_agrolait, cls.partner_bank_agrolait, False, cls.sdd_company)
cls.mandate_agrolait.action_validate_mandate()
cls.partner_china_export = cls.env['res.partner'].create({'name': 'China Export', 'city': 'China Town', 'country_id': cls.country_china.id})
cls.partner_bank_china_export = cls.create_account('SA0380000000608010167519', cls.partner_china_export, cls.bank_bnp)
cls.mandate_china_export = cls.create_mandate(cls.partner_china_export, cls.partner_bank_china_export, True, cls.sdd_company)
cls.mandate_china_export.action_validate_mandate()
cls.partner_no_bic = cls.env['res.partner'].create({'name': 'NO BIC Co', 'city': 'NO BIC City', 'country_id': cls.country_belgium.id})
cls.partner_bank_no_bic = cls.create_account('BE68844010370034', cls.partner_no_bic, cls.bank_no_bic)
cls.mandate_no_bic = cls.create_mandate(cls.partner_no_bic, cls.partner_bank_no_bic, True, cls.sdd_company)
cls.mandate_no_bic.action_validate_mandate()
cls.invoice_agrolait = cls.create_invoice(cls.partner_agrolait)
cls.invoice_china_export = cls.create_invoice(cls.partner_china_export)
cls.invoice_no_bic = cls.create_invoice(cls.partner_no_bic)
cls.pay_with_mandate(cls.invoice_agrolait)
cls.pay_with_mandate(cls.invoice_china_export)
cls.pay_with_mandate(cls.invoice_no_bic)
@classmethod
def create_account(cls, number, partner, bank):
return cls.env['res.partner.bank'].create({
'acc_number': number,
'partner_id': partner.id,
'bank_id': bank.id
})
@classmethod
def create_mandate(cls, partner, partner_bank, one_off=False, company=None, scheme='CORE'):
company = company or cls.env.company
return cls.env['sdd.mandate'].create({
'partner_bank_id': partner_bank.id,
'one_off': one_off,
'start_date': fields.Date.today(),
'partner_id': partner.id,
'company_id': company.id,
'sdd_scheme': scheme,
})
@classmethod
def create_invoice(cls, partner):
invoice = cls.env['account.move'].create({
'move_type': 'out_invoice',
'partner_id': partner.id,
'currency_id': cls.env.ref('base.EUR').id,
'payment_reference': 'invoice to client',
'invoice_line_ids': [Command.create({
'product_id': cls.env['product.product'].create({'name': 'A Test Product'}).id,
'quantity': 1,
'price_unit': 42,
'name': 'something',
})],
})
invoice.action_post()
return invoice
@classmethod
def pay_with_mandate(cls, invoice):
journal = cls.company_data['default_journal_bank']
sdd_method_line = journal.inbound_payment_method_line_ids.filtered(lambda l: l.code == 'sdd')
return cls.env['account.payment.register'].with_context(active_model='account.move', active_ids=invoice.ids).create({
'payment_date': invoice.invoice_date_due or invoice.invoice_date,
'journal_id': journal.id,
'payment_method_line_id': sdd_method_line.id,
})._create_payments()
@classmethod
def reconcile_payments(cls, payments):
for payment in payments:
st_line = cls.env['account.bank.statement.line'].create({
'amount': payment.amount,
'date': fields.Date.context_today(payment.sdd_mandate_id),
'payment_ref': 'test',
'journal_id': cls.company_data['default_journal_bank'].id,
})
st_suspense_lines = st_line._seek_for_lines()[1]
liquidity_line = payment._seek_for_lines()[0]
st_suspense_lines.account_id = liquidity_line.account_id
(st_suspense_lines + liquidity_line).reconcile()

View File

@ -0,0 +1,312 @@
import datetime
from odoo import Command, fields
from odoo.exceptions import RedirectWarning, UserError, ValidationError
from odoo.tests import freeze_time, tagged
from odoo.addons.odex30_account_sepa_direct_debit.tests.common import SDDTestCommon
@tagged('post_install', '-at_install')
class SDDTest(SDDTestCommon):
def test_sdd(self):
# The invoices should have payments and in payment state thanks to the mandate
payments_agrolait = self.invoice_agrolait.reconciled_payment_ids
self.assertEqual(self.invoice_agrolait.payment_state, self.env['account.move']._get_invoice_in_payment_state(), 'This invoice should have payments and in payment state thanks to the mandate')
self.assertEqual(payments_agrolait.sdd_mandate_id, self.mandate_agrolait)
self.assertEqual(self.mandate_agrolait.payment_ids, payments_agrolait, 'The mandate should be linked to the payment')
payments_china_export = self.invoice_china_export.reconciled_payment_ids
self.assertEqual(self.invoice_china_export.payment_state, self.env['account.move']._get_invoice_in_payment_state(), 'This invoice should have have payments and in payment state thanks to the mandate')
self.assertEqual(payments_china_export.sdd_mandate_id, self.mandate_china_export)
self.assertEqual(self.mandate_china_export.payment_ids, payments_china_export, 'The mandate should be linked to the payment')
payments_no_bic = self.invoice_no_bic.reconciled_payment_ids
self.assertEqual(self.invoice_no_bic.payment_state, self.env['account.move']._get_invoice_in_payment_state(), 'This invoice should have payments and in payment state thanks to the mandate')
self.assertEqual(payments_no_bic.sdd_mandate_id, self.mandate_no_bic)
self.assertEqual(self.mandate_no_bic.payment_ids, payments_no_bic, 'The mandate should be linked to the payment')
payments = (self.invoice_agrolait + self.invoice_china_export + self.invoice_no_bic).reconciled_payment_ids
self.reconcile_payments(payments)
self.env.invalidate_all()
self.assertEqual(self.mandate_agrolait.paid_invoice_ids, self.invoice_agrolait, 'The mandate should be linked to the paid invoice')
self.assertEqual(self.mandate_china_export.paid_invoice_ids, self.invoice_china_export, 'The mandate should be linked to the paid invoice')
self.assertEqual(self.mandate_no_bic.paid_invoice_ids, self.invoice_no_bic, 'The mandate should be linked to the paid invoice')
self.assertEqual(self.mandate_agrolait.state, 'active', 'A recurrent mandate should stay confirmed after accepting a payment')
self.assertEqual(self.mandate_china_export.state, 'closed', 'A one-off mandate should be closed after accepting a payment')
self.assertEqual(self.mandate_no_bic.state, 'closed', 'A one-off mandate should be closed after accepting a payment')
payment_agrolait = self.invoice_agrolait.reconciled_payment_ids
payment_agrolait.action_draft()
self.assertEqual(self.invoice_agrolait.payment_state, 'not_paid')
self.assertFalse(self.invoice_agrolait.sdd_mandate_id)
def test_xml_pain_008_001_08_generation(self):
self.sdd_company_bank_journal.debit_sepa_pain_version = 'pain.008.001.08'
for invoice in (self.invoice_agrolait, self.invoice_no_bic):
payment = invoice.reconciled_payment_ids
payment.generate_xml(self.sdd_company, fields.Date.today(), True)
payment = self.invoice_china_export.reconciled_payment_ids
self.partner_china_export.write({'city': False, 'country_id': self.country_china})
with self.assertRaises(UserError):
payment.generate_xml(self.sdd_company, fields.Date.today(), True)
self.partner_china_export.write({'city': 'China Town', 'country_id': self.country_china})
payment.generate_xml(self.sdd_company, fields.Date.today(), True)
@freeze_time('2019-01-01')
def test_expiry(self):
self.mandate_agrolait.action_revoke_mandate() # We will use a new one here
self.assertEqual(self.mandate_agrolait.state, 'revoked')
mandate = self.create_mandate(self.partner_agrolait, self.partner_bank_agrolait, False, self.sdd_company, 'CORE')
mandate.start_date = '2020-01-01'
mandate.end_date = '2025-01-30'
self.assertEqual(mandate.state, 'draft')
mandate.action_validate_mandate()
mandate.cron_update_mandates_states()
self.assertEqual(mandate.state, 'active') # The mandate should stay active even if the start_date is in the future
with freeze_time('2022-12-02'):
mandates_per_validity = mandate._update_and_partition_state_by_validity()
self.assertTrue(mandates_per_validity['expiring'], 'The mandate is expiring soon')
new_invoice = self.create_invoice(self.partner_agrolait)
payment = self.pay_with_mandate(new_invoice)
payment.action_validate()
mandates_per_validity = mandate._update_and_partition_state_by_validity()
self.assertTrue(mandates_per_validity['valid'], 'The mandate should not be expiring soon anymore, as we have reset the period')
new_expiry_date = next(iter(mandate._get_expiry_date_per_mandate().values())).isoformat()
self.assertEqual(new_expiry_date, '2025-01-30', 'The new expiry date is the end date, as the last collection + 36 month is after that date')
with freeze_time('2025-01-01'): # Entered the 30-days before end date warning
mandates_per_validity = mandate._update_and_partition_state_by_validity()
self.assertTrue(mandates_per_validity['expiring'], 'The mandate is expiring soon')
with freeze_time('2025-01-31'): # Passed the end_date, mandate must be closed
mandates_per_validity = mandate._update_and_partition_state_by_validity()
self.assertTrue(mandates_per_validity['invalid'], 'The mandate is expired')
self.assertEqual(mandate.state, 'closed')
def test_required_data(self):
stateless_partner = self.env['res.partner'].create({
'name': 'stateless partner',
})
stateless_iban_account = self.env['res.partner.bank'].create({
'acc_number': 'NL61INGB6008851617',
'partner_id': stateless_partner.id,
})
stateless_mandate = self.env['sdd.mandate'].create({
'partner_id': stateless_partner.id,
'partner_bank_id': stateless_iban_account.id,
})
bankless_partner = self.env['res.partner'].create({
'name': 'no bank partner',
'country_id': self.env.ref('base.nl').id,
})
not_iban_bank_account = self.env['res.partner.bank'].create({
'acc_number': '01',
'partner_id': bankless_partner.id,
})
bankless_mandate = self.env['sdd.mandate'].create({
'partner_id': bankless_partner.id,
})
# Check send and print action
with self.assertRaises(RedirectWarning, msg="The country of the partner should be set to go forward"):
stateless_mandate.action_send_and_print()
stateless_mandate.partner_id.country_id = self.env.ref('base.nl')
stateless_mandate.action_send_and_print()
bankless_mandate.action_send_and_print() # You can send a mandate request without a bank, the customer should fill the field
# Check validation action
stateless_mandate.action_validate_mandate()
with self.assertRaises(UserError, msg="No partner bank should raise an error when going forward"):
bankless_mandate.action_validate_mandate()
bankless_mandate.partner_bank_id = not_iban_bank_account
with self.assertRaises(UserError, msg="The bank account isn't an iban bank account"):
bankless_mandate.action_validate_mandate()
bankless_mandate.partner_bank_id = self.env['res.partner.bank'].create({
'acc_number': 'NL43INGB9822994664',
'partner_id': bankless_partner.id,
})
bankless_mandate.action_validate_mandate()
@freeze_time('2024-01-01')
def test_collection_date(self):
partner = self.env['res.partner'].create({
'name': 'partner',
'country_id': self.env.ref('base.nl').id,
})
iban_account = self.env['res.partner.bank'].create({
'acc_number': 'NL61INGB6008851617',
'partner_id': partner.id,
})
with self.assertRaises(UserError, msg="Cannot have a pre-notification period under 2 days"):
self.env['sdd.mandate'].create({
'partner_id': partner.id,
'partner_bank_id': iban_account.id,
'pre_notification_period': 1,
})
mandate = self.env['sdd.mandate'].create({
'partner_id': partner.id,
'partner_bank_id': iban_account.id,
'pre_notification_period': 2,
})
mandate.pre_notification_period = 14
mandate.action_validate_mandate()
invoice = self.create_invoice(partner)
payment = self.pay_with_mandate(invoice)
unchanged_data = {
'payment_ids': [Command.set(payment.ids)],
'journal_id': payment.journal_id.id,
}
with self.assertRaises(ValidationError, msg="Collection date should not be in the 2 day period required for the bank to process"):
self.env['account.batch.payment'].create({
**unchanged_data,
'sdd_required_collection_date': fields.Date.context_today(mandate) + datetime.timedelta(days=1)
})
batch_payment = self.env['account.batch.payment'].create({
**unchanged_data,
'sdd_required_collection_date': fields.Date.context_today(mandate) + datetime.timedelta(days=2)
})
self.assertEqual(
batch_payment.sdd_first_time_payment_ids,
payment,
"The first-time payments should be set correctly.",
)
self.assertEqual(
batch_payment.sdd_min_required_collection_date,
fields.Date.context_today(mandate) + datetime.timedelta(days=5),
"The minimum required collection date should be set at 5 days after today.",
)
batch_payment.validate_batch()
self.reconcile_payments(payment)
self.assertTrue(payment.is_matched)
new_invoice = self.create_invoice(partner)
new_payment = self.pay_with_mandate(new_invoice)
unchanged_data['payment_ids'] = [Command.set(new_payment.ids)]
with self.assertRaises(
ValidationError,
msg="Collection date should not be in the 2 day period required for the bank to process if all the mandates are already used at least once"
):
self.env['account.batch.payment'].create({
**unchanged_data,
'sdd_required_collection_date': fields.Date.context_today(mandate) + datetime.timedelta(days=1)
})
new_batch_payment = self.env['account.batch.payment'].create({
**unchanged_data,
'sdd_required_collection_date': fields.Date.context_today(mandate) + datetime.timedelta(days=2)
})
self.assertFalse(batch_payment.sdd_first_time_payment_ids, "The first-time payments should be empty.")
self.assertFalse(
batch_payment.sdd_min_required_collection_date,
"The minimum required collection date should not be set.",
)
new_batch_payment.validate_batch()
def test_batch_register_payment_all_valids(self):
mandate_china_export = self.create_mandate(self.partner_china_export, self.partner_bank_china_export, False, self.sdd_company)
mandate_china_export.action_validate_mandate()
invoices = self.create_invoice(self.partner_agrolait) + self.create_invoice(self.partner_china_export)
journal = self.sdd_company_bank_journal
wizard = (
self.env['account.payment.register']
.with_context({'active_ids': invoices.line_ids.ids, 'active_model': 'account.move.line'})
.create({
'journal_id': journal.id,
'payment_method_line_id': journal.inbound_payment_method_line_ids.filtered(lambda l: l.code == 'sdd').id
})
)
wizard.action_create_payments()
self.assertRecordValues(invoices.reconciled_payment_ids.sorted('partner_id'), [
{'partner_id': self.partner_agrolait.id},
{'partner_id': self.partner_china_export.id},
])
def test_batch_register_payment_mixed_valids_invalids(self):
# China export doesn't have a valid mandate
invoices = self.create_invoice(self.partner_agrolait) + self.create_invoice(self.partner_china_export)
journal = self.sdd_company_bank_journal
wizard = (
self.env['account.payment.register']
.with_context({'active_ids': invoices.line_ids.ids, 'active_model': 'account.move.line'})
.create({
'journal_id': journal.id,
'payment_method_line_id': journal.inbound_payment_method_line_ids.filtered(lambda l: l.code == 'sdd').id
})
)
wizard.action_create_payments()
payments = invoices.reconciled_payment_ids
self.assertEqual(len(payments), 1, "Only one payment should be created.")
self.assertEqual(payments.partner_id, self.partner_agrolait, "The payment should be for the 'Agrolait' partner since it have a valid mandate.")
def test_batch_register_payment_all_invalids(self):
self.mandate_agrolait.action_revoke_mandate()
invoices = self.create_invoice(self.partner_agrolait) + self.create_invoice(self.partner_china_export)
journal = self.sdd_company_bank_journal
wizard = (
self.env['account.payment.register']
.with_context({'active_ids': invoices.line_ids.ids, 'active_model': 'account.move.line'})
.create({
'journal_id': journal.id,
'payment_method_line_id': journal.inbound_payment_method_line_ids.filtered(lambda l: l.code == 'sdd').id
})
)
with self.assertRaises(UserError, msg="As there is no payment that can be generated, we raise an error when trying to do so"):
wizard.action_create_payments()
def test_batch_payment_group(self):
mandate_china_export = self.create_mandate(self.partner_china_export, self.partner_bank_china_export, False, self.sdd_company)
mandate_china_export.action_validate_mandate()
invoices = self.create_invoice(self.partner_agrolait) + self.create_invoice(self.partner_agrolait) + self.create_invoice(self.partner_china_export)
journal = self.sdd_company_bank_journal
wizard = self.env['account.payment.register'].with_context({'active_ids': invoices.line_ids.ids, 'active_model': 'account.move.line'}).create({
'journal_id': journal.id,
'payment_method_line_id': journal.inbound_payment_method_line_ids.filtered(lambda l: l.code == 'sdd').id,
'group_payment': True,
})
res = wizard.action_create_payments()
payments = self.env['account.payment'].search(res.get('domain', []))
self.assertEqual(len(payments), 2, "There should be two payments")
def test_register_payment_other_journal(self):
bank_journal_copy = self.sdd_company_bank_journal.copy()
bank_journal_copy.bank_acc_number = 'CH9300762011623852958'
invoices = self.create_invoice(self.partner_agrolait)
wizard = (
self.env['account.payment.register']
.with_context({'active_ids': invoices.line_ids.ids, 'active_model': 'account.move.line'})
.create({
'journal_id': bank_journal_copy.id,
'payment_method_line_id': bank_journal_copy.inbound_payment_method_line_ids.filtered(lambda l: l.code == 'sdd').id
})
)
res = wizard.action_create_payments()
payments = self.env['account.payment'].search(res.get('domain', []))
self.assertTrue(payments, 'A payment should have been generated')

View File

@ -0,0 +1,42 @@
from lxml import etree
from odoo import fields
from odoo.addons.odex30_account_sepa_direct_debit.tests.common import SDDTestCommon
from odoo.tests import tagged, test_xsd
@tagged('external_l10n', 'post_install', '-at_install', '-standard')
class SDDTestXML(SDDTestCommon):
@test_xsd(path='odex30_account_sepa_direct_debit/schemas/pain.008.001.02.xsd')
def test_xml_pain_008_001_02_generation(self):
self.sdd_company_bank_journal.debit_sepa_pain_version = 'pain.008.001.02'
xml_files = []
for invoice in (self.invoice_agrolait, self.invoice_china_export, self.invoice_no_bic):
payment = invoice.line_ids.mapped('matched_credit_ids.credit_move_id.payment_id')
xml_files.append(etree.fromstring(payment.generate_xml(self.sdd_company, fields.Date.today(), True)))
return xml_files
@test_xsd(path='odex30_account_sepa_direct_debit/schemas/EPC131-08_2019_V1.0_pain.008.001.02.xsd')
def test_xml_pain_008_001_02_b2b_generation(self):
self.sdd_company_bank_journal.debit_sepa_pain_version = 'pain.008.001.02'
self.mandate_agrolait.sdd_scheme = 'B2B'
self.mandate_china_export.sdd_scheme = 'B2B'
self.mandate_no_bic.sdd_scheme = 'B2B'
xml_files = []
for invoice in (self.invoice_agrolait, self.invoice_china_export, self.invoice_no_bic):
payment = invoice.line_ids.mapped('matched_credit_ids.credit_move_id.payment_id')
xml_files.append(etree.fromstring(payment.generate_xml(self.sdd_company, fields.Date.today(), True)))
return xml_files
@test_xsd(path='odex30_account_sepa_direct_debit/schemas/pain.008.001.08.xsd')
def test_xml_pain_008_001_08_generation(self):
self.sdd_company_bank_journal.debit_sepa_pain_version = 'pain.008.001.08'
xml_files = []
for invoice in (self.invoice_agrolait, self.invoice_china_export, self.invoice_no_bic):
payment = invoice.line_ids.mapped('matched_credit_ids.credit_move_id.payment_id')
xml_files.append(etree.fromstring(payment.generate_xml(self.sdd_company, fields.Date.today(), True)))
return xml_files

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="view_batch_payment_form_inherit" model="ir.ui.view">
<field name="name">sdd.account.batch.payment.form.inherit</field>
<field name="model">account.batch.payment</field>
<field name="inherit_id" ref="odex30_account_batch_payment.view_batch_payment_form"/>
<field name="arch" type="xml">
<header position="after">
<field name="sdd_min_required_collection_date" invisible="True"/>
<div class="alert alert-warning" role="alert" invisible="not sdd_min_required_collection_date or sdd_required_collection_date >= sdd_min_required_collection_date">
This batch includes payments from mandates with no prior collections:
<field name="sdd_first_time_payment_ids" widget="x2many_buttons" string="First-Time Payments"/>.
SEPA requires a 5 days notice.
</div>
</header>
<xpath expr="//field[@name='name']" position="after">
<field name="sdd_required_collection_date" invisible="payment_method_code not in ('sdd', 'sepa_direct_debit')" readonly="state != 'draft'" required="payment_method_code in ('sdd', 'sepa_direct_debit')"/>
<field name="sdd_batch_booking" string="Batch Booking" invisible="payment_method_code not in ('sdd', 'sepa_direct_debit')"/>
<field name="sdd_scheme" invisible="payment_method_code not in ('sdd', 'sepa_direct_debit')" readonly="state != 'draft' or payment_ids" required="payment_method_code in ('sdd', 'sepa_direct_debit')"/>
</xpath>
<field name="payment_method_name" position="after">
<field name="sdd_mandate_scheme" optional="hide"/>
</field>
</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="action_sdd_payments_to_collect" model="ir.actions.act_window">
<field name="name">Direct debit payments to collect</field>
<field name="res_model">account.payment</field>
<field name="view_mode">list,form</field>
<field name="view_id" ref="sdd_account_payment_with_mandates_tree"/>
<field name="domain">
[('payment_method_code','in', ('sdd', 'sepa_direct_debit')),
('state', '=', 'in_process'),
('is_sent', '=', False),
]
</field>
<field name="help" type="html">
<p class="o_view_nocontent_empty_folder">
No direct debit payment to collect
</p>
</field>
</record>
<record id="sdd_account_journal_dashboard_kanban_view" model="ir.ui.view">
<field name="name">sdd.account.journal.dashboard.kanban</field>
<field name="model">account.journal</field>
<field name="inherit_id" ref="account.account_journal_dashboard_kanban_view"/>
<field name="arch" type="xml">
<xpath expr="//t[@t-name='JournalBodyBankCash']//div[@name='kanban_primary_right']" position="inside">
<div t-if="journal_type == 'bank' and dashboard.sdd_payments_to_send_number != 0">
<div class="row">
<div class="col-12">
<a type="object" name="open_sdd_payments">
<t t-out="dashboard.sdd_payments_to_send_number"/>
<t t-if="dashboard.sdd_payments_to_send_number == 1">Direct Debit Payment to Collect</t>
<t t-if="dashboard.sdd_payments_to_send_number > 1">Direct Debit Payments to Collect</t>
</a>
</div>
</div>
</div>
</xpath>
</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="view_account_journal_form" model="ir.ui.view">
<field name="name">account.journal.form</field>
<field name="model">account.journal</field>
<field name="inherit_id" ref="account.view_account_journal_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@id='inbound_payment_settings']" position="inside">
<group invisible="type != 'bank'">
<group string="SEPA Pain Version">
<field name="debit_sepa_pain_version" string='SEPA Pain version'/>
</group>
</group>
</xpath>
</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="view_account_invoice_filter" model="ir.ui.view">
<field name="name">sdd.account.invoice.select</field>
<field name="model">account.move</field>
<field name="inherit_id" ref="account.view_account_invoice_filter"/>
<field name="arch" type="xml">
<xpath expr="//filter[@name='to_check']" position="after">
<filter name="has_sdd_mandate" string="SDD Mandate" domain="[('sdd_has_usable_mandate', '=', True)]" help="Invoices matching a valid SEPA Direct Debit Mandate"/>
</xpath>
</field>
</record>
<record id="view_account_move_line_payment_filter" model="ir.ui.view">
<field name="name">sdd.account.move.line.payment.search</field>
<field name="model">account.move.line</field>
<field name="inherit_id" ref="account.view_account_move_line_payment_filter"/>
<field name="arch" type="xml">
<xpath expr="//filter[@name='refunds']" position="after">
<separator/>
<filter name="has_sdd_mandate" string="SDD Mandate" domain="[('move_id.sdd_has_usable_mandate', '=', True)]" help="Payments matching a valid SEPA Direct Debit Mandate"/>
</xpath>
</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="sdd_account_payment_with_mandates_tree" model="ir.ui.view">
<field name="name">sdd.account.payment.mandate.list</field>
<field name="model">account.payment</field>
<field name="inherit_id" ref="account.view_account_payment_tree"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<list position="inside">
<field name="sdd_mandate_id" string="Originating SEPA mandate"/>
</list>
</field>
</record>
<record id="sdd_account_payment_form" model="ir.ui.view">
<field name="name">sdd.account.payment.form</field>
<field name="model">account.payment</field>
<field name="inherit_id" ref="account.view_account_payment_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='payment_method_line_id']" position="after">
<field name="sdd_mandate_id"
string="Originating SEPA mandate"
domain="[('state', '=', 'active'), ('partner_id', '=', partner_id)]"
groups="account.group_account_invoice"
invisible="payment_method_code not in ('sdd', 'sepa_direct_debit')"/>
</xpath>
<xpath expr="//header" position="after">
<div class="alert alert-info text-center"
groups="account.group_account_invoice"
invisible="not sdd_mandate_usable or payment_type != 'inbound' or state != 'draft'"
role="status">Good news! A valid SEPA Mandate is available.</div>
<div class="alert alert-warning text-center"
groups="account.group_account_invoice"
invisible="payment_method_code not in ('sdd', 'sepa_direct_debit') or state != 'draft' or sdd_mandate_usable"
role="alert">Oops! No valid SEPA mandate for this customer. <a type="action" name="%(odex30_account_sepa_direct_debit.account_sepa_direct_debit_mandate_tree_act)d">Create it.</a></div>
<div class="alert alert-warning text-center"
invisible="currency_id == %(base.EUR)d or payment_method_code not in ('sdd', 'sepa_direct_debit')"
role="status">SEPA Scheme operates in Euro.
</div>
</xpath>
</field>
</record>
<record id="sdd_view_account_payment_search" model="ir.ui.view">
<field name="name">sdd.account.account.payment.search</field>
<field name="model">account.payment</field>
<field name="inherit_id" ref="account.view_account_payment_search"/>
<field name="arch" type="xml">
<xpath expr="//filter[@name='company']" position="after">
<separator/>
<filter name="revoked_mandate" string="Revoked SDD Mandate" domain="[('sdd_mandate_id.state', '=', 'revoked')]"/>
<separator/>
</xpath>
</field>
</record>
<record id="view_account_payment_tree" model="ir.ui.view">
<field name="name">sdd.account.payment.list</field>
<field name="model">account.payment</field>
<field name="inherit_id" ref="account.view_account_payment_tree"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='payment_method_line_id']" position="after">
<field name="sdd_mandate_scheme" optional="hide" groups="account.group_account_invoice"/>
</xpath>
<xpath expr="//field[@name='state']" position="before">
<field name="sdd_mandate_id" optional="hide"/>
</xpath>
</field>
</record>
<record id="view_account_payment_search" model="ir.ui.view">
<field name="name">sdd.account.payment.search</field>
<field name="model">account.payment</field>
<field name="inherit_id" ref="account.view_account_payment_search"/>
<field name="arch" type="xml">
<xpath expr="//filter[@name='company']" position="after">
<filter string="SDD CORE" name="sdd_mandate_scheme_f1" domain="[('sdd_mandate_scheme','=','CORE')]"/>
<filter string="SDD B2B" name="sdd_mandate_scheme_f2" domain="[('sdd_mandate_scheme','=','B2B')]"/>
</xpath>
</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="sdd_report_invoice_document" inherit_id="account.report_invoice_document">
<xpath expr="//div[@t-if='not is_html_empty(o.narration)']" position="before">
<div t-if="any(p.sdd_mandate_id for p in o.reconciled_payment_ids)">
<div>
<p>
This invoice will be paid using direct debit and is only
sent for informative purposes.
</p>
<p>
Please do not pay it manually, the payment will be asked to your bank to be processed
automatically.
</p>
</div>
</div>
</xpath>
</template>
</data>
</odoo>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.account.sepa.direct.debit</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="account.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//setting[@id='collect_customer_payment']/div[hasclass('content-group')]" position="replace">
<div class="content-group" invisible="not module_account_sepa_direct_debit">
<div class="row">
<label for="sdd_creditor_identifier" class="col-lg-3 o_light_label"/>
<field name="sdd_creditor_identifier" class="oe_inline"/>
</div>
</div>
</xpath>
</field>
</record>
</odoo>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="account_sepa_direct_debit_partner_mandates" model="ir.actions.act_window">
<field name="name">Direct Debit Mandates</field>
<field name="res_model">sdd.mandate</field>
<field name="view_mode">list,form</field>
<field name="context">{'default_partner_id':active_id, 'search_default_account_sdd_mandate_active_filter':1}</field>
<field name="domain">[('partner_id', '=', active_id)]</field>
</record>
<record id="account_sdd_res_partner_view" model="ir.ui.view">
<field name="name">res.partner.view.account.sdd.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="priority" eval="16"/>
<field name="arch" type="xml">
<div name="button_box" position="inside">
<button class="oe_stat_button" groups="account.group_account_invoice" name="odex30_account_sepa_direct_debit.account_sepa_direct_debit_partner_mandates" type="action"
icon="fa-pencil-square-o" help="Open this partner's mandates" title="Direct Debit Mandates">
<field string='Direct Debit Mandates' name="sdd_count" widget="statinfo"/>
</button>
</div>
</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record model="ir.ui.view" id="account_sepa_direct_debit_mandate_form">
<field name="name">sdd.mandate.form</field>
<field name="model">sdd.mandate</field>
<field name="arch" type="xml">
<form string="Customer mandate">
<header>
<field name="state" widget="statusbar" statusbar_visible="draft,active"/>
<button string="Send &amp; Print" type="object" name="action_send_and_print" class="btn btn-primary" invisible="state != 'draft' or is_sent"/>
<button string="Validate" type="object" name="action_validate_mandate" class="btn btn-secondary" invisible="state != 'draft' or is_sent"/>
<button string="Validate" type="object" name="action_validate_mandate" class="btn btn-primary" invisible="state != 'draft' or not is_sent"/>
<button string="Send &amp; Print" type="object" name="action_send_and_print" class="btn btn-secondary" invisible="state != 'draft' or not is_sent"/>
<button string="Cancel" type="object" name="action_cancel_mandate" class="btn btn-secondary" invisible="state != 'draft'"/>
<button string="Close" type="object" name="action_close_mandate" class="btn btn-primary" invisible="state != 'active'"/>
<button string="Revoke" type="object" name="action_revoke_mandate" class="btn btn-secondary" invisible="state != 'active'"/>
</header>
<sheet>
<field name="company_id" invisible="1"/>
<div class="oe_button_box" name="button_box">
<button type="object" name="action_view_payments_to_collect" icon="fa-usd" class="oe_stat_button" invisible="payments_to_collect_nber == 0">
<field name="payments_to_collect_nber" widget="statinfo" string="Collections" help="In-process and completed payments generated under this mandate."/>
</button>
<button type="object" name="action_view_paid_invoices" icon="fa-pencil-square-o" class="oe_stat_button" invisible="not paid_invoice_ids">
<field name="paid_invoices_nber" widget="statinfo" string="Invoices Paid" help="Invoices paid with this mandate."/>
</button>
</div>
<div>
<field name="partner_parent_id" invisible="1"/>
<div class="alert alert-warning text-center" invisible="not partner_parent_id" role="alert">
The selected customer is a child of <a type="action" name="action_parent_id_from_sdd_mandate"><field name="partner_parent_id"/></a>.
Make sure the mandate isn't meant for the parent contact.
</div>
</div>
<group>
<group>
<field name="partner_id" readonly="state != 'draft'"/>
<field name="partner_bank_id" domain="[('partner_id', '=', partner_id)]" context="{'default_partner_id':partner_id, 'sdd_mandate': True}" readonly="state != 'draft'"/>
<field name="sdd_scheme" readonly="state != 'draft'"/>
<label for="pre_notification_period"/>
<div colspan="1">
<field name="pre_notification_period" readonly="state != 'draft'" class="oe_inline"/>
<span> day(s)</span>
</div>
</group>
<group>
<field name="name" readonly="state != 'draft'"/>
<field name="start_date" readonly="state != 'draft'"/>
<field name="end_date" readonly="state != 'draft'"/>
<field name="company_id" groups="base.group_multi_company" required="1"/>
</group>
</group>
</sheet>
<div class="o_attachment_preview"/>
<chatter/>
</form>
</field>
</record>
<record id="view_partner_bank_form_inherit_account_sepa_direct_debit" model="ir.ui.view">
<field name="name">res.partner.bank.view.form.inherit.account.sepa.direct.debit</field>
<field name="model">res.partner.bank</field>
<field name="inherit_id" ref="base.view_partner_bank_form"/>
<field name="arch" type="xml">
<field name="partner_id" position="attributes">
<attribute name="invisible">context.get('sdd_mandate') == True</attribute>
</field>
</field>
</record>
<record model="ir.ui.view" id="account_sepa_direct_debit_mandate_tree">
<field name="name">sdd.mandate.list</field>
<field name="model">sdd.mandate</field>
<field name="arch" type="xml">
<list decoration-info="state == 'draft'" decoration-muted="state == 'closed'" decoration-danger="state == 'revoked'" default_order="start_date desc">
<field name="partner_id" readonly="state != 'draft'"/>
<field name="name" readonly="state != 'draft'"/>
<field name="start_date" readonly="state != 'draft'"/>
<field name="end_date" readonly="state == 'closed'"/>
<field name="sdd_scheme"/>
<field name="pre_notification_period" readonly="state != 'draft'"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="state"
decoration-muted="state in ('closed', 'cancelled')"
decoration-success="state == 'active'"
decoration-info="state == 'draft'"
decoration-danger="state == 'revoked'"
widget="badge"/>
</list>
</field>
</record>
<record id="account_sdd_mandate_search_view" model="ir.ui.view">
<field name="name">sdd.mandate.search</field>
<field name="model">sdd.mandate</field>
<field name="arch" type="xml">
<search>
<field name="partner_id"/>
<field name="partner_bank_id"/>
<field name="name"/>
<filter string="Draft" name="account_sdd_mandate_draft_filter" domain="[('state', '=', 'draft')]"/>
<filter string="Active" name="account_sdd_mandate_active_filter" domain="[('state', '=', 'active')]"/>
<filter string="Closed" name="account_sdd_mandate_closed_filter" domain="[('state', 'in', ('closed','revoked'))]"/>
</search>
</field>
</record>
<record id="account_sepa_direct_debit_mandate_tree_act" model="ir.actions.act_window">
<field name="name">Direct Debit Mandates</field>
<field name="res_model">sdd.mandate</field>
<field name="view_mode">list,form</field>
<field name="path">sdd-mandates</field>
<field name="context">{'search_default_account_sdd_mandate_active_filter':1}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new direct debit customer mandate
</p><p>
A mandate represents the authorization you receive from a customer
to automatically collect money on her account.
</p><p>
Once an invoice is made
in Odoo for a customer having a mandate active on the invoice date,
its validation will trigger its automatic payment, and you will
then only have to generate a SEPA Direct Debit (SDD) XML file containing this operation
and send it to your bank to effectively get paid.
</p>
</field>
</record>
<menuitem id="account_sepa_direct_debit_customer_mandates_menu"
name="Direct Debit Mandates"
parent="account.menu_finance_receivables"
action="account_sepa_direct_debit_mandate_tree_act"
sequence="50"/>
</data>
</odoo>

View File

@ -0,0 +1,2 @@
from . import account_payment_register
from . import sdd_mandate_send

View File

@ -0,0 +1,52 @@
from odoo import Command, _, models, fields, api
from odoo.exceptions import UserError
class AccountPaymentRegister(models.TransientModel):
_inherit = 'account.payment.register'
sdd_mandate_usable = fields.Boolean(string="Could a SDD mandate be used?",
compute='_compute_usable_mandate')
no_sdd_mandate_partner_ids = fields.Many2many(comodel_name='res.partner', compute='_compute_usable_mandate')
@api.depends('payment_date', 'partner_id', 'company_id', 'line_ids.partner_id')
def _compute_usable_mandate(self):
for wizard in self:
partners_with_valid_mandates = wizard._get_partner_ids_with_valid_mandates()
wizard.no_sdd_mandate_partner_ids = wizard.line_ids.partner_id - self.env['res.partner'].browse(partners_with_valid_mandates)
wizard.sdd_mandate_usable = not wizard.no_sdd_mandate_partner_ids
def _get_partner_ids_with_valid_mandates(self):
self.ensure_one()
moves_to_pay = self.line_ids.move_id
valid_mandate_ids_per_partner_id = self.env['sdd.mandate']._read_group([
('state', '=', 'active'),
('start_date', '<=', self.payment_date),
'|', ('end_date', '=', False), ('end_date', '>=', self.payment_date),
('partner_id', 'in', moves_to_pay.partner_id.commercial_partner_id.ids),
*self.env['sdd.mandate']._check_company_domain(moves_to_pay.company_id),
],
groupby=['partner_id'],
)
return {partner.id for (partner,) in valid_mandate_ids_per_partner_id}
def action_create_payments(self):
sdd_codes = set(self.env['account.payment.method']._get_sdd_payment_method_code())
for wizard in self.filtered(lambda wiz: wiz.payment_method_code in sdd_codes):
valid_partner_ids = wizard._get_partner_ids_with_valid_mandates()
if set(wizard.line_ids.partner_id.ids) != valid_partner_ids:
wizard.write({
'line_ids': [Command.set(wizard.line_ids.filtered(lambda line: line.partner_id.id in valid_partner_ids).ids)],
'payment_method_line_id': wizard.payment_method_line_id.id,
'group_payment': wizard.group_payment,
})
if not wizard.line_ids:
raise UserError(_(
"You can't pay any of the selected invoices using the SEPA Direct Debit method, as no valid mandate is available"
))
return super().action_create_payments()

View File

@ -0,0 +1,26 @@
<odoo>
<data>
<record id="account_payment_register_form_inherit_account_sepa_direct_debit" model="ir.ui.view">
<field name="name">sdd.account.payment.form.inherit.account.sepa.direct.debit</field>
<field name="model">account.payment.register</field>
<field name="inherit_id" ref="account.view_account_payment_register_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@role='alert']" position="before">
<div class="alert alert-info text-center"
invisible="not sdd_mandate_usable"
role="status">Good news! A valid SEPA Mandate is available.</div>
<div class="alert alert-warning text-center"
invisible="sdd_mandate_usable or payment_method_code not in ('sdd', 'sepa_direct_debit')"
role="alert">
Oops! No valid SEPA mandate for the following partner(s):
<field name="no_sdd_mandate_partner_ids" widget="x2many_buttons"/>
</div>
<div class="alert alert-warning text-center"
invisible="currency_id == %(base.EUR)d or payment_method_code not in ('sdd', 'sepa_direct_debit')"
role="status">SEPA Scheme operates in Euro.
</div>
</xpath>
</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,139 @@
from odoo import _, api, fields, models
class SDDMandateSend(models.TransientModel):
_inherit = 'mail.composer.mixin'
_name = 'sdd.mandate.send'
_description = "SDD Mandate Send"
company_id = fields.Many2one(comodel_name='res.company', compute='_compute_company_id', store=True)
mandate_id = fields.Many2one(comodel_name='sdd.mandate', readonly=True)
partner_id = fields.Many2one(related='mandate_id.partner_id', readonly=True)
checkbox_download = fields.Boolean(
string="Download",
default=False,
)
checkbox_send_mail = fields.Boolean(
string="Email",
default=True,
)
warnings = fields.Json(compute='_compute_warnings')
template_id = fields.Many2one(
comodel_name='mail.template',
string="Email template",
domain="[('model', '=', 'sdd.mandate.send')]",
)
author_id = fields.Many2one(
comodel_name='res.partner',
string="Author",
index=True,
ondelete='set null',
default=lambda self: self.env.user.partner_id,
)
recipient_ids = fields.Many2many(
comodel_name='res.partner',
string="Recipients",
compute='_compute_recipient_ids',
readonly=False,
)
@api.depends('mandate_id')
def _compute_recipient_ids(self):
for wizard in self:
wizard.recipient_ids = wizard.partner_id | wizard.mandate_id.message_partner_ids - wizard.author_id
@api.depends('mandate_id')
def _compute_company_id(self):
for wizard in self:
wizard.company_id = wizard.mandate_id.company_id.id
@api.depends('mandate_id', 'checkbox_send_mail')
def _compute_warnings(self):
for wizard in self:
warnings = {}
partners_without_mail = wizard.mandate_id.filtered(lambda x: not x.partner_id.email).partner_id
if wizard.checkbox_send_mail and partners_without_mail:
warnings['account_missing_email'] = {
'message': _("Partner should have an email address."),
'action_text': _("View Partner(s)"),
'action': partners_without_mail._get_records_action(name=_("Check Partner(s) Email(s)"))
}
wizard.warnings = warnings
@api.depends('mandate_id', 'template_id')
def _compute_subject(self):
# OVERRIDES mail
for wizard in self.filtered('template_id'):
wizard.subject = wizard.template_id._render_field(
'subject',
[wizard.id],
compute_lang=True,
options={'post_process': True},
)[wizard.id]
@api.depends('mandate_id', 'template_id')
def _compute_body(self):
# OVERRIDES mail
for wizard in self.filtered('template_id'):
wizard.body = wizard.template_id._render_field(
'body_html',
[wizard.id],
compute_lang=True,
options={'post_process': True},
)[wizard.id]
def _prepare_mandate_pdf(self):
self.ensure_one()
mandate = self.mandate_id
pdf_report = self.env.ref('odex30_account_sepa_direct_debit.sdd_mandate_form_report_main')
content, _report_type = self.env['ir.actions.report']._render_qweb_pdf(
pdf_report.report_name,
res_ids=mandate.ids,
)
return {
'name': f"{self.partner_id.name.replace(' ', '_')}_sdd_mandate_form_{mandate.name}.pdf",
'raw': content,
'mimetype': 'application/pdf',
'res_model': 'sdd.mandate',
'res_id': mandate.id,
'res_field': 'mandate_pdf_file',
}
def _send_mail(self, mandate_pdf):
self.ensure_one()
self.mandate_id.message_post(
author_id=(self.env.company.partner_id or self.author_id).id,
body=self.body,
message_type='comment',
email_layout_xmlid='mail.mail_notification_light',
partner_ids=self.recipient_ids.ids,
subject=self.subject,
attachment_ids=mandate_pdf.ids,
)
def action_send_and_print(self):
self.ensure_one()
mandate = self.mandate_id
mandate.is_sent = True
pdf_data = self._prepare_mandate_pdf()
attachment = self.env['ir.attachment'].create(pdf_data)
attachment.register_as_main_attachment(force=True)
if self.checkbox_send_mail:
self._send_mail(attachment)
if self.checkbox_download:
return {
'type': 'ir.actions.act_url',
'url': f"/web/content/{attachment.id}?download=true",
'close': True,
}
return {'type': 'ir.actions.act_window_close'}

View File

@ -0,0 +1,52 @@
<odoo>
<data>
<record id="account_sepa_direct_debit_mandate_send_form" model="ir.ui.view">
<field name="name">sdd.mandate.send.form</field>
<field name="model">sdd.mandate.send</field>
<field name="arch" type="xml">
<form string="Send &amp; Print">
<div class="m-0" name="warnings" invisible="not warnings">
<field name="warnings" class="o_field_html" widget="actionable_errors"/>
</div>
<group col="1">
<field name="author_id" invisible="1"/>
<field name="lang" invisible="1"/>
<field name="render_model" invisible="1"/>
<field name="mandate_id" invisible="1"/>
<field name="template_id" invisible="1"/>
</group>
<group col="2">
<field name="checkbox_download"/>
<field name="checkbox_send_mail"/>
<field name="template_id" can_create="True" invisible="not checkbox_send_mail"/>
</group>
<group col="2" invisible="not checkbox_send_mail">
<field name="recipient_ids"
widget="many2many_tags_email"
options="{'no_quick_create': True}"
context="{'show_email': True, 'form_view_ref': 'base.view_partner_simple_form'}"/>
</group>
<group col="2" invisible="not checkbox_send_mail">
<field name="subject" placeholder="Subject"/>
</group>
<field name="body"
invisible="not checkbox_send_mail"
class="oe-bordered-editor"
widget="html_mail"/>
<footer>
<button string="Send &amp; Print"
data-hotkey="q"
name="action_send_and_print"
type="object"
class="print btn-primary o_mail_send">
</button>
<button string="Cancel"
data-hotkey="x"
special="cancel"
class="btn-secondary"/>
</footer>
</form>
</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,64 @@
import logging
from . import models
_logger = logging.getLogger(__name__)
def _accounting_post_init(env):
country_code = env.company.country_id.code
if country_code:
module_list = []
if country_code in ('AU', 'CA', 'US'):
module_list.append('odex30_account_reports_cash_basis')
module_ids = env['ir.module.module'].search([('name', 'in', module_list), ('state', '=', 'uninstalled')])
if module_ids:
module_ids.sudo().button_install()
def uninstall_hook(env):
try:
group_user = env.ref("account.group_account_user")
group_user.write({
'name': "Show Full Accounting Features",
'implied_ids': [(3, env.ref('account.group_account_invoice').id)],
'category_id': env.ref("base.module_category_hidden").id,
})
group_readonly = env.ref("account.group_account_readonly")
group_readonly.write({
'name': "Show Full Accounting Features - Readonly",
'category_id': env.ref("base.module_category_hidden").id,
})
except ValueError as e:
_logger.warning(e)
try:
group_manager = env.ref("account.group_account_manager")
group_manager.write({'name': "Billing Manager",
'implied_ids': [(4, env.ref("account.group_account_invoice").id),
(3, env.ref("account.group_account_readonly").id),
(3, env.ref("account.group_account_user").id)]})
except ValueError as e:
_logger.warning(e)
env.ref("account.group_account_user").write({'users': [(5, False, False)]})
env.ref("account.group_account_readonly").write({'users': [(5, False, False)]})
invoicing_menu = env.ref("account.menu_finance")
menus_to_move = [
"account.menu_finance_receivables",
"account.menu_finance_payables",
"account.menu_finance_entries",
"account.menu_finance_reports",
"account.menu_finance_configuration",
"account.menu_board_journal_1",
]
for menu_xmlids in menus_to_move:
try:
env.ref(menu_xmlids).parent_id = invoicing_menu
except ValueError as e:
_logger.warning(e)

View File

@ -0,0 +1,37 @@
{
'name': 'Accounting',
'version': '1.1',
'category': 'Accounting/Accounting',
'sequence': 30,
'summary': 'Manage financial and analytic accounting',
'description': """
Accounting Access Rights
========================
It gives the Administrator user access to all accounting features such as journal items and the chart of accounts.
It assigns manager and user access rights to the Administrator for the accounting application and only user rights to the Demo user.
""",
'website': 'http://exp-sa.com',
'author': 'Expert Co. Ltd.',
'depends': ['odex30_account_accountant'],
'data': [
'data/account_accountant_data.xml',
'security/accounting_security.xml',
'views/res_config_settings.xml',
'views/partner_views.xml',
],
'demo': ['demo/account_accountant_demo.xml'],
'installable': True,
'application': True,
'post_init_hook': '_accounting_post_init',
'uninstall_hook': "uninstall_hook",
'license': 'OEEL-1',
'assets': {
'web.assets_backend': [
'odex30_accountant/static/src/js/tours/accountant.js',
],
'web.assets_tests': [
'odex30_accountant/static/tests/tours/*',
],
}
}

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<menuitem name="Accounting"
id="menu_accounting"
groups="account.group_account_readonly,account.group_account_invoice"
web_icon="accountant,static/description/icon.png"
sequence="60"/>
<record id="account.menu_finance_receivables" model="ir.ui.menu">
<field name="parent_id" ref="menu_accounting"/>
</record>
<record id="account.menu_finance_payables" model="ir.ui.menu">
<field name="parent_id" ref="menu_accounting"/>
</record>
<record id="account.menu_finance_entries" model="ir.ui.menu">
<field name="parent_id" ref="menu_accounting"/>
</record>
<record id="account.menu_finance_reports" model="ir.ui.menu">
<field name="parent_id" ref="menu_accounting"/>
</record>
<record id="account.menu_finance_configuration" model="ir.ui.menu">
<field name="parent_id" ref="menu_accounting"/>
</record>
<record id="account.menu_board_journal_1" model="ir.ui.menu">
<field name="parent_id" ref="menu_accounting"/>
</record>
<menuitem id="account.menu_account_config" name="Settings" parent="account.menu_finance_configuration" sequence="0" groups="base.group_system"/>
</odoo>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="base.user_demo" model="res.users">
<field name="groups_id" eval="[(4, ref('account.group_account_user'))]"/>
</record>
</odoo>

View File

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * odex30_accountant
#
# Translators:
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-19 09:51+0000\n"
"PO-Revision-Date: 2024-09-25 09:44+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Arabic (https://app.transifex.com/odoo/teams/41243/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#. module: odex30_accountant
#: model:ir.ui.menu,name:odex30_accountant.menu_accounting
#: model_terms:ir.ui.view,arch_db:odex30_accountant.res_config_settings_view_form
#: model_terms:ir.ui.view,arch_db:odex30_accountant.res_partner_view_form
msgid "Accounting"
msgstr "المحاسبة "
#. module: odex30_accountant
#: model:ir.model,name:odex30_accountant.model_account_move
msgid "Journal Entry"
msgstr "قيد اليومية"

View File

@ -0,0 +1 @@
from . import account_move

View File

@ -0,0 +1,8 @@
from odoo import models
class AccountMove(models.Model):
_inherit = 'account.move'
def _get_invoice_in_payment_state(self):
return 'in_payment'

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="base.user_root" model="res.users">
<field name="groups_id" eval="[(4, ref('account.group_account_user'))]"/>
</record>
<record id="base.user_admin" model="res.users">
<field name="groups_id" eval="[(4, ref('account.group_account_user'))]"/>
</record>
<record model="ir.module.category" id="base.module_category_accounting_accounting">
<field name="name">Accounting</field>
<field name="description">Helps you handle your invoices and accounting actions.
Invoicing: Invoices, payments and basic invoice reporting.
Invoicing &amp; Banks: adds the accounting dashboard, bank management and follow-up reports.
Bookkeeper: access to all Accounting features, including reporting, asset management, analytic accounting, without configuration rights.
Administrator: full access including configuration rights and accounting data management.
Readonly: access to all the accounting data but in readonly mode, no actions allowed.
</field>
</record>
<record id="account.group_account_readonly" model="res.groups">
<field name="name">Read-only</field>
<field name="category_id" ref="base.module_category_accounting_accounting"/>
</record>
<record id="account.group_account_user" model="res.groups">
<field name="name">Bookkeeper</field>
<field name="category_id" ref="base.module_category_accounting_accounting"/>
</record>
<record id="account.group_account_manager" model="res.groups">
<field name="implied_ids" eval="[(3, ref('account.group_account_invoice')), (4, ref('account.group_account_user'))]"/>
</record>
</odoo>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1 @@
<svg width="50" height="50" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"><path d="M40.682 41.263c-3.514 4.188-9.758 4.734-13.946 1.22-4.189-3.514-4.735-9.758-1.22-13.947 3.514-4.188 9.758-4.734 13.946-1.22 4.188 3.515 4.734 9.759 1.22 13.947Z" fill="#1AD3BB"/><path d="M25.383 21.464c-3.514 4.188-9.758 4.734-13.946 1.22-4.188-3.514-4.735-9.758-1.22-13.946 3.514-4.189 9.758-4.735 13.946-1.22 4.188 3.514 4.734 9.758 1.22 13.946Z" fill="#FBB945"/><path d="M37.09 6.545c1.407-1.406 3.36-1.732 4.364-.728L46 10.363l-33.09 33.09c-1.407 1.406-3.36 1.732-4.365.728L4 39.636 37.09 6.544Z" fill="#985184"/><path d="m31.174 25.188-7.79 7.789a9.853 9.853 0 0 1 2.13-4.442 9.858 9.858 0 0 1 5.66-3.348Z" fill="#005E7A"/><path d="M18.676 24.962a9.868 9.868 0 0 0 6.707-3.498 9.854 9.854 0 0 0 2.278-5.487l-8.985 8.985Z" fill="#953B24"/></svg>

After

Width:  |  Height:  |  Size: 842 B

View File

@ -0,0 +1,12 @@
/** @odoo-module **/
import { patch } from "@web/core/utils/patch";
import { accountTourSteps } from "@account/js/tours/account";
import { stepUtils } from "@web_tour/tour_service/tour_utils";
patch(accountTourSteps, {
goToAccountMenu(description="Open Accounting Menu") {
return stepUtils.goToAppSteps('accountant.menu_accounting', description);
},
});

Some files were not shown because too many files have changed in this diff Show More