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 @@
# POS Analytic Config
Odoo addon: pos_analytic_by_config
## Installation
```bash
pip install odoo-bringout-oca-account-analytic-pos_analytic_by_config
```
## Dependencies
This addon depends on:
- point_of_sale
## Manifest Information
- **Name**: POS Analytic Config
- **Version**: 16.0.1.0.1
- **Category**: Point Of Sale, Accounting
- **License**: AGPL-3
- **Installable**: False
## Source
Based on [OCA/account-analytic](https://github.com/OCA/account-analytic) branch 16.0, addon `pos_analytic_by_config`.
## 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 Pos_analytic_by_config Module - pos_analytic_by_config
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 pos_analytic_by_config. 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:
- [point_of_sale](../../odoo-bringout-oca-ocb-point_of_sale)

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,111 @@
===================
POS Analytic Config
===================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:9a003284bfdc74634e66a02c81a79c97307bdf5386bfb13df93fa2604ba76c0a
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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/pos_analytic_by_config
: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-pos_analytic_by_config
: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 allows to generate analytic distributions from the PoS orders.
**Table of contents**
.. contents::
:local:
Configuration
=============
To configure the analytic distributions by store:
#. Go to *Invoicing > Configuration > Analytic Distribution Models*
#. We'll create one for every pos config.
#. Select an account prefix (Normally your incoming account prefix)
#. Select a PoS config (unhide it from the optionl fields).
#. Choose your desired distribution for that store.
Usage
=====
When you reconcile your sessions, the analytic distribution should go as expected for
your point of sale.
Known issues / Roadmap
======================
* Add ``account_analytic_id`` in ``pos.order`` so we can use it in reports.
* In ``13.0`` the session reconciliation has been refactored and thus the journal
items are now very simplified. There's no product detail now, so we won't
be able to analyze that level of detail anymore. For invoices it remains as it
was.
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:%20pos_analytic_by_config%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
~~~~~~~
* ACSONE SA/NV
* Tecnativa
Contributors
~~~~~~~~~~~~
* `ACSONE SA/NV <https://www.acsone.eu>`_
* Adrien Peiffer <adrien.peiffer@acsone.eu>
* Cédric Pigeon <cedric.pigeon@acsone.eu>
* Xavier Bouquiaux <xavier.bouquiaux@acsone.eu>
* `Tecnativa <https://www.tecnativa.com>`_
* David Vidal
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/pos_analytic_by_config>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View file

@ -0,0 +1,16 @@
# Copyright 2015 ACSONE SA/NV
# Copyright 2020 Tecnativa - David Vidal
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
"name": "POS Analytic Config",
"summary": "Use analytic account defined on POS configuration for POS orders",
"author": "ACSONE SA/NV, Tecnativa, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/account-analytic",
"category": "Point Of Sale, Accounting",
"version": "16.0.1.0.1",
"license": "AGPL-3",
"depends": ["point_of_sale"],
"data": [
"views/account_analytic_distribution_model_views.xml",
],
}

View file

@ -0,0 +1,67 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-02-14 17:23+0000\n"
"Last-Translator: Rachid Al Assir <rachidalassir@gmail.com>\n"
"Language-Team: none\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 4.14.1\n"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr "أوامر نقطة البيع"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr "جلسة نقطة البيع"
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Select a Point of Sale for which the analytic distribution will be used"
msgstr ""
#~ msgid "Analytic Account"
#~ msgstr "الحساب التحليلي"
#~ msgid "Analytic Account for this config."
#~ msgstr "حساب تحليلي لهذا التكوين."
#~ msgid "Analytic Account that these orders link to"
#~ msgstr "الحساب التحليلي الذي ترتبط به هذه الطلبات"
#~ msgid "Journal Item"
#~ msgstr "عنصر اليومية"
#~ msgid "Point of Sale Configuration"
#~ msgstr "إعدادات نقطة البيع"
#~ msgid "Display Name"
#~ msgstr "الاسم المعروض"
#~ msgid "ID"
#~ msgstr "المُعرف"
#~ msgid "Last Modified on"
#~ msgstr "آخر تعديل في"

