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 @@
# Stock Landed Costs Analytic
Odoo addon: stock_landed_costs_analytic
## Installation
```bash
pip install odoo-bringout-oca-account-analytic-stock_landed_costs_analytic
```
## Dependencies
This addon depends on:
- stock_landed_costs
## Manifest Information
- **Name**: Stock Landed Costs Analytic
- **Version**: 16.0.1.0.0
- **Category**: N/A
- **License**: AGPL-3
- **Installable**: True
## Source
Based on [OCA/account-analytic](https://github.com/OCA/account-analytic) branch 16.0, addon `stock_landed_costs_analytic`.
## 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,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 Stock_landed_costs_analytic Module - stock_landed_costs_analytic
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 stock_landed_costs_analytic. 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:
- [stock_landed_costs](../../odoo-bringout-oca-ocb-stock_landed_costs)

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

View file

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

View file

@ -0,0 +1,13 @@
# Models
Detected core models and extensions in stock_landed_costs_analytic.
```mermaid
classDiagram
class stock_landed_cost_lines
class stock_valuation_adjustment_lines
```
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: stock_landed_costs_analytic. Provides features documented in upstream Odoo 16 under this addon.
- Source: OCA/OCB 16.0, addon stock_landed_costs_analytic
- 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 stock_landed_costs_analytic
```

View file

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

View file

@ -0,0 +1,45 @@
[project]
name = "odoo-bringout-oca-account-analytic-stock_landed_costs_analytic"
version = "16.0.0"
description = "Stock Landed Costs Analytic -
This module adds an analytic account and analytic tags on landed costs
lines so that on landed costs validation account moves get analytic
account and analytic tags values from landed costs lines."
authors = [
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
]
dependencies = [
"odoo-bringout-oca-ocb-stock_landed_costs>=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 = ["stock_landed_costs_analytic"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]

View file

@ -0,0 +1,64 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
===========================
Stock Landed Costs Analytic
===========================
This module adds an analytic account and analytic tags on landed costs lines
so that on landed costs validation account moves get analytic account and
analytic tags values from landed costs lines.
Usage
=====
To use this module, you need to:
#. Create a Landed Cost
#. Set Analytic Account and Analytic Tags on your Additional Costs
#. Validate your Landed Cost
#. Each journal items created from your Landed Cost should have Analytic Account and Analytic Costs from Additional Cost if Account on journal item and on Additional Cost is the same.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/87/13.0
.. repo_id is available in https://github.com/OCA/maintainer-tools/blob/master/tools/repos_with_ids.txt
.. branch is "8.0" for example
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 smash it by providing detailed and welcomed feedback.
Credits
=======
Images
------
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_.
Contributors
------------
* Benoit Aimont <benoit.aimont@acsone.eu>
Maintainer
----------
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
This module is maintained by the OCA.
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.
To contribute to this module, please visit https://odoo-community.org.

View file

@ -0,0 +1,18 @@
# Copyright 2020 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Stock Landed Costs Analytic",
"summary": """
This module adds an analytic account and analytic tags on landed costs
lines so that on landed costs validation account moves get analytic
account and analytic tags values from landed costs lines.""",
"version": "16.0.1.0.0",
"license": "AGPL-3",
"author": "ACSONE SA/NV,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/account-analytic",
"depends": ["stock_landed_costs"],
"data": ["views/stock_landed_cost_lines.xml"],
"installable": True,
"demo": [],
}

View file

@ -0,0 +1,89 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_landed_costs_analytic
#
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: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution
msgid "Analytic"
msgstr "Analitika"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_names
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_names
msgid "Analytic Account Names"
msgstr "Nazivi analitičkih računa"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_ids
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_ids
msgid "Analytic Accounts"
msgstr "Analitički računi"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution_search
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution_search
msgid "Analytic Distribution Search"
msgstr "Pretraga analitičkih distribucija"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_precision
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_precision
msgid "Analytic Precision"
msgstr "Preciznost analitike"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_ids
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_ids
msgid "Analytic accounts computed from analytic distribution."
msgstr "Analitički računi računati iz analitičke distribucije."
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution_import
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution_import
msgid "Analytic distribution (importable)"
msgstr "Analitička distribucija (uvozljiva)"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_names
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_names
msgid ""
"Comma-separated analytic account names, in case it is useful to be included "
"in the exported data."
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution_import
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution_import
msgid ""
"Defining this field, it will set the analytical distribution in JSON format,"
" but using the analytic accounts names as keys of the dictionary, so it "
"eases the human input."
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__manual_distribution_id
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__manual_distribution_id
msgid "Manual Distribution"
msgstr "Ručna distribucija"
#. module: stock_landed_costs_analytic
#: model:ir.model,name:stock_landed_costs_analytic.model_stock_landed_cost_lines
msgid "Stock Landed Cost Line"
msgstr "Stavka zavisnih troškova"
#. module: stock_landed_costs_analytic
#: model:ir.model,name:stock_landed_costs_analytic.model_stock_valuation_adjustment_lines
msgid "Valuation Adjustment Lines"
msgstr "Stavke ispravke vrijednosti"

View file

@ -0,0 +1,95 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_landed_costs_analytic
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-08-07 14:25+0000\n"
"Last-Translator: Miquel Romera <mromera@pmsastro.es>\n"
"Language-Team: none\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: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution
msgid "Analytic"
msgstr "Analítico"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_names
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_names
msgid "Analytic Account Names"
msgstr "Nombres de cuentas analíticas"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_ids
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_ids
msgid "Analytic Accounts"
msgstr "Cuentas analíticas"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution_search
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution_search
msgid "Analytic Distribution Search"
msgstr "Búsqueda de Distribución Analítca"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_precision
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_precision
msgid "Analytic Precision"
msgstr "Precisión Analítica"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_ids
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_ids
msgid "Analytic accounts computed from analytic distribution."
msgstr "Cuentas analíticas calculadas a partir de la distribución analítica."
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution_import
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution_import
msgid "Analytic distribution (importable)"
msgstr "Distribución analítica (importable)"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_names
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_names
msgid ""
"Comma-separated analytic account names, in case it is useful to be included "
"in the exported data."
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution_import
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution_import
msgid ""
"Defining this field, it will set the analytical distribution in JSON format, "
"but using the analytic accounts names as keys of the dictionary, so it eases "
"the human input."
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__manual_distribution_id
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__manual_distribution_id
msgid "Manual Distribution"
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model,name:stock_landed_costs_analytic.model_stock_landed_cost_lines
msgid "Stock Landed Cost Line"
msgstr "Línea Existencias de Costes de destino"
#. module: stock_landed_costs_analytic
#: model:ir.model,name:stock_landed_costs_analytic.model_stock_valuation_adjustment_lines
msgid "Valuation Adjustment Lines"
msgstr "Líneas de ajustes de valoración"
#~ msgid "Analytic Tags"
#~ msgstr "Etiquetas analíticas"

View file

@ -0,0 +1,100 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_landed_costs_analytic
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-03-06 11:53+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.10.2\n"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution
msgid "Analytic"
msgstr "Analitico"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_names
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_names
msgid "Analytic Account Names"
msgstr "Nomi conto analitico"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_ids
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_ids
msgid "Analytic Accounts"
msgstr "Conti analitici"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution_search
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution_search
msgid "Analytic Distribution Search"
msgstr "Ricerca distribuzione analitica"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_precision
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_precision
msgid "Analytic Precision"
msgstr "Precisione analitica"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_ids
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_ids
msgid "Analytic accounts computed from analytic distribution."
msgstr "Conti analitici calcolati da distribuzione analitica."
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution_import
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution_import
msgid "Analytic distribution (importable)"
msgstr "Distribuzione analitica (importabile)"
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_names
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_names
msgid ""
"Comma-separated analytic account names, in case it is useful to be included "
"in the exported data."
msgstr ""
"Nomi conti analitici separati da virgola, nel caso sia utile includerli nei "
"dati esportati."
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution_import
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution_import
msgid ""
"Defining this field, it will set the analytical distribution in JSON format, "
"but using the analytic accounts names as keys of the dictionary, so it eases "
"the human input."
msgstr ""
"Definendo questo campo, verrà impostata la distribuzione analitica in "
"formato JSON, ma utilizzando i nomi degli account analitici come chiavi del "
"dizionario, in modo da semplificare l'inserimento umano."
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__manual_distribution_id
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__manual_distribution_id
msgid "Manual Distribution"
msgstr "Distribuzione manuale"
#. module: stock_landed_costs_analytic
#: model:ir.model,name:stock_landed_costs_analytic.model_stock_landed_cost_lines
msgid "Stock Landed Cost Line"
msgstr "Riga costo sbarcato di magazzino"
#. module: stock_landed_costs_analytic
#: model:ir.model,name:stock_landed_costs_analytic.model_stock_valuation_adjustment_lines
msgid "Valuation Adjustment Lines"
msgstr "Righe correzione valutazione"
#~ msgid "Manual Distribution ID"
#~ msgstr "ID distribuzione manuale"

View file

@ -0,0 +1,89 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_landed_costs_analytic
#
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: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution
msgid "Analytic"
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_names
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_names
msgid "Analytic Account Names"
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_ids
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_ids
msgid "Analytic Accounts"
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution_search
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution_search
msgid "Analytic Distribution Search"
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_precision
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_precision
msgid "Analytic Precision"
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_ids
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_ids
msgid "Analytic accounts computed from analytic distribution."
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution_import
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution_import
msgid "Analytic distribution (importable)"
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_account_names
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_account_names
msgid ""
"Comma-separated analytic account names, in case it is useful to be included "
"in the exported data."
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_landed_cost_lines__analytic_distribution_import
#: model:ir.model.fields,help:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__analytic_distribution_import
msgid ""
"Defining this field, it will set the analytical distribution in JSON format,"
" but using the analytic accounts names as keys of the dictionary, so it "
"eases the human input."
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_landed_cost_lines__manual_distribution_id
#: model:ir.model.fields,field_description:stock_landed_costs_analytic.field_stock_valuation_adjustment_lines__manual_distribution_id
msgid "Manual Distribution"
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model,name:stock_landed_costs_analytic.model_stock_landed_cost_lines
msgid "Stock Landed Cost Line"
msgstr ""
#. module: stock_landed_costs_analytic
#: model:ir.model,name:stock_landed_costs_analytic.model_stock_valuation_adjustment_lines
msgid "Valuation Adjustment Lines"
msgstr ""

View file

@ -0,0 +1,2 @@
from . import stock_landed_cost_lines
from . import stock_valuation_adjustment_lines

View file

@ -0,0 +1,10 @@
# Copyright 2020 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import models
class StockLandedCostLines(models.Model):
_name = "stock.landed.cost.lines"
_inherit = ["stock.landed.cost.lines", "analytic.mixin"]

View file

@ -0,0 +1,25 @@
# Copyright 2020 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import models
class StockValuationAdjustmentLines(models.Model):
_name = "stock.valuation.adjustment.lines"
_inherit = ["stock.valuation.adjustment.lines", "analytic.mixin"]
def _create_account_move_line(
self, move, credit_account_id, debit_account_id, qty_out, already_out_account_id
):
res = super(StockValuationAdjustmentLines, self)._create_account_move_line(
move, credit_account_id, debit_account_id, qty_out, already_out_account_id
)
cost_line = self.cost_line_id
for line in res:
if line[2]["account_id"] == cost_line.account_id.id:
if cost_line.analytic_distribution:
line[2].update(
{"analytic_distribution": cost_line.analytic_distribution}
)
return res

View file

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

View file

@ -0,0 +1,126 @@
# Copyright 2020 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.tests.common import TransactionCase
class TestStockLandedCostsAnalytic(TransactionCase):
def setUp(self):
super(TestStockLandedCostsAnalytic, self).setUp()
self.Product = self.env["product.product"]
self.Picking = self.env["stock.picking"]
self.LandedCost = self.env["stock.landed.cost"]
self.ProductCategory = self.env["product.category"]
self.Account = self.env["account.account"]
self.analytic_distribution_1 = dict(
{str(self.env.ref("analytic.analytic_agrolait").id): 100.0}
)
self.analytic_distribution_2 = dict(
{str(self.env.ref("analytic.analytic_asustek").id): 100.0}
)
self.picking_type_in = self.env.ref("stock.picking_type_out")
self.supplier_location = self.env.ref("stock.stock_location_suppliers")
self.customer_location = self.env.ref("stock.stock_location_customers")
self.account_1 = self.Account.create(
{
"name": "Account 1 test",
"code": "Account1",
"account_type": self.env["account.account"]
.search([], limit=1)
.account_type,
"reconcile": True,
}
)
self.account_2 = self.Account.create(
{
"name": "Account 2 test",
"code": "Account2",
"account_type": self.env["account.account"]
.search([], limit=1)
.account_type,
"reconcile": True,
}
)
self.category = self.ProductCategory.create(
{
"name": "Product Category Test",
"property_cost_method": "fifo",
"property_valuation": "real_time",
}
)
self.product = self.Product.create(
{
"name": "Product Test",
"type": "product",
"standard_price": 1.0,
"categ_id": self.category.id,
}
)
self.landed_cost_product = self.Product.create(
{"name": "Landed Cost Product Test", "type": "service"}
)
picking_vals = {
"name": "Landed Cost Picking Test",
"picking_type_id": self.picking_type_in.id,
"location_id": self.supplier_location.id,
"location_dest_id": self.customer_location.id,
"move_ids": [
(
0,
0,
{
"name": "Move Test",
"product_id": self.product.id,
"product_uom_qty": 5,
"product_uom": self.ref("uom.product_uom_unit"),
"location_id": self.supplier_location.id,
"location_dest_id": self.customer_location.id,
},
)
],
}
picking_landed_cost = self.Picking.create(picking_vals)
landed_cost_vals = {
"picking_ids": [picking_landed_cost.id],
"cost_lines": [
(
0,
0,
{
"product_id": self.landed_cost_product.id,
"price_unit": 2.0,
"split_method": "equal",
"account_id": self.account_1.id,
"analytic_distribution": self.analytic_distribution_1,
},
),
(
0,
0,
{
"product_id": self.landed_cost_product.id,
"price_unit": 4.0,
"split_method": "equal",
"account_id": self.account_2.id,
"analytic_distribution": self.analytic_distribution_2,
},
),
],
}
self.landed_cost = self.LandedCost.create(landed_cost_vals)
def test_stock_landed_costs_analytic(self):
self.landed_cost.button_validate()
self.assertTrue(self.landed_cost.account_move_id)
for line in self.landed_cost.account_move_id.line_ids:
if line.account_id == self.account_1:
self.assertEqual(
line.analytic_distribution, self.analytic_distribution_1
)
if line.account_id == self.account_2:
self.assertEqual(
line.analytic_distribution, self.analytic_distribution_2
)

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2020 ACSONE SA/NV
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="stock_landed_cost_form_view">
<field
name="name"
>stock.landed.cost.form (in stock_landed_costs_analytic)</field>
<field name="model">stock.landed.cost</field>
<field name="inherit_id" ref="stock_landed_costs.view_stock_landed_cost_form" />
<field name="arch" type="xml">
<xpath
expr="//field[@name='cost_lines']/tree/field[@name='account_id']"
position="after"
>
<field
name="analytic_distribution"
widget="analytic_distribution"
groups="analytic.group_analytic_accounting"
optional="show"
/>
</xpath>
</field>
</record>
</odoo>