Initial commit: OCA Financial packages (186 packages)

This commit is contained in:
Ernad Husremovic 2025-08-29 15:43:04 +02:00
commit 3e0e8473fb
8757 changed files with 947473 additions and 0 deletions

View file

@ -0,0 +1,44 @@
# Account Analytic Required
Odoo addon: account_analytic_required
## Installation
```bash
pip install odoo-bringout-oca-account-analytic-account_analytic_required
```
## Dependencies
This addon depends on:
- account
## Manifest Information
- **Name**: Account Analytic Required
- **Version**: 16.0.2.0.1
- **Category**: Analytic Accounting
- **License**: AGPL-3
- **Installable**: True
## Source
Based on [OCA/account-analytic](https://github.com/OCA/account-analytic) branch 16.0, addon `account_analytic_required`.
## License
This package maintains the original AGPL-3 license from the upstream Odoo project.
## Documentation
- Overview: doc/OVERVIEW.md
- Architecture: doc/ARCHITECTURE.md
- Models: doc/MODELS.md
- Controllers: doc/CONTROLLERS.md
- Wizards: doc/WIZARDS.md
- Install: doc/INSTALL.md
- Usage: doc/USAGE.md
- Configuration: doc/CONFIGURATION.md
- Dependencies: doc/DEPENDENCIES.md
- Troubleshooting: doc/TROUBLESHOOTING.md
- FAQ: doc/FAQ.md

View file

@ -0,0 +1,104 @@
=========================
Account Analytic Required
=========================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:b4f08464e020a5805a64f9b7c6fec1ebb9b906ca85108244c2b1a75cad983e45
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--analytic-lightgray.png?logo=github
:target: https://github.com/OCA/account-analytic/tree/16.0/account_analytic_required
:alt: OCA/account-analytic
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/account-analytic-16-0/account-analytic-16-0-account_analytic_required
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/account-analytic&target_branch=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
This module adds an option *analytic policy* on accounts.
You have the choice between 4 policies : *always*, *never*, *posted moves* and empty (*optional*).
**Table of contents**
.. contents::
:local:
Configuration
=============
Example:
If you want to have an analytic account on all your *expenses*,
set the policy to *always* for the account of type *expense*.
If you try to save a journal items with an account of type *expense*
without analytic account, you will get an error message.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/account-analytic/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/account-analytic/issues/new?body=module:%20account_analytic_required%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
~~~~~~~
* Akretion
Contributors
~~~~~~~~~~~~
* Alexis de Lattre <alexis.delattre@akretion.com>
* Stéphane Bidoul
* Stefan Rijnhart
* Laetitia Gangloff
* Luc De Meyer, Noviat <info@noviat.com>
* Yannick Vaucher <yannick.vaucher@camptocamp.com>
* Akim Juillerat <akim.juillerat@camptocamp.com>
* Raf Ven <raf.ven@dynapps.be>
* Iván Todorovich <ivan.todorovich@druidoo.io>
* `Trobz <https://trobz.com>`_:
* Nguyễn Minh Chiến <chien@trobz.com>
* Jairo Llopis (`Moduon <https://www.moduon.team/>`__)
Other credits
~~~~~~~~~~~~~
The migration of this module from 15.0 to 16.0 was financially supported by Camptocamp
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
This module is part of the `OCA/account-analytic <https://github.com/OCA/account-analytic/tree/16.0/account_analytic_required>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View file

@ -0,0 +1,14 @@
# Copyright Akretion - Alexis de Lattre
# Copyright Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
{
"name": "Account Analytic Required",
"version": "16.0.2.0.1",
"category": "Analytic Accounting",
"license": "AGPL-3",
"author": "Akretion, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/account-analytic",
"depends": ["account"],
"data": ["views/account_account_views.xml"],
"installable": True,
}

View file

@ -0,0 +1,88 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \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_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr ""
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account"
" move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr ""
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic account.\n"
"- Posted moves: The accountant will get an error message if no analytic account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is present."
msgstr ""

View file

@ -0,0 +1,125 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-17 07:26+0000\n"
"PO-Revision-Date: 2023-02-17 07:26+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr "دائماً"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"سياسة الحسابات التحليلية هي ’دائماً‘ للحساب %(account)s ولكن الحساب "
"التحليلي فارغ في عنصر اليومية باسم %(move)s."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account "
"move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
"سياسة الحسابات التحليلية هي ’ممنوع‘ للحساب %(account)s ولكن في عنصر "
"اليومية باسم %(move)s تم تحديد حساب التحليلي %(analytic_account)s ."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"سياسة الحسابات التحليلية هي ’القيود المرحّلة‘ للحساب %(account)s ولكن "
"الحساب التحليلي فارغ في عنصر اليومية باسم %(move)s."
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr "عنصر اليومية"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr "عنصر اليومية"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr "ممنوع"
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr "سياسة للحسابات التحليلية"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr "القيود المرحّلة"
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account "
"move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic "
"account.\n"
"- Posted moves: The accountant will get an error message if no analytic "
"account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is "
"present."
msgstr ""
#~ msgid "Optional"
#~ msgstr "إختياري"
#~ msgid ""
#~ "Sets the policy for analytic accounts.\n"
#~ "If you select:\n"
#~ "- Optional: The accountant is free to put an analytic account on an "
#~ "account move line with this type of account.\n"
#~ "- Always: The accountant will get an error message if there is no "
#~ "analytic account.\n"
#~ "- Posted moves: The accountant will get an error message if no analytic "
#~ "account is defined when the move is posted.\n"
#~ "- Never: The accountant will get an error message if an analytic account "
#~ "is present.\n"
#~ "\n"
#~ "This field is company dependent."
#~ msgstr ""
#~ "قم بإختيار السياسات للحسابات التحليلية: اذا قم بإختيار \"إختياري\"، "
#~ "للمحاسب الحرية في اختيار حساب التحليلي ام لا في حركة القيد المحسابي مع "
#~ "هذا النوع من الحساب; و إن قمت بإختيار \"دائما\"، ستظهر للمحاسب رسالة خطأ "
#~ "ان كان لا يوجد حساب تحليلي; و ان قمت بإختيار \"قيويد مرحلة\" ستظهر "
#~ "للمحاسب رسالة خطأ اذا لم يحدد حساب تحليلي في ترحيل القيود; و إن اخترت "
#~ "\"ابداً\\نهائي\"، ستظهر للمحاسب رسالة خطأ اذا تم تحديد حساب تحليلي."

View file

@ -0,0 +1,88 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \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_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr "Konto"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr "Uvijek"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account"
" move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr "Stavka dnevnika"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr "Stavka dnevnika"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr "Nikad"
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr "Pravila za analitička konta"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr "Proknjjižene temeljnice"
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic account.\n"
"- Posted moves: The accountant will get an error message if no analytic account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is present."
msgstr ""

View file

@ -0,0 +1,143 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-17 07:26+0000\n"
"PO-Revision-Date: 2024-12-07 10:06+0000\n"
"Last-Translator: QuiJoQuim <quim.rebull@gmail.com>\n"
"Language-Team: \n"
"Language: ca\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.6.2\n"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr "Compte"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr "Sempre"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"La política analítica s'ha establert en 'Sempre' en el compte '%(account)s' "
"però falta el compte analític a la línia de moviment del compte amb "
"l'etiqueta '%(move)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account "
"move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
"La política analítica s'ha establert en 'Mai' '%(account)s' però l'apunt "
"'%(move)s' té el compte analític '%(analytic_account)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"La política analítica conté el valor 'Moviments publicats' al compte "
"%(account)s però el compte analític no existeix en l'apunt amb etiqueta "
"'%(move)s'."
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr "Assentaments"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr "Apunts"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr "Mai"
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr "Política per als comptes analítics"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr "Moviments publicats"
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account "
"move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic "
"account.\n"
"- Posted moves: The accountant will get an error message if no analytic "
"account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is "
"present."
msgstr ""
"Estableix la política dels comptes analítics.\n"
"Si seleccioneu:\n"
"- Buit: el comptable és lliure de posar un compte analític en una línia de "
"moviment de compte amb aquest tipus de compte.\n"
"- Sempre: el comptable rebrà un missatge d'error si no hi ha cap compte "
"analític.\n"
"- Moviments publicats: el comptable rebrà un missatge d'error si no es "
"defineix cap compte analític quan es publica el moviment.\n"
"- Mai: el comptable rebrà un missatge d'error si hi ha un compte analític."
#~ msgid "Optional"
#~ msgstr "Opcional"
#~ msgid ""
#~ "Sets the policy for analytic accounts.\n"
#~ "If you select:\n"
#~ "- Optional: The accountant is free to put an analytic account on an "
#~ "account move line with this type of account.\n"
#~ "- Always: The accountant will get an error message if there is no "
#~ "analytic account.\n"
#~ "- Posted moves: The accountant will get an error message if no analytic "
#~ "account is defined when the move is posted.\n"
#~ "- Never: The accountant will get an error message if an analytic account "
#~ "is present.\n"
#~ "\n"
#~ "This field is company dependent."
#~ msgstr ""
#~ "Estableix la política dels comptes analítics.\n"
#~ "Si seleccioneu:\n"
#~ "- Opcional: el comptable és lliure de posar un compte analític en una "
#~ "línia de moviment de compte amb aquest tipus de compte.\n"
#~ "- Sempre: el comptable rebrà un missatge d'error si no hi ha cap compte "
#~ "analític.\n"
#~ "- Moviments publicats: el comptable rebrà un missatge d'error si no es "
#~ "defineix cap compte analític quan es publica el moviment.\n"
#~ "- Mai: el comptable rebrà un missatge d'error si hi ha un compte "
#~ "analític.\n"
#~ "\n"
#~ "Aquest camp depèn de l'empresa."

View file

@ -0,0 +1,132 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-17 07:26+0000\n"
"PO-Revision-Date: 2023-02-17 07:26+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr "Immer"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"Die Analytic-Richtlinie ist mit dem Konto '%(account)s' auf 'Immer' "
"eingestellt, aber im Analysekonto fehlt in der Buchungslinie mit der "
"Bezeichnung '%(move)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account "
"move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
"Die Analytic-Richtlinie ist auf \"Nie\" eingestellt mit Konto %(account)s "
"aber die Buchungslinie mit Marke '%(move)s' hat ein anlaytisches Konto "
"'%(analytic_account)s'. "
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"Die Analytic-Richtlinie ist auf \"Posted moves\" eingestellt mit dem "
"Konto \n"
"'%(account)s' aber das analytische Konto fehlt in der Buchungslinie mit dem "
"Label '%(move)s'."
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr "Journaleintrag"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr "Journaleintrag"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr "Nie"
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr "Richtlinie für analytisches Konto"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr "Buchungen"
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account "
"move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic "
"account.\n"
"- Posted moves: The accountant will get an error message if no analytic "
"account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is "
"present."
msgstr ""
#~ msgid "Optional"
#~ msgstr "Wahlweise"
#~ msgid ""
#~ "Sets the policy for analytic accounts.\n"
#~ "If you select:\n"
#~ "- Optional: The accountant is free to put an analytic account on an "
#~ "account move line with this type of account.\n"
#~ "- Always: The accountant will get an error message if there is no "
#~ "analytic account.\n"
#~ "- Posted moves: The accountant will get an error message if no analytic "
#~ "account is defined when the move is posted.\n"
#~ "- Never: The accountant will get an error message if an analytic account "
#~ "is present.\n"
#~ "\n"
#~ "This field is company dependent."
#~ msgstr ""
#~ "Legen Sie die Richtlinie für analytische Konten fest: \n"
#~ "Wenn Sie \"Optional\" auswählen, kann der Buchhalter ein analytisches "
#~ "Konto in einer Kontobewegungslinie mit diesem Kontotyp anlegen. Wenn Sie "
#~ "\"Immer\" auswählen, erhält der Buchhalter eine Fehlermeldung, wenn kein "
#~ "analytisches Konto vorhanden ist. Wenn Sie \"Posted moves\" auswählen, "
#~ "erhält der Buchhalter eine Fehlermeldung, wenn bei der Buchung kein "
#~ "analytisches Konto definiert wurde. Wenn Sie \"Nie\" auswählen, erhält "
#~ "der Buchhalter eine Fehlermeldung, wenn ein analytisches Konto vorhanden "
#~ "ist."

View file

@ -0,0 +1,146 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-17 07:26+0000\n"
"PO-Revision-Date: 2025-08-07 10:25+0000\n"
"Last-Translator: Miquel Romera <mromera@pmsastro.es>\n"
"Language-Team: \n"
"Language: es\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.10.4\n"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr "Cuenta"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr "Siempre"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"La política analítica está configurada como \"Siempre\" para la cuenta "
"'%(account)s' pero falta la cuenta análitica en la línea de movimiento de la "
"cuenta con la etiqueta '%(move)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account "
"move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
"La política analítica está configurada como \"Nunca\" para la cuenta "
"'%(account)s' pero la línea de movimiento de la cuenta con la etiqueta "
"'%(move)s' tiene una cuenta analítica '%(analytic_account)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"La política analítica está configurada como \"Movimientos publicados\" para "
"la cuenta '%(account)s' pero falta la cuenta análitica en la línea de "
"movimiento de la cuenta con la etiqueta '%(move)s'."
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr "Apuntes contables"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr "Apunte contable"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr "Nunca"
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr "Política para la cuenta analítica"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr "Movimientos públicados"
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account "
"move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic "
"account.\n"
"- Posted moves: The accountant will get an error message if no analytic "
"account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is "
"present."
msgstr ""
"Establece la política para las cuentas analíticas..\n"
"Si selecciona:\n"
"- Vacía: El contador es libre de poner una cuenta analítica en una línea de "
"movimiento de cuenta con este tipo de cuenta..\n"
"- Siempre: El contable recibirá un mensaje de error si no hay cuenta "
"analítica..\n"
"- Movimientos contabilizados: El contable obtendrá un mensaje de error si no "
"hay ninguna cuenta analítica definida al contabilizar el movimiento.\n"
"- Nunca: El contable obtendrá un mensaje de error si existe una cuenta "
"analítica."
#~ msgid "Optional"
#~ msgstr "Opcional"
#~ msgid ""
#~ "Sets the policy for analytic accounts.\n"
#~ "If you select:\n"
#~ "- Optional: The accountant is free to put an analytic account on an "
#~ "account move line with this type of account.\n"
#~ "- Always: The accountant will get an error message if there is no "
#~ "analytic account.\n"
#~ "- Posted moves: The accountant will get an error message if no analytic "
#~ "account is defined when the move is posted.\n"
#~ "- Never: The accountant will get an error message if an analytic account "
#~ "is present.\n"
#~ "\n"
#~ "This field is company dependent."
#~ msgstr ""
#~ "Establezca la política para las cuentas analíticas: \n"
#~ "Si selecciona:\n"
#~ "- 'Opcional', el contable es libre de poner una cuenta analítica en una "
#~ "línea de movimiento de una cuenta con este tipo de cuenta; si "
#~ "selecciona. \n"
#~ "- 'Siempre', el contable recibirá un mensaje de error si no hay una "
#~ "cuenta analítica; si selecciona. \n"
#~ "- 'Movimientos publicados', el contable recibirá un mensaje de error si "
#~ "no se define una cuenta analítica cuando se publica el movimiento. \n"
#~ "- 'Nunca', el contable recibirá un mensaje de error si hay una cuenta "
#~ "analítica presente.\n"
#~ "\n"
#~ "Este campo depende de la compañía."

View file

@ -0,0 +1,95 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-17 07:26+0000\n"
"PO-Revision-Date: 2023-02-17 07:26+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr "Siempre"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account "
"move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr "Elemento del Libro"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr "Elemento del Libro"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account "
"move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic "
"account.\n"
"- Posted moves: The accountant will get an error message if no analytic "
"account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is "
"present."
msgstr ""

View file

@ -0,0 +1,130 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-17 07:26+0000\n"
"PO-Revision-Date: 2023-02-17 07:26+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr "Compte"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr "Toujours"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"La règle analytique est définie sur 'Toujours' pour le comptes '%(account)s' "
"mais le compte analytique est absent de l'écriture ayant libellé '%(move)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account "
"move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
"La règle analytique est définie sur 'Jamais' pour le compte '%(account)s' "
"mais l'écriture avec le libellé '%(move)s' a un compte analytique de définit "
"'%(analytic_account)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"La règle analytique est définie à 'Ecritures comptabilisées' pour le compte "
"'%(account)s' mais le compte analytique est absent de l'écriture ayant le "
"libellé '%(move)s'."
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr "Pièce comptable"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr "Écriture comptable"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr "Jamais"
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr "Politique pour les comptes analytiques"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr "Ecritures comptabilisées"
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account "
"move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic "
"account.\n"
"- Posted moves: The accountant will get an error message if no analytic "
"account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is "
"present."
msgstr ""
#~ msgid "Optional"
#~ msgstr "Facultatif"
#~ msgid ""
#~ "Sets the policy for analytic accounts.\n"
#~ "If you select:\n"
#~ "- Optional: The accountant is free to put an analytic account on an "
#~ "account move line with this type of account.\n"
#~ "- Always: The accountant will get an error message if there is no "
#~ "analytic account.\n"
#~ "- Posted moves: The accountant will get an error message if no analytic "
#~ "account is defined when the move is posted.\n"
#~ "- Never: The accountant will get an error message if an analytic account "
#~ "is present.\n"
#~ "\n"
#~ "This field is company dependent."
#~ msgstr ""
#~ "Définissez la règle pour les comptes analytiques: si vous sélectionnez "
#~ "'Facultatif', le comptable est libre de mettre un compte analytique sur "
#~ "une écriture comptable avec ce type de compte; si vous sélectionnez "
#~ "'Toujours', le comptable recevra un message d'erreur s'il n' y a pas de "
#~ "compte analytique; Si vous sélectionnez \"Ecritures comptabilisées\", le "
#~ "comptable recevra un message d'erreur si aucun compte analytique n'est "
#~ "défini lors de la comptabilisation de l'écriture; si vous sélectionnez "
#~ "\"Jamais\", le comptable recevra un message d'erreur si un compte "
#~ "analytique est présent."

View file

@ -0,0 +1,107 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-06-17 17:37+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>\n"
"Language-Team: none\n"
"Language: hr\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 4.17\n"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr "Konto"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr "Uvijek"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"Analitičko pravilo je postavljeno na 'Uvijek' za konto '%(account)s' ali "
"analitički konto nedostaje u stavci temeljnice sa naslovom '%(move)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account "
"move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
"Analitičko pravilo je postavljeno na 'Nikada' za konto '%(account)s' ali na "
"stavci temeljnice sa oznakom '%(move)s' postoji analitički konto "
"'%(analytic_account)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"Analitičko pravilo je postavljeno na \"Proknjiženo\" na kontima "
"'%(account)s' ali analitičkikonto nedostaje na stavci knjiženja pod nazivom "
"'%(move)s'."
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr "Stavka dnevnika"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr "Stavka dnevnika"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr "Nikad"
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr "Pravila za analitička konta"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr "Proknjjižene temeljnice"
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account "
"move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic "
"account.\n"
"- Posted moves: The accountant will get an error message if no analytic "
"account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is "
"present."
msgstr ""
#~ msgid "Optional"
#~ msgstr "Opcionalno"

View file

@ -0,0 +1,103 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-17 07:26+0000\n"
"PO-Revision-Date: 2023-02-17 07:26+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr "Uvijek"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"Analitičko pravilo je postavljeno na 'Uvijek' za konto '%(account)s' ali "
"analitički konto nedostaje u stavci temeljnice sa naslovom '%(move)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account "
"move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
"Analitičko pravilo je postavljeno na 'Nikada' za konto '%(account)s' ali na "
"stavci temeljnice sa oznakom '%(move)s' postoji analitički konto "
"'%(analytic_account)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr "Stavka dnevnika"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr "Stavka dnevnika"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr "Nikad"
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr "Pravila za analitička konta"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account "
"move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic "
"account.\n"
"- Posted moves: The accountant will get an error message if no analytic "
"account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is "
"present."
msgstr ""
#~ msgid "Optional"
#~ msgstr "Opcionalno"

View file

@ -0,0 +1,145 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-10-31 00:06+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\n"
"Language: it\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.6.2\n"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr "Conto"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr "Sempre"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"La politica analitica è impostata a 'Sempre' per il conto '%(account)s' ma "
"il conto analitico non è presente nel movimento contabile con etichetta "
"'%(move)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account "
"move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
"La politica analitica è impostata a 'Mai' per il conto '%(account)s' ma il "
"movimento contabile con etichetta '%(move)s' ha un conto analitico "
"'%(analytic_account)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"La politica analitica è impostata a 'Registrazioni confermate' per il conto "
"'%(account)s' ma il conto analitico non è presente nel movimento contabile "
"con etichetta '%(move)s'."
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr "Registrazione contabile"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr "Movimento contabile"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr "Mai"
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr "Politica per il conto analitico"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr "Registrazioni confermate"
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account "
"move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic "
"account.\n"
"- Posted moves: The accountant will get an error message if no analytic "
"account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is "
"present."
msgstr ""
"Imposta la politica per i conti analitici.\n"
"Se si seleziona:\n"
"- Vuoto: il contabile è libero di mettere un conto analitico su una riga "
"movimento conto con questo tipo di conto.\n"
"- Sempre: il contabile riceverà un messaggio di errore se non c'è alcun "
"conto analitico.\n"
"- Mocimenti registrati: il contabile riceverà un messaggio di errore se non "
"è definito alcun conto analitico quando il movimento viene registrato.\n"
"- Mai: il contabile riceverà un messaggio di errore se è presente un conto "
"analitico."
#~ msgid "Optional"
#~ msgstr "Opzionale"
#~ msgid ""
#~ "Sets the policy for analytic accounts.\n"
#~ "If you select:\n"
#~ "- Optional: The accountant is free to put an analytic account on an "
#~ "account move line with this type of account.\n"
#~ "- Always: The accountant will get an error message if there is no "
#~ "analytic account.\n"
#~ "- Posted moves: The accountant will get an error message if no analytic "
#~ "account is defined when the move is posted.\n"
#~ "- Never: The accountant will get an error message if an analytic account "
#~ "is present.\n"
#~ "\n"
#~ "This field is company dependent."
#~ msgstr ""
#~ "Impostare la politica per i conti analitici:\n"
#~ "se selezioni:\n"
#~ "- 'Opzionale', il contabile è libero di mettere un conto analitico su un "
#~ "movimento contabile di questo tipo; \n"
#~ "- 'Sempre', il contabile otterrà un messaggio di errore se non c'è un "
#~ "conto analitico; \n"
#~ "- 'Registrazioni confermate', il contabile otterrà un messaggio di errore "
#~ "se nessun conto analitico è definito quando il movimento viene "
#~ "confermato; \n"
#~ "- 'Mai', il contabile otterrà un messaggio di errore se un conto "
#~ "analitico è presente.\n"
#~ "\n"
#~ "Questo campo dipende dall'azienda."

View file

@ -0,0 +1,98 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-17 07:26+0000\n"
"PO-Revision-Date: 2023-02-17 07:26+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr ""
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"Het is verplicht een kostenplaats op te geven bij boekingen op rekening "
"'%(account)s' , maar deze ontbreekt in de boekingsregel met de omschrijving "
"'%(move)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account "
"move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr ""
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr "Kostenplaatsenbeleid"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account "
"move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic "
"account.\n"
"- Posted moves: The accountant will get an error message if no analytic "
"account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is "
"present."
msgstr ""

View file

@ -0,0 +1,146 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-17 07:26+0000\n"
"PO-Revision-Date: 2024-11-13 16:06+0000\n"
"Last-Translator: Rodrigo Sottomaior Macedo "
"<sottomaiormacedotec@sottomaiormacedo.tech>\n"
"Language-Team: \n"
"Language: pt_BR\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.6.2\n"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr "Conta"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr "Sempre"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"A política analítica é definida como \"Sempre\" com conta '%(account)s' Mas "
"a conta analítica está faltando na linha de mudança de conta com o rótulo "
"'%(move)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account "
"move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
"A política analítica é definida como 'Nunca' com conta'%(account)s' mas a "
"linha de movimento da conta com o rótulo '%(move)s' tem uma conta analítica "
"'%(analytic_account)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"A política analítica está definida como 'Movimentos Publicados' com a conta "
"'%(account)s', mas a conta analítica está ausente na linha de movimentação "
"da conta com o rótulo '%(move)s'."
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr "Entrada de Diário"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr "Item diário"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr "Nunca"
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr "Política para conta analítica"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr "Movimentos publicados"
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account "
"move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic "
"account.\n"
"- Posted moves: The accountant will get an error message if no analytic "
"account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is "
"present."
msgstr ""
"Define a política para contas analíticas.\n"
"Se você selecionar:\n"
"- Vazio: O contador é livre para colocar uma conta analítica em uma linha de "
"movimentação de conta com este tipo de conta.\n"
"- Sempre: O contador receberá uma mensagem de erro se não houver nenhuma "
"conta analítica.\n"
"- Movimentos lançados: O contador receberá uma mensagem de erro se nenhuma "
"conta analítica for definida quando o movimento for lançado.\n"
"- Nunca: O contador receberá uma mensagem de erro se uma conta analítica "
"estiver presente."
#~ msgid "Optional"
#~ msgstr "Opcional"
#~ msgid ""
#~ "Sets the policy for analytic accounts.\n"
#~ "If you select:\n"
#~ "- Optional: The accountant is free to put an analytic account on an "
#~ "account move line with this type of account.\n"
#~ "- Always: The accountant will get an error message if there is no "
#~ "analytic account.\n"
#~ "- Posted moves: The accountant will get an error message if no analytic "
#~ "account is defined when the move is posted.\n"
#~ "- Never: The accountant will get an error message if an analytic account "
#~ "is present.\n"
#~ "\n"
#~ "This field is company dependent."
#~ msgstr ""
#~ "Define a política para contas analíticas.\n"
#~ "Se você selecionar:\n"
#~ "- Opcional: o contador é livre para colocar uma conta analítica em uma "
#~ "linha de movimentação de conta com este tipo de conta.\n"
#~ "- Sempre: o contador receberá uma mensagem de erro se não houver conta "
#~ "analítica.\n"
#~ "- Movimentos publicados: O contador receberá uma mensagem de erro se "
#~ "nenhuma conta analítica for definida quando o movimento for publicado.\n"
#~ "- Nunca: o contador receberá uma mensagem de erro se uma conta analítica "
#~ "estiver presente.\n"
#~ "\n"
#~ "Este campo depende da empresa."

View file

@ -0,0 +1,131 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-17 07:26+0000\n"
"PO-Revision-Date: 2024-02-27 18:34+0000\n"
"Last-Translator: jakobkrabbe <jakob@syscare.se>\n"
"Language-Team: \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 4.17\n"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr "Konto"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr "Alltid"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"Objektkontopolicyn är inställd på 'Alltid' för konto '%(account)s' men "
"objektkonto saknas på raden med etiketten '%(move)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account "
"move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
"Objektkontopolicyn är inställd på 'Aldrig' för konto '%(account)s' men raden "
"med etiketten '%(move)s' har ett objektkonto '%(analytic_account)s'."
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"Objektkontopolicyn är inställd på 'Bokförda poster' för konto '%(account)s' "
"men objektkonto saknas på raden med etiketten '%(move)s'."
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr "Verifikat"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr "Journalrad"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr "Aldrig"
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr "Objektkontopolicy"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr "Bokförda transaktioner"
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account "
"move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic "
"account.\n"
"- Posted moves: The accountant will get an error message if no analytic "
"account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is "
"present."
msgstr ""
#~ msgid "Optional"
#~ msgstr "Valfritt"
#~ msgid ""
#~ "Sets the policy for analytic accounts.\n"
#~ "If you select:\n"
#~ "- Optional: The accountant is free to put an analytic account on an "
#~ "account move line with this type of account.\n"
#~ "- Always: The accountant will get an error message if there is no "
#~ "analytic account.\n"
#~ "- Posted moves: The accountant will get an error message if no analytic "
#~ "account is defined when the move is posted.\n"
#~ "- Never: The accountant will get an error message if an analytic account "
#~ "is present.\n"
#~ "\n"
#~ "This field is company dependent."
#~ msgstr ""
#~ "Anger policyn för objektkonton.\n"
#~ "Om du väljer:\n"
#~ "- Valfritt: Bokföraren kan välja att ange ett objektkonto på en rad med "
#~ "den här typen av konto.\n"
#~ "- Alltid: Bokföraren får ett felmeddelande om det inte finns något "
#~ "objektkonto.\n"
#~ "- Bokförda poster: Bokföraren får ett felmeddelande om det inte finns "
#~ "något objektkonto när posten bokförs.\n"
#~ "- Aldrig: Bokföraren får ett felmeddelande om det finns ett objektkonto.\n"
#~ "\n"
#~ "Detta fält är bolagsberoende."

View file

@ -0,0 +1,123 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_analytic_required
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-17 07:26+0000\n"
"PO-Revision-Date: 2023-02-17 07:26+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_account
msgid "Account"
msgstr ""
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__always
msgid "Always"
msgstr "总是"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Always' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"分析策略设置为“始终”,帐户为 '%(account)s',但标签为 '%(move)s' 的帐户移动行中"
"缺少分析帐户。"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Never' with account '%(account)s' but the account "
"move line with label '%(move)s' has an analytic account "
"'%(analytic_account)s'."
msgstr ""
"分析策略设置为“从不”,帐户为 '%(account)s',但标签为 '%(move)s' 的帐户移动行"
"具有分析帐户 '%(analytic_account)s'。"
#. module: account_analytic_required
#. odoo-python
#: code:addons/account_analytic_required/models/account.py:0
#, python-format
msgid ""
"Analytic policy is set to 'Posted moves' with account '%(account)s' but the "
"analytic account is missing in the account move line with label '%(move)s'."
msgstr ""
"分析策略设置为“已发布移动”,帐户为 '%(account)s',但在标签为 '%(move)s' 的帐"
"户移动行中缺少分析帐户。"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move
msgid "Journal Entry"
msgstr "日记帐分录"
#. module: account_analytic_required
#: model:ir.model,name:account_analytic_required.model_account_move_line
msgid "Journal Item"
msgstr "日记帐项目"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__never
msgid "Never"
msgstr "从未"
#. module: account_analytic_required
#: model:ir.model.fields,field_description:account_analytic_required.field_account_account__analytic_policy
msgid "Policy for analytic account"
msgstr "分析帐户策略"
#. module: account_analytic_required
#: model:ir.model.fields.selection,name:account_analytic_required.selection__account_account__analytic_policy__posted
msgid "Posted moves"
msgstr "已发布的移动"
#. module: account_analytic_required
#: model:ir.model.fields,help:account_analytic_required.field_account_account__analytic_policy
msgid ""
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account on an account "
"move line with this type of account.\n"
"- Always: The accountant will get an error message if there is no analytic "
"account.\n"
"- Posted moves: The accountant will get an error message if no analytic "
"account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic account is "
"present."
msgstr ""
#~ msgid "Optional"
#~ msgstr "可选"
#~ msgid ""
#~ "Sets the policy for analytic accounts.\n"
#~ "If you select:\n"
#~ "- Optional: The accountant is free to put an analytic account on an "
#~ "account move line with this type of account.\n"
#~ "- Always: The accountant will get an error message if there is no "
#~ "analytic account.\n"
#~ "- Posted moves: The accountant will get an error message if no analytic "
#~ "account is defined when the move is posted.\n"
#~ "- Never: The accountant will get an error message if an analytic account "
#~ "is present.\n"
#~ "\n"
#~ "This field is company dependent."
#~ msgstr ""
#~ "为分析帐户设置策略:如果选择“可选”,会计可以使用此类帐户在帐户移动行上自由"
#~ "放置分析帐户; 如果您选择“始终”,如果没有分析帐户,会计将收到错误消息; 如果"
#~ "您选择“已发布的移动”,则如果在发布移动时未定义分析帐户,则会计将收到错误消"
#~ "息; 如果您选择“从不”,如果存在分析帐户,会计将收到错误消息。"

View file

@ -0,0 +1,32 @@
# Copyright 2024 Moduon Team S.L.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl-3.0)
"""Convert company-dependant field to normal."""
def migrate(cr, version):
cr.execute(
r"""
UPDATE account_account AS acc
SET analytic_policy = prop.value_text
FROM (
SELECT
substring(res_id FROM '\d+')::int AS account_id,
value_text
FROM ir_property
WHERE
name = 'analytic_policy'
AND res_id LIKE 'account.account,%'
AND value_text != 'optional'
) AS prop
WHERE
acc.id = prop.account_id
"""
)
cr.execute(
"""
DELETE FROM ir_property
WHERE
name = 'analytic_policy'
AND res_id LIKE 'account.account,%'
"""
)

View file

@ -0,0 +1,101 @@
# Copyright 2011-2020 Akretion - Alexis de Lattre
# Copyright 2016-2020 Camptocamp SA
# Copyright 2020 Druidoo - Iván Todorovich
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
from odoo import _, api, exceptions, fields, models
class AccountAccount(models.Model):
_inherit = "account.account"
analytic_policy = fields.Selection(
selection=[
("always", "Always"),
("posted", "Posted moves"),
("never", "Never"),
],
string="Policy for analytic account",
help=(
"Sets the policy for analytic accounts.\n"
"If you select:\n"
"- Empty: The accountant is free to put an analytic account "
"on an account move line with this type of account.\n"
"- Always: The accountant will get an error message if "
"there is no analytic account.\n"
"- Posted moves: The accountant will get an error message if no "
"analytic account is defined when the move is posted.\n"
"- Never: The accountant will get an error message if an analytic "
"account is present."
),
)
def _get_analytic_policy(self):
"""Extension point to obtain analytic policy for an account"""
self.ensure_one()
return self.analytic_policy
class AccountMove(models.Model):
_inherit = "account.move"
def _post(self, soft=True):
res = super()._post(soft=soft)
self.mapped("line_ids")._check_analytic_required()
return res
class AccountMoveLine(models.Model):
_inherit = "account.move.line"
def _check_analytic_required_msg(self):
self.ensure_one()
company_cur = self.company_currency_id
if company_cur.is_zero(self.debit) and company_cur.is_zero(self.credit):
return None
analytic_policy = self.account_id._get_analytic_policy()
if analytic_policy == "always" and not self.analytic_distribution:
return _(
"Analytic policy is set to 'Always' with account "
"'%(account)s' but the analytic account is missing in "
"the account move line with label '%(move)s'."
) % {
"account": self.account_id.display_name,
"move": self.name or "",
}
elif analytic_policy == "never" and (self.analytic_distribution):
analytic_account = self.analytic_distribution
analytic_acc_ids = [int(k) for k in analytic_account.keys()]
analytic_accs = self.env["account.analytic.account"].browse(
analytic_acc_ids
)
return _(
"Analytic policy is set to 'Never' with account "
"'%(account)s' but the account move line with label '%(move)s' "
"has an analytic account '%(analytic_account)s'."
) % {
"account": self.account_id.display_name,
"move": self.name or "",
"analytic_account": ", ".join(analytic_accs.mapped("name")),
}
elif (
analytic_policy == "posted"
and not self.analytic_distribution
and self.move_id.state == "posted"
):
return _(
"Analytic policy is set to 'Posted moves' with "
"account '%(account)s' but the analytic account is missing "
"in the account move line with label '%(move)s'."
) % {
"account": self.account_id.display_name,
"move": self.name or "",
}
return None
@api.constrains("analytic_distribution", "account_id", "debit", "credit")
def _check_analytic_required(self):
for rec in self:
message = rec._check_analytic_required_msg()
if message:
raise exceptions.ValidationError(message)

View file

@ -0,0 +1,6 @@
Example:
If you want to have an analytic account on all your *expenses*,
set the policy to *always* for the account of type *expense*.
If you try to save a journal items with an account of type *expense*
without analytic account, you will get an error message.

View file

@ -0,0 +1,13 @@
* Alexis de Lattre <alexis.delattre@akretion.com>
* Stéphane Bidoul
* Stefan Rijnhart
* Laetitia Gangloff
* Luc De Meyer, Noviat <info@noviat.com>
* Yannick Vaucher <yannick.vaucher@camptocamp.com>
* Akim Juillerat <akim.juillerat@camptocamp.com>
* Raf Ven <raf.ven@dynapps.be>
* Iván Todorovich <ivan.todorovich@druidoo.io>
* `Trobz <https://trobz.com>`_:
* Nguyễn Minh Chiến <chien@trobz.com>
* Jairo Llopis (`Moduon <https://www.moduon.team/>`__)

View file

@ -0,0 +1 @@
The migration of this module from 15.0 to 16.0 was financially supported by Camptocamp

View file

@ -0,0 +1,2 @@
This module adds an option *analytic policy* on accounts.
You have the choice between 4 policies : *always*, *never*, *posted moves* and empty (*optional*).

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View file

@ -0,0 +1,464 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>Account Analytic Required</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic, pre.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="account-analytic-required">
<h1 class="title">Account Analytic Required</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:b4f08464e020a5805a64f9b7c6fec1ebb9b906ca85108244c2b1a75cad983e45
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/account-analytic/tree/16.0/account_analytic_required"><img alt="OCA/account-analytic" src="https://img.shields.io/badge/github-OCA%2Faccount--analytic-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/account-analytic-16-0/account-analytic-16-0-account_analytic_required"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/account-analytic&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module adds an option <em>analytic policy</em> on accounts.
You have the choice between 4 policies : <em>always</em>, <em>never</em>, <em>posted moves</em> and empty (<em>optional</em>).</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#configuration" id="toc-entry-1">Configuration</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-5">Contributors</a></li>
<li><a class="reference internal" href="#other-credits" id="toc-entry-6">Other credits</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-7">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="configuration">
<h1><a class="toc-backref" href="#toc-entry-1">Configuration</a></h1>
<p>Example:</p>
<p>If you want to have an analytic account on all your <em>expenses</em>,
set the policy to <em>always</em> for the account of type <em>expense</em>.
If you try to save a journal items with an account of type <em>expense</em>
without analytic account, you will get an error message.</p>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/account-analytic/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/account-analytic/issues/new?body=module:%20account_analytic_required%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#toc-entry-3">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-4">Authors</a></h2>
<ul class="simple">
<li>Akretion</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
<ul>
<li><p class="first">Alexis de Lattre &lt;<a class="reference external" href="mailto:alexis.delattre&#64;akretion.com">alexis.delattre&#64;akretion.com</a>&gt;</p>
</li>
<li><p class="first">Stéphane Bidoul</p>
</li>
<li><p class="first">Stefan Rijnhart</p>
</li>
<li><p class="first">Laetitia Gangloff</p>
</li>
<li><p class="first">Luc De Meyer, Noviat &lt;<a class="reference external" href="mailto:info&#64;noviat.com">info&#64;noviat.com</a>&gt;</p>
</li>
<li><p class="first">Yannick Vaucher &lt;<a class="reference external" href="mailto:yannick.vaucher&#64;camptocamp.com">yannick.vaucher&#64;camptocamp.com</a>&gt;</p>
</li>
<li><p class="first">Akim Juillerat &lt;<a class="reference external" href="mailto:akim.juillerat&#64;camptocamp.com">akim.juillerat&#64;camptocamp.com</a>&gt;</p>
</li>
<li><p class="first">Raf Ven &lt;<a class="reference external" href="mailto:raf.ven&#64;dynapps.be">raf.ven&#64;dynapps.be</a>&gt;</p>
</li>
<li><p class="first">Iván Todorovich &lt;<a class="reference external" href="mailto:ivan.todorovich&#64;druidoo.io">ivan.todorovich&#64;druidoo.io</a>&gt;</p>
</li>
<li><p class="first"><a class="reference external" href="https://trobz.com">Trobz</a>:</p>
<blockquote>
<ul class="simple">
<li>Nguyễn Minh Chiến &lt;<a class="reference external" href="mailto:chien&#64;trobz.com">chien&#64;trobz.com</a>&gt;</li>
</ul>
</blockquote>
</li>
<li><p class="first">Jairo Llopis (<a class="reference external" href="https://www.moduon.team/">Moduon</a>)</p>
</li>
</ul>
</div>
<div class="section" id="other-credits">
<h2><a class="toc-backref" href="#toc-entry-6">Other credits</a></h2>
<p>The migration of this module from 15.0 to 16.0 was financially supported by Camptocamp</p>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/account-analytic/tree/16.0/account_analytic_required">OCA/account-analytic</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

View file

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

View file

@ -0,0 +1,163 @@
# Copyright 2014 Acsone
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
from datetime import datetime
from odoo import exceptions
from odoo.tests import common
class TestAccountAnalyticRequired(common.TransactionCase):
@classmethod
def setUpClass(cls):
super(TestAccountAnalyticRequired, cls).setUpClass()
cls.account_obj = cls.env["account.account"]
cls.move_obj = cls.env["account.move"]
cls.move_line_obj = cls.env["account.move.line"]
cls.analytic_account_obj = cls.env["account.analytic.account"]
cls.analytic_plan_obj = cls.env["account.analytic.plan"]
cls.analytic_plan = cls.analytic_plan_obj.create({"name": "test aa plan"})
cls.analytic_account_1 = cls.analytic_account_obj.create(
{"name": "test aa 1 for distribution", "plan_id": cls.analytic_plan.id}
)
cls.analytic_account_2 = cls.analytic_account_obj.create(
{"name": "test aa 2 for distribution", "plan_id": cls.analytic_plan.id}
)
cls.account_sales = cls.account_obj.create(
{
"code": "X1020",
"name": "Product Sales - (test)",
"account_type": "income",
}
)
cls.account_recv = cls.account_obj.create(
{
"code": "X11002",
"name": "Debtors - (test)",
"reconcile": True,
"account_type": "asset_receivable",
}
)
cls.account_exp = cls.account_obj.create(
{
"code": "X2110",
"name": "Expenses - (test)",
"account_type": "expense",
}
)
cls.sales_journal = cls.env["account.journal"].create(
{
"name": "Sales Journal - (test)",
"code": "TSAJ",
"type": "sale",
}
)
cls.analytic_distribution_1 = {
str(cls.analytic_account_1.id): 50.0,
}
cls.analytic_distribution_2 = {
str(cls.analytic_account_2.id): 50.0,
}
def _create_move(self, amount=100, **kwargs):
with_analytic = kwargs.get("with_analytic")
date = datetime.now()
ml_obj = self.move_line_obj.with_context(check_move_validity=False)
move_vals = {"name": "/", "journal_id": self.sales_journal.id, "date": date}
move = self.move_obj.create(move_vals)
move_line = ml_obj.create(
{
"move_id": move.id,
"name": "/",
"debit": 0,
"credit": amount,
"account_id": self.account_sales.id,
"analytic_distribution": self.analytic_distribution_1
if with_analytic
else {},
}
)
ml_obj.create(
{
"move_id": move.id,
"name": "/",
"debit": amount,
"credit": 0,
"account_id": self.account_recv.id,
}
)
return move_line
def _set_analytic_policy(self, policy, account=None):
if account is None:
account = self.account_sales
account.analytic_policy = policy
def test_optional(self):
self._set_analytic_policy(False)
self._create_move(with_analytic=False)
self._create_move(with_analytic=True)
def test_always_no_analytic(self):
self._set_analytic_policy("always")
with self.assertRaises(exceptions.ValidationError):
self._create_move(with_analytic=False)
def test_always_no_analytic_0(self):
# accept missing analytic account when debit=credit=0
self._set_analytic_policy("always")
self._create_move(with_analytic=False, amount=0)
def test_always_with_analytic(self):
self._set_analytic_policy("always")
self._create_move(with_analytic=True)
def test_never_no_analytic(self):
self._set_analytic_policy("never")
self._create_move(with_analytic=False)
def test_never_with_analytic(self):
self._set_analytic_policy("never")
with self.assertRaises(exceptions.ValidationError):
self._create_move(with_analytic=True)
def test_never_with_analytic_0(self):
# accept analytic when debit=credit=0
self._set_analytic_policy("never")
self._create_move(with_analytic=True, amount=0)
def test_always_remove_analytic(self):
# remove analytic when policy is always
self._set_analytic_policy("always")
line = self._create_move(with_analytic=True)
with self.assertRaises(exceptions.ValidationError):
line.write({"analytic_distribution": {}})
def test_change_account(self):
self._set_analytic_policy("always", account=self.account_exp)
line = self._create_move(with_analytic=False)
# change account to a_expense with policy always but missing
# analytic_account
with self.assertRaises(exceptions.ValidationError):
line.write({"account_id": self.account_exp.id})
# change account to a_expense with policy always
# with analytic account -> ok
line.write(
{
"account_id": self.account_exp.id,
"analytic_distribution": self.analytic_distribution_1,
}
)
def test_posted_raise(self):
self._set_analytic_policy("posted")
line = self._create_move(with_analytic=False)
move = line.move_id
with self.assertRaises(exceptions.ValidationError):
move.action_post()
def test_posted_ok(self):
self._set_analytic_policy("posted")
line = self._create_move(with_analytic=True)
move = line.move_id
move.action_post()
self.assertEqual(move.state, "posted")

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright 2011-2020 Akretion France (http://www.akretion.com/)
@author: Alexis de Lattre <alexis.delattre@akretion.com>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo>
<record id="view_account_account_form" model="ir.ui.view">
<field name="name">account_analytic_required.account_account_form</field>
<field name="model">account.account</field>
<field name="inherit_id" ref="account.view_account_form" />
<field name="arch" type="xml">
<field name="account_type" position="after">
<field
name="analytic_policy"
groups="analytic.group_analytic_accounting"
/>
</field>
</field>
</record>
<record id="view_account_account_tree" model="ir.ui.view">
<field name="name">account_analytic_required.account_account_tree</field>
<field name="model">account.account</field>
<field name="inherit_id" ref="account.view_account_list" />
<field name="arch" type="xml">
<field name="account_type" position="after">
<field
name="analytic_policy"
groups="analytic.group_analytic_accounting"
/>
</field>
</field>
</record>
</odoo>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,7 @@
# Install
```bash
pip install odoo-bringout-oca-account-analytic-account_analytic_required"
# or
uv pip install odoo-bringout-oca-account-analytic-account_analytic_required"
```

View file

@ -0,0 +1,14 @@
# Models
Detected core models and extensions in account_analytic_required.
```mermaid
classDiagram
class account_account
class account_move
class account_move_line
```
Notes
- Classes show model technical names; fields omitted for brevity.
- Items listed under _inherit are extensions of existing models.

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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