View file

@ -0,0 +1,40 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
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: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr "Model analitičke distribucije"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr "Narudžbe POS-a"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr "Sesija POS-a"
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr "POS Postavke"
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid ""
"Select a Point of Sale for which the analytic distribution will be used"
msgstr ""

View file

@ -0,0 +1,60 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
# Translators:
# Carles Antoli <carlesantoli@hotmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-01-13 23:06+0000\n"
"PO-Revision-Date: 2024-09-11 16:05+0000\n"
"Last-Translator: Jaume Planas <jaumeplan@gmail.com>\n"
"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\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: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr "Model de distribució analítica"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr "Comandes al punt de venda"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr "Sessió del punt de venda"
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr "Config TPV"
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Select a Point of Sale for which the analytic distribution will be used"
msgstr "Seleccioneu el Punt de venda on s'utilitzarà la distribució analítica"
#~ msgid "Analytic Account"
#~ msgstr "Compte analític"
#~ msgid "Analytic Account for this config."
#~ msgstr "Compte analític per a aquesta configuració."
#~ msgid "Analytic Account that these orders link to"
#~ msgstr "Compte analític al qual enllacen aquestes comandes"
#~ msgid "Point of Sale Configuration"
#~ msgstr "Configuració del punt de venda"
#~ msgid "Invoice Line"
#~ msgstr "Línia de factura"

View file

@ -0,0 +1,47 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
# Translators:
# Rudolf Schnapka <rs@techno-flex.de>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-01-20 23:05+0000\n"
"PO-Revision-Date: 2017-01-20 23:05+0000\n"
"Last-Translator: Rudolf Schnapka <rs@techno-flex.de>, 2017\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
"Language: de\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"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Select a Point of Sale for which the analytic distribution will be used"
msgstr ""
#~ msgid "Analytic Account"
#~ msgstr "Kostenstelle"

View file

@ -0,0 +1,48 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
# Translators:
# Kostas Goutoudis <goutoudis@gmail.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-09-30 22:27+0000\n"
"PO-Revision-Date: 2016-09-30 22:27+0000\n"
"Last-Translator: Kostas Goutoudis <goutoudis@gmail.com>, 2016\n"
"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/"
"el_GR/)\n"
"Language: el_GR\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"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Select a Point of Sale for which the analytic distribution will be used"
msgstr ""
#~ msgid "Analytic Account"
#~ msgstr "Αναλυτικός Λογαριασμός"

View file

@ -0,0 +1,65 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-08-15 17:04+0000\n"
"PO-Revision-Date: 2024-03-18 00:59+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr "Modelo Analítico de Distribución"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr "Pedidos en el punto de venta"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr "Sesión del Puto de Venta"
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr "Configuración de posición"
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Select a Point of Sale for which the analytic distribution will be used"
msgstr ""
"Seleccione un punto de venta para el que se utilizará la distribución "
"analítica"
#~ msgid "Analytic Account"
#~ msgstr "Cuenta analítica"
#~ msgid "Analytic Account for this config."
#~ msgstr "Cuenta analítica para esta configuración."
#~ msgid "Analytic Account that these orders link to"
#~ msgstr "Cuenta analítica relacionada con estos pedidos"
#~ msgid "Journal Item"
#~ msgstr "Artículo Diario"
#~ msgid "Point of Sale Configuration"
#~ msgstr "Configuración del Punto de Venta"
#~ msgid "Invoice Line"
#~ msgstr "Línea de Factura"

View file

@ -0,0 +1,48 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
# Translators:
# Juan González <bifomania@protonmail.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-12-03 13:34+0000\n"
"PO-Revision-Date: 2016-12-03 13:34+0000\n"
"Last-Translator: Juan González <bifomania@protonmail.com>, 2016\n"
"Language-Team: Spanish (Mexico) (https://www.transifex.com/oca/teams/23907/"
"es_MX/)\n"
"Language: es_MX\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"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Select a Point of Sale for which the analytic distribution will be used"
msgstr ""
#~ msgid "Analytic Account"
#~ msgstr "Cuenta analítica"

View file

@ -0,0 +1,47 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-06 02:55+0000\n"
"PO-Revision-Date: 2017-04-06 02:55+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n"
"Language: fi\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"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Select a Point of Sale for which the analytic distribution will be used"
msgstr ""
#~ msgid "Analytic Account"
#~ msgstr "Analyyttinen tili"

View file

@ -0,0 +1,48 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2016
# Zwygart <zwygart@gmail.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-09-30 22:27+0000\n"
"PO-Revision-Date: 2016-09-30 22:27+0000\n"
"Last-Translator: Zwygart <zwygart@gmail.com>, 2016\n"
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
"Language: fr\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"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Select a Point of Sale for which the analytic distribution will be used"
msgstr ""
#~ msgid "Analytic Account"
#~ msgstr "Compte analytique"

View file

@ -0,0 +1,45 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-03-04 10:36+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 4.17\n"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr "Modello distribuzione analitica"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr "Ordini punto vendita"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr "Sessione punto vendita"
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr "Configurazione POS"
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid ""
"Select a Point of Sale for which the analytic distribution will be used"
msgstr ""
"Selezionare un Punto vendita per il quale verrà usata la distribuzione "
"analitica"

View file

@ -0,0 +1,40 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
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: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid ""
"Select a Point of Sale for which the analytic distribution will be used"
msgstr ""

View file

@ -0,0 +1,63 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-06 02:55+0000\n"
"PO-Revision-Date: 2024-05-22 15:37+0000\n"
"Last-Translator: Rodrigo Macedo <sottomaiormacedotec@users.noreply."
"translation.odoo-community.org>\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/"
"23907/pt_BR/)\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 4.17\n"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr "Modelo de distribuição analítica"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr "Pedido do Ponto de Venda"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr "Sessão de Ponto de Venda"
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr "Config PDV"
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Select a Point of Sale for which the analytic distribution will be used"
msgstr ""
"Selecione um ponto de venda para o qual a distribuição analítica será usada"
#~ msgid "Analytic Account"
#~ msgstr "Conta analítica"
#~ msgid "Analytic Account for this config."
#~ msgstr "Conta Analítica para essa config."
#~ msgid "Analytic Account that these orders link to"
#~ msgstr "Conta analítica que essas ordem estão vinculadas"
#~ msgid "Point of Sale Configuration"
#~ msgstr "Configuração do Ponto de Venda"
#~ msgid "Invoice Line"
#~ msgstr "Linha da Fatura"

View file

@ -0,0 +1,48 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-06 02:55+0000\n"
"PO-Revision-Date: 2017-04-06 02:55+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Slovak (Slovakia) (https://www.transifex.com/oca/teams/23907/"
"sk_SK/)\n"
"Language: sk_SK\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Select a Point of Sale for which the analytic distribution will be used"
msgstr ""
#~ msgid "Analytic Account"
#~ msgstr "Analytický účet"

View file

@ -0,0 +1,48 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
# Translators:
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-07-30 09:13+0000\n"
"PO-Revision-Date: 2016-07-30 09:13+0000\n"
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>, 2016\n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Select a Point of Sale for which the analytic distribution will be used"
msgstr ""
#~ msgid "Analytic Account"
#~ msgstr "Analitični konto"

View file

@ -0,0 +1,49 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_analytic_by_config
#
# Translators:
# ITGeeker <alanljj@qq.com>, 2017
# liAnGjiA <liangjia@qq.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-04-06 02:55+0000\n"
"PO-Revision-Date: 2017-04-06 02:55+0000\n"
"Last-Translator: liAnGjiA <liangjia@qq.com>, 2017\n"
"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/"
"zh_CN/)\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_account_analytic_distribution_model
msgid "Analytic Distribution Model"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_order
msgid "Point of Sale Orders"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model,name:pos_analytic_by_config.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,field_description:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Pos Config"
msgstr ""
#. module: pos_analytic_by_config
#: model:ir.model.fields,help:pos_analytic_by_config.field_account_analytic_distribution_model__pos_config_id
msgid "Select a Point of Sale for which the analytic distribution will be used"
msgstr ""
#~ msgid "Analytic Account"
#~ msgstr "核算科目"

View file

@ -0,0 +1,53 @@
# Copyright 2024 Tecnativa - David Vidal
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from openupgradelib import openupgrade
@openupgrade.migrate()
def migrate(env, version):
"""
For every company:
- Check if there are analytic accounts configured in that company's pos configs
- If so, create a new analytic plan (Stores)
- Assign that analytic plan to the pos configs analytic accounts
- Create a miscellaneous applicability rule that is mandatory
- Create an analytic distribution model for each pos_config / analytic account
"""
env.cr.execute(
"""
SELECT id, account_analytic_id FROM pos_config
WHERE account_analytic_id IS NOT NULL
"""
)
pos_configs_dict = {
env["pos.config"].browse(id): env["account.analytic.account"].browse(aa_id)
for id, aa_id, *_ in env.cr.fetchall()
}
pos_configs = env["pos.config"].browse([pc.id for pc in pos_configs_dict.keys()])
for company in pos_configs.company_id:
company_configs = pos_configs.filtered(lambda x: x.company_id == company)
analytic_plan = env["account.analytic.plan"].create(
{
"name": "Stores",
"default_applicability": "optional",
"company_id": company.id,
}
)
env["account.analytic.applicability"].create(
{
"business_domain": "general",
"analytic_plan_id": analytic_plan.id,
"applicability": "mandatory",
}
)
for config in company_configs:
analytic_account = pos_configs_dict[config]
analytic_account.plan_id = analytic_plan.id
env["account.analytic.distribution.model"].create(
{
"account_prefix": "",
"pos_config_id": config.id,
"analytic_distribution": {analytic_account.id: 100},
"company_id": company.id,
}
)

View file

@ -0,0 +1,3 @@
from . import analytic_distribution_model
from . import pos_order
from . import pos_session

View file

@ -0,0 +1,20 @@
# Copyright 2020 Tecnativa - David Vidal
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
class AccountAnalyticDistributionModel(models.Model):
_inherit = "account.analytic.distribution.model"
pos_config_id = fields.Many2one(
comodel_name="pos.config",
ondelete="cascade",
help="Select a Point of Sale for which the analytic distribution will be used",
)
def _get_distribution(self, vals):
pos_config_id = self.env.context.get("pos_config_id")
if pos_config_id:
vals["pos_config_id"] = pos_config_id
res = super()._get_distribution(vals)
return res

View file

@ -0,0 +1,12 @@
# Copyright 2015 ACSONE SA/NV
# Copyright 2020 Tecnativa - David Vidal
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import models
class PosOrder(models.Model):
_inherit = "pos.order"
def _generate_pos_order_invoice(self):
self = self.with_context(pos_config_id=self.config_id.id)
return super(PosOrder, self)._generate_pos_order_invoice()

View file

@ -0,0 +1,21 @@
# Copyright 2021 Tecnativa - David Vidal
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import models
class PosSession(models.Model):
_inherit = "pos.session"
def _validate_session(
self,
balancing_account=False,
amount_to_balance=0,
bank_payment_method_diffs=None,
):
return super(
PosSession, self.with_context(pos_config_id=self.config_id.id)
)._validate_session(
balancing_account=balancing_account,
amount_to_balance=amount_to_balance,
bank_payment_method_diffs=bank_payment_method_diffs,
)

View file

@ -0,0 +1,7 @@
To configure the analytic distributions by store:
#. Go to *Invoicing > Configuration > Analytic Distribution Models*
#. We'll create one for every pos config.
#. Select an account prefix (Normally your incoming account prefix)
#. Select a PoS config (unhide it from the optionl fields).
#. Choose your desired distribution for that store.

View file

@ -0,0 +1,9 @@
* `ACSONE SA/NV <https://www.acsone.eu>`_
* Adrien Peiffer <adrien.peiffer@acsone.eu>
* Cédric Pigeon <cedric.pigeon@acsone.eu>
* Xavier Bouquiaux <xavier.bouquiaux@acsone.eu>
* `Tecnativa <https://www.tecnativa.com>`_
* David Vidal

View file

@ -0,0 +1 @@
This module allows to generate analytic distributions from the PoS orders.

View file

@ -0,0 +1,5 @@
* Add ``account_analytic_id`` in ``pos.order`` so we can use it in reports.
* In ``13.0`` the session reconciliation has been refactored and thus the journal
items are now very simplified. There's no product detail now, so we won't
be able to analyze that level of detail anymore. For invoices it remains as it
was.

View file

@ -0,0 +1,2 @@
When you reconcile your sessions, the analytic distribution should go as expected for
your point of sale.

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View file

@ -0,0 +1,462 @@
<!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>POS Analytic Config</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="pos-analytic-config">
<h1 class="title">POS Analytic Config</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:9a003284bfdc74634e66a02c81a79c97307bdf5386bfb13df93fa2604ba76c0a
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<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/pos_analytic_by_config"><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-pos_analytic_by_config"><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 allows to generate analytic distributions from the PoS orders.</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="#usage" id="toc-entry-2">Usage</a></li>
<li><a class="reference internal" href="#known-issues-roadmap" id="toc-entry-3">Known issues / Roadmap</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-4">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-5">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-6">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-7">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-8">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>To configure the analytic distributions by store:</p>
<ol class="arabic simple">
<li>Go to <em>Invoicing &gt; Configuration &gt; Analytic Distribution Models</em></li>
<li>Well create one for every pos config.</li>
<li>Select an account prefix (Normally your incoming account prefix)</li>
<li>Select a PoS config (unhide it from the optionl fields).</li>
<li>Choose your desired distribution for that store.</li>
</ol>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#toc-entry-2">Usage</a></h1>
<p>When you reconcile your sessions, the analytic distribution should go as expected for
your point of sale.</p>
</div>
<div class="section" id="known-issues-roadmap">
<h1><a class="toc-backref" href="#toc-entry-3">Known issues / Roadmap</a></h1>
<ul class="simple">
<li>Add <tt class="docutils literal">account_analytic_id</tt> in <tt class="docutils literal">pos.order</tt> so we can use it in reports.</li>
<li>In <tt class="docutils literal">13.0</tt> the session reconciliation has been refactored and thus the journal
items are now very simplified. Theres no product detail now, so we wont
be able to analyze that level of detail anymore. For invoices it remains as it
was.</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-4">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:%20pos_analytic_by_config%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-5">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-6">Authors</a></h2>
<ul class="simple">
<li>ACSONE SA/NV</li>
<li>Tecnativa</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-7">Contributors</a></h2>
<ul class="simple">
<li><a class="reference external" href="https://www.acsone.eu">ACSONE SA/NV</a><ul>
<li>Adrien Peiffer &lt;<a class="reference external" href="mailto:adrien.peiffer&#64;acsone.eu">adrien.peiffer&#64;acsone.eu</a>&gt;</li>
<li>Cédric Pigeon &lt;<a class="reference external" href="mailto:cedric.pigeon&#64;acsone.eu">cedric.pigeon&#64;acsone.eu</a>&gt;</li>
<li>Xavier Bouquiaux &lt;<a class="reference external" href="mailto:xavier.bouquiaux&#64;acsone.eu">xavier.bouquiaux&#64;acsone.eu</a>&gt;</li>
</ul>
</li>
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a><ul>
<li>David Vidal</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-8">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/pos_analytic_by_config">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_pos_analytic_by_config

View file

@ -0,0 +1,76 @@
# Copyright 2015 ACSONE SA/NV
# Copyright 2024 Tecnativa - David Vidal
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo.tests import tagged
from odoo.addons.point_of_sale.tests.common import TestPointOfSaleCommon, TestPoSCommon
@tagged("post_install", "-at_install")
class TestPosAnalyticConfig(TestPointOfSaleCommon, TestPoSCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.env.user.groups_id += cls.env.ref("analytic.group_analytic_accounting")
cls.analytic_plan = cls.env["account.analytic.plan"].create({"name": "Stores"})
cls.env["account.analytic.applicability"].create(
{
"business_domain": "general",
"analytic_plan_id": cls.analytic_plan.id,
"applicability": "mandatory",
}
)
cls.analytic_account = cls.env["account.analytic.account"].create(
{
"name": "Test Analytic Account",
"plan_id": cls.analytic_plan.id,
}
)
cls.env["account.analytic.distribution.model"].create(
{
"account_prefix": "",
"pos_config_id": cls.basic_config.id,
"analytic_distribution": {cls.analytic_account.id: 100},
}
)
cls.config = cls.basic_config
cls.session = cls.open_new_session(cls)
def _create_order(self):
order_data = self.create_ui_order_data([(self.product_a, 1)])
order = self.env["pos.order"].create_from_ui([order_data])
self.pos_order = self.env["pos.order"].browse(order[0]["id"])
def _close_session(self, amount_paid):
self.session.post_closing_cash_details(amount_paid)
self.session.close_session_from_ui()
def test_order_simple_receipt(self):
"""Simple tickets are grouped by account in single move lines"""
self._create_order()
aml_domain = [
("account_id", "=", self.sales_account.id),
("analytic_distribution", "=", {f"{self.analytic_account.id}": 100.0}),
]
# There aren't lines with the analytic account yet
self.assertFalse(self.env["account.move.line"].search(aml_domain))
self._close_session(self.pos_order.amount_total)
# There they are
self.assertEqual(len(self.env["account.move.line"].search(aml_domain)), 1)
def test_order_invoice(self):
"""Tickets with invoice are posted prior to session reconcilation"""
self._create_order()
self.pos_order.partner_id = self.partner_a
aml_domain = [
("account_id", "=", self.sales_account.id),
("product_id", "=", self.product_a.id),
("analytic_distribution", "=", {f"{self.analytic_account.id}": 100.0}),
]
lines = self.env["account.move.line"].search(aml_domain)
# There aren't lines with the analytic account yet
self.assertEqual(len(lines), 0)
self.pos_order.action_pos_order_invoice()
lines = self.env["account.move.line"].search(aml_domain)
# There they are
self.assertEqual(len(lines), 1)

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="account_analytic_distribution_model_tree_view" model="ir.ui.view">
<field name="model">account.analytic.distribution.model</field>
<field
name="inherit_id"
ref="analytic.account_analytic_distribution_model_tree_view"
/>
<field name="arch" type="xml">
<xpath expr="//field[@name='company_id']" position="before">
<field name="pos_config_id" optional="hide" />
</xpath>
</field>
</record>
</odoo>

View file

@ -0,0 +1,42 @@
[project]
name = "odoo-bringout-oca-account-analytic-pos_analytic_by_config"
version = "16.0.0"
description = "POS Analytic Config - Use analytic account defined on POS configuration for POS orders"
authors = [
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
]
dependencies = [
"odoo-bringout-oca-ocb-point_of_sale>=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 = ["pos_analytic_by_config"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]