Move all OCA POS modules from oca-technical to dedicated oca-pos submodule

Reorganized 74 POS-related modules for better structure:
- Moved all odoo-bringout-oca-pos-* packages from packages/oca-technical/
- Now organized in dedicated packages/oca-pos/ submodule
- Includes payment, receipt, loyalty, order, product, and partner modules
- Maintains all module functionality while improving project organization

This creates a cleaner separation between general technical modules
and Point of Sale specific functionality.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Ernad Husremovic 2025-08-30 17:16:23 +02:00
parent 53fd71d6de
commit 18d182f3a8
2749 changed files with 0 additions and 97706 deletions

View file

@ -1,46 +0,0 @@
# Point of Sale - Extra Access Right
Odoo addon: pos_access_right
## Installation
```bash
pip install odoo-bringout-oca-pos-pos_access_right
```
## Dependencies
This addon depends on:
- point_of_sale
## Manifest Information
- **Name**: Point of Sale - Extra Access Right
- **Version**: 16.0.1.0.2
- **Category**: Point Of Sale
- **License**: AGPL-3
- **Installable**: True
## Source
Based on [OCA/pos](https://github.com/OCA/pos) branch 16.0, addon `pos_access_right`.
## 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
- Reports: doc/REPORTS.md
- Security: doc/SECURITY.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

@ -1,32 +0,0 @@
# 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_access_right Module - pos_access_right
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

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

View file

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

View file

@ -1,5 +0,0 @@
# Dependencies
This addon depends on:
- [point_of_sale](https://github.com/bringout/oca-ocb-sale/tree/681dc8d5fff638cb0862a34e48091a2098d091f8/odoo-bringout-oca-ocb-point_of_sale)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,64 +0,0 @@
# Security
Access control and security definitions in pos_access_right.
## Access Control Lists (ACLs)
Model access permissions defined in:
- **[bosnian_translations.json](../bosnian_translations.json)**
- 50 model access rules
- **[bosnian_translations_output.json](../bosnian_translations_output.json)**
- 444 model access rules
- **[CHANGELOG.md](../CHANGELOG.md)**
- 132 model access rules
- **[doc](../doc)**
- **[docker](../docker)**
- **[input](../input)**
- **[nix](../nix)**
- **[odoo.conf](../odoo.conf)**
- 58 model access rules
- **[odoo_packages_bez_l10n.txt](../odoo_packages_bez_l10n.txt)**
- 1947 model access rules
- **[odoo_packages_bringout.txt](../odoo_packages_bringout.txt)**
- 1947 model access rules
- **[odoo_packages.txt](../odoo_packages.txt)**
- 2085 model access rules
- **[output](../output)**
- **[packages](../packages)**
- **[README.md](../README.md)**
- 338 model access rules
- **[scripts](../scripts)**
- **[temp](../temp)**
- **[TRANSLATION_BS_SUMMARY.md](../TRANSLATION_BS_SUMMARY.md)**
- 146 model access rules
## Record Rules
Row-level security rules defined in:
## Security Groups & Configuration
Security groups and permissions defined in:
- **[res_groups.xml](../pos_access_right/security/res_groups.xml)**
- 6 security groups defined
```mermaid
graph TB
subgraph "Security Layers"
A[Users] --> B[Groups]
B --> C[Access Control Lists]
C --> D[Models]
B --> E[Record Rules]
E --> F[Individual Records]
end
```
Security files overview:
- **[res_groups.xml](../pos_access_right/security/res_groups.xml)**
- Security groups, categories, and XML-based rules
Notes
- Access Control Lists define which groups can access which models
- Record Rules provide row-level security (filter records by user/group)
- Security groups organize users and define permission sets
- All security is enforced at the ORM level by Odoo

View file

@ -1,5 +0,0 @@
# 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

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

View file

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

View file

@ -1,97 +0,0 @@
==================================
Point of Sale - Extra Access Right
==================================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:f9d72317bd441d8202db6646343a16fb9a7ee345631646475870fcbddc492e4a
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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%2Fpos-lightgray.png?logo=github
:target: https://github.com/OCA/pos/tree/16.0/pos_access_right
:alt: OCA/pos
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/pos-16-0/pos-16-0-pos_access_right
: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/pos&target_branch=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
This module extends Odoo Point Of Sale features, restricting possibility to cashier to make some actions in the Point of Sale. This module will add the following groups to Odoo:
* **PoS - Negative Quantity**: The cashier can sell negative quantity in Point Of Sale (ie, can return products);
* **PoS - Discount**: The cashier can set Discount in Point Of Sale;
* **PoS - Change Unit Price**: The cashier can change the unit price of a product in Point Of Sale;
* **PoS - Many Orders**: The cashier can many orders at the same time;
* **PoS - Delete Order**: The cashier can not delete a full order;
**Table of contents**
.. contents::
:local:
Configuration
=============
Once installed, you have to give correct access right to your cashiers.
Usage
=====
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/184/9.0
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/pos/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/pos/issues/new?body=module:%20pos_access_right%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
~~~~~~~
* La Louve
* GRAP
Contributors
~~~~~~~~~~~~
* Sylvain LE GAL <https://twitter.com/legalsylvain>
* Ammmar Officewala <https://twitter.com/AmmarOfficewala>
* Helly kapatel <helly.kapatel@initos.com>
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/pos <https://github.com/OCA/pos/tree/16.0/pos_access_right>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View file

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

View file

@ -1,29 +0,0 @@
# Copyright (C) 2016-Today: La Louve (<http://www.lalouve.net/>)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
"name": "Point of Sale - Extra Access Right",
"version": "16.0.1.0.2",
"category": "Point Of Sale",
"summary": "Point of Sale - Extra Access Right for certain actions",
"author": "La Louve, GRAP, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/pos",
"license": "AGPL-3",
"depends": ["point_of_sale"],
"demo": ["demo/res_groups.xml"],
"data": [
"security/res_groups.xml",
],
"assets": {
"point_of_sale.assets": [
"pos_access_right/static/src/css/*",
"pos_access_right/static/src/js/*.js",
"pos_access_right/static/src/xml/*.xml",
]
},
"qweb": [
"static/src/xml/*.xml",
],
"installable": True,
}

View file

@ -1,51 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (C) 2016-Today: La Louve (<http://www.lalouve.net/>)
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>
<record id="group_negative_qty" model="res.groups">
<field
name="users"
eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"
/>
</record>
<record id="group_discount" model="res.groups">
<field
name="users"
eval="[(4, ref('base.user_root')), (4, ref('base.user_admin')), (4, ref('base.user_demo'))]"
/>
</record>
<record id="group_change_unit_price" model="res.groups">
<field
name="users"
eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"
/>
</record>
<record id="group_multi_order" model="res.groups">
<field
name="users"
eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"
/>
</record>
<record id="group_delete_order" model="res.groups">
<field
name="users"
eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"
/>
</record>
<record id="group_payment" model="res.groups">
<field
name="users"
eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"
/>
</record>
</odoo>

View file

@ -1,146 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_access_right
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2019-10-21 18:32+0000\n"
"Last-Translator: Osoul <baruni@osoul.ly>\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 3.8\n"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_discount_id
msgid "Point of Sale - Allow Discount"
msgstr "نقاط البيع - السماح بالتخفيض"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_negative_qty_id
msgid "Point of Sale - Allow Negative Quantity"
msgstr "نقاط البيع - السماح بالكمية بالسالب"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_change_unit_price_id
msgid "Point of Sale - Allow Unit Price Change"
msgstr "نقاط البيع - السماح بتغير سعر البيع"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_delete_order_id
#: model:res.groups,name:pos_access_right.group_delete_order
msgid "Point of Sale - Delete Order"
msgstr "نقاط البيع - السماح بحذف أمر مبيعات"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_discount
msgid "Point of Sale - Discount"
msgstr "نقاط البيع - التخفيض"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_multi_order_id
#: model:res.groups,name:pos_access_right.group_multi_order
msgid "Point of Sale - Many Orders"
msgstr "نقاط البيع - تعدد أوامر المبيعات"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_negative_qty
msgid "Point of Sale - Negative Quantity"
msgstr "نقاط البيع - الكمية بالسالب"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_payment_id
#: model:res.groups,name:pos_access_right.group_payment
msgid "Point of Sale - Payment"
msgstr "نقاط البيع - الدفع"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_change_unit_price
msgid "Point of Sale - Unit Price Change"
msgstr "نقاط البيع - تغيير سعر البيع"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_config
msgid "Point of Sale Configuration"
msgstr "إعدادات نقاط البيع"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_discount_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Discount' Group to "
"the Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_negative_qty_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Negative Quantity' "
"Group to the Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_change_unit_price_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Unit Price Change' "
"Group to the Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_delete_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Delete Order' Group to the "
"Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_multi_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Many Orders Group to the "
"Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_payment_id
msgid ""
"This field is there to pass the id of the 'PoS - Payment' Group to the Point "
"of Sale Frontend."
msgstr ""
#, python-format
#~ msgid "Change Unit Price - Unauthorized function"
#~ msgstr "تغيير سعر البيع - ليس لديك صلاحية"
#, python-format
#~ msgid "Delete Order - Unauthorized function"
#~ msgstr "حذف أمر مبيعات - ليس لديك صلاحية"
#, python-format
#~ msgid "Discount - Unauthorized function"
#~ msgstr "تخفيض - ليس لديك صلاحية"
#, python-format
#~ msgid "Many Orders - Unauthorized function"
#~ msgstr "تعدد أوامر مبيعات - ليس لديك صلاحية"
#, python-format
#~ msgid "Negative Quantity - Unauthorized function"
#~ msgstr "كمية بالسالب - ليس لديك صلاحية"
#, python-format
#~ msgid "Payment - Unauthorized function"
#~ msgstr "الدفع - ليس لديك صلاحية"
#, python-format
#~ msgid "Please ask your manager to do it."
#~ msgstr "قم بطلب مساعدة من المشرف."

View file

@ -1,114 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_access_right
#
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_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_discount_id
msgid "Point of Sale - Allow Discount"
msgstr "Prodajno mjesto - Dozvoli popust"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_negative_qty_id
msgid "Point of Sale - Allow Negative Quantity"
msgstr "Prodajno mjesto - Dozvoli negativnu količinu"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_change_unit_price_id
msgid "Point of Sale - Allow Unit Price Change"
msgstr "Prodajno mjesto - Dozvoli promjenu jedinične cijene"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_delete_order_id
#: model:res.groups,name:pos_access_right.group_delete_order
msgid "Point of Sale - Delete Order"
msgstr "Prodajno mjesto - Obriši narudžbu"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_discount
msgid "Point of Sale - Discount"
msgstr "Prodajno mjesto - Popust"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_multi_order_id
#: model:res.groups,name:pos_access_right.group_multi_order
msgid "Point of Sale - Many Orders"
msgstr "Prodajno mjesto - Više narudžbi"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_negative_qty
msgid "Point of Sale - Negative Quantity"
msgstr "Prodajno mjesto - Negativna količina"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_payment_id
#: model:res.groups,name:pos_access_right.group_payment
msgid "Point of Sale - Payment"
msgstr "Prodajno mjesto - Plaćanje"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_change_unit_price
msgid "Point of Sale - Unit Price Change"
msgstr "Prodajno mjesto - Promjena jedinične cijene"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_config
msgid "Point of Sale Configuration"
msgstr "Postavke prodajnog mjesta"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_session
msgid "Point of Sale Session"
msgstr "Sesija POS-a"
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_discount_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Discount' Group to "
"the Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_negative_qty_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Negative Quantity' "
"Group to the Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_change_unit_price_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Unit Price Change' "
"Group to the Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_delete_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Delete Order' Group to the "
"Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_multi_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Many Orders Group to the "
"Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_payment_id
msgid ""
"This field is there to pass the id of the 'PoS - Payment' Group to the Point"
" of Sale Frontend."
msgstr ""

View file

@ -1,163 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_access_right
#
# Translators:
# Marc Tormo i Bochaca <mtbochaca@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-28 05:50+0000\n"
"PO-Revision-Date: 2022-03-23 12:17+0000\n"
"Last-Translator: Noel estudillo <noelestudilloviera@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 4.3.2\n"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_discount_id
msgid "Point of Sale - Allow Discount"
msgstr "Punt de Venda - Permetre Descomptes"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_negative_qty_id
msgid "Point of Sale - Allow Negative Quantity"
msgstr "Punt de Venda - Permetre quantitats negatives"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_change_unit_price_id
msgid "Point of Sale - Allow Unit Price Change"
msgstr "Punt de Venda - Permetre canviar el preu de venda"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_delete_order_id
#: model:res.groups,name:pos_access_right.group_delete_order
msgid "Point of Sale - Delete Order"
msgstr "Punt de Venda - Esborrar comandes"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_discount
msgid "Point of Sale - Discount"
msgstr "Punt de Venda - Descomptes"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_multi_order_id
#: model:res.groups,name:pos_access_right.group_multi_order
msgid "Point of Sale - Many Orders"
msgstr "Punt de Venda - Múltiples Comandes"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_negative_qty
msgid "Point of Sale - Negative Quantity"
msgstr "Punt de Venda - Quantitats negatives"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_payment_id
#: model:res.groups,name:pos_access_right.group_payment
msgid "Point of Sale - Payment"
msgstr "Punt de Venda - Descomptes"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_change_unit_price
msgid "Point of Sale - Unit Price Change"
msgstr "Punt de Venda - Canviar preu unitari"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_config
msgid "Point of Sale Configuration"
msgstr "Punt de Venda - Descomptes"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_discount_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Discount' Group to "
"the Point of Sale Frontend."
msgstr ""
"Aquest camp està aquí per passar el ID del grup 'TPV - Permetre Descomptes' "
"cap a la pantalla del Punt de Venda."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_negative_qty_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Negative Quantity' "
"Group to the Point of Sale Frontend."
msgstr ""
"Aquest camp està aquí per passar el ID del grup 'TPV - Permetre Quantitats "
"Negatives' cap a la pantalla del Punt de Venda."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_change_unit_price_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Unit Price Change' "
"Group to the Point of Sale Frontend."
msgstr ""
"Aquest camp està aquí per passar el ID del grup 'TPV - Canviar Preu Unitari' "
"cap a la pantalla del Punt de Venda."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_delete_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Delete Order' Group to the "
"Point of Sale Frontend."
msgstr ""
"Aquest camp està aquí per passar el ID del grup 'TPV - Esborrar Comanda' cap "
"a la pantalla del Punt de Venda."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_multi_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Many Orders Group to the "
"Point of Sale Frontend."
msgstr ""
"Aquest camp està aquí per passar el ID del grup 'TPV - Múltiples Comandes' "
"cap a la pantalla del Punt de Venda."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_payment_id
msgid ""
"This field is there to pass the id of the 'PoS - Payment' Group to the Point "
"of Sale Frontend."
msgstr ""
"Aquest camp està allà per passar l'identificador del grup \"PoS - Pagament\" "
"al Frontend del punt de venda."
#, python-format
#~ msgid "Change Unit Price - Unauthorized function"
#~ msgstr "Canviar preu unitari - Funció no autoritzada"
#, python-format
#~ msgid "Delete Order - Unauthorized function"
#~ msgstr "Esborrar comanda - Funció no autoritzada"
#, python-format
#~ msgid "Discount - Unauthorized function"
#~ msgstr "Descomptes - Funció no autoritzada"
#, python-format
#~ msgid "Many Orders - Unauthorized function"
#~ msgstr "Múltiples Comandes - Funció no autoritzada"
#, python-format
#~ msgid "Negative Quantity - Unauthorized function"
#~ msgstr "Quantitat Negativa - Funció no autoritzada"
#, python-format
#~ msgid "Payment - Unauthorized function"
#~ msgstr "Descomptes - Funció no autoritzada"
#, python-format
#~ msgid "Please ask your manager to do it."
#~ msgstr "Si us plau, pregunti al seu administrador per fer-ho."
#~ msgid "pos.config"
#~ msgstr "pos.config"

View file

@ -1,157 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_access_right
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-10-12 13:36+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.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 4.17\n"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_discount_id
msgid "Point of Sale - Allow Discount"
msgstr "Punto de venta - Permitir descuento"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_negative_qty_id
msgid "Point of Sale - Allow Negative Quantity"
msgstr "Punto de venta - Permitir cantidad negativa"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_change_unit_price_id
msgid "Point of Sale - Allow Unit Price Change"
msgstr "Punto de venta - Permitir cambio de precio unitario"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_delete_order_id
#: model:res.groups,name:pos_access_right.group_delete_order
msgid "Point of Sale - Delete Order"
msgstr "Punto de venta - Eliminar pedido"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_discount
msgid "Point of Sale - Discount"
msgstr "Punto de Venta - Descuento"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_multi_order_id
#: model:res.groups,name:pos_access_right.group_multi_order
msgid "Point of Sale - Many Orders"
msgstr "Punto de venta - Muchos pedidos"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_negative_qty
msgid "Point of Sale - Negative Quantity"
msgstr "Punto de venta - Cantidad negativa"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_payment_id
#: model:res.groups,name:pos_access_right.group_payment
msgid "Point of Sale - Payment"
msgstr "Punto de Venta - Pago"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_change_unit_price
msgid "Point of Sale - Unit Price Change"
msgstr "Punto de venta - Cambio de precio unitario"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_config
msgid "Point of Sale Configuration"
msgstr "Configuración del punto de venta"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_session
msgid "Point of Sale Session"
msgstr "Sesión del Punto de Venta"
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_discount_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Discount' Group to "
"the Point of Sale Frontend."
msgstr ""
"Este campo está allí para pasar la identificación del grupo 'PdV - Permitir "
"descuento' al Frontend del punto de venta."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_negative_qty_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Negative Quantity' "
"Group to the Point of Sale Frontend."
msgstr ""
"Este campo está allí para pasar la identificación del grupo 'PdV - Permitir "
"cantidad negativa' al Frontend del punto de venta."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_change_unit_price_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Unit Price Change' "
"Group to the Point of Sale Frontend."
msgstr ""
"Este campo está allí para pasar la identificación del grupo 'PdV - Permitir "
"cambio de precio unitario' al Frontend del punto de venta."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_delete_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Delete Order' Group to the "
"Point of Sale Frontend."
msgstr ""
"Este campo está allí para pasar la identificación del grupo 'PdV - Eliminar "
"pedido' al Frontend del punto de venta."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_multi_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Many Orders Group to the "
"Point of Sale Frontend."
msgstr ""
"Este campo está allí para pasar la identificación del grupo 'PdV - Muchos "
"pedidos' al punto de venta frontend."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_payment_id
msgid ""
"This field is there to pass the id of the 'PoS - Payment' Group to the Point "
"of Sale Frontend."
msgstr ""
"Este campo está allí para pasar la identificación del grupo 'PdV - Pago' al "
"Frontend del punto de venta."
#, python-format
#~ msgid "Change Unit Price - Unauthorized function"
#~ msgstr "Cambiar precio unitario - Función no autorizada"
#, python-format
#~ msgid "Delete Order - Unauthorized function"
#~ msgstr "Eliminar orden - Función no autorizada"
#, python-format
#~ msgid "Discount - Unauthorized function"
#~ msgstr "Descuento - Función no autorizada"
#, python-format
#~ msgid "Many Orders - Unauthorized function"
#~ msgstr "Muchas órdenes - Función no autorizada"
#, python-format
#~ msgid "Negative Quantity - Unauthorized function"
#~ msgstr "Cantidad negativa- Función no autorizada"
#, python-format
#~ msgid "Payment - Unauthorized function"
#~ msgstr "Pago - Función no autorizada"
#, python-format
#~ msgid "Please ask your manager to do it."
#~ msgstr "Pídale a su gerente que lo haga."

View file

@ -1,161 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_access_right
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-02 11:49+0000\n"
"PO-Revision-Date: 2022-02-16 18:32+0000\n"
"Last-Translator: Khalid Hazam <k.hazam@badep.ma>\n"
"Language-Team: \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"
"X-Generator: Weblate 4.3.2\n"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_discount_id
msgid "Point of Sale - Allow Discount"
msgstr "Point de vente - Autoriser les remises"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_negative_qty_id
msgid "Point of Sale - Allow Negative Quantity"
msgstr "Point de vente - Autoriser les quantités négatives"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_change_unit_price_id
msgid "Point of Sale - Allow Unit Price Change"
msgstr "Point de vente - Autoriser le changement de prix unitaire"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_delete_order_id
#: model:res.groups,name:pos_access_right.group_delete_order
msgid "Point of Sale - Delete Order"
msgstr "Point de Vente - Supprimer une commande"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_discount
msgid "Point of Sale - Discount"
msgstr "Point de Vente - Remise"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_multi_order_id
#: model:res.groups,name:pos_access_right.group_multi_order
msgid "Point of Sale - Many Orders"
msgstr "Point de Vente - Plusieurs commandes simultanées"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_negative_qty
msgid "Point of Sale - Negative Quantity"
msgstr "Point de Vente - Quantité négative"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_payment_id
#: model:res.groups,name:pos_access_right.group_payment
msgid "Point of Sale - Payment"
msgstr "Point de Vente - Paiement"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_change_unit_price
msgid "Point of Sale - Unit Price Change"
msgstr "Point de Vente - Changer de prix"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_config
msgid "Point of Sale Configuration"
msgstr "Point de Vente - Configuration"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_discount_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Discount' Group to "
"the Point of Sale Frontend."
msgstr ""
"Ce champs existe pour passer l'ID du groupe 'PdV - Autoriser les remises' au "
"sein du point de vente tactile."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_negative_qty_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Negative Quantity' "
"Group to the Point of Sale Frontend."
msgstr ""
"Ce champs existe pour passer l'ID du groupe 'PdV - Autoriser les quantités "
"négatives' au sein du point de vente tactile."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_change_unit_price_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Unit Price Change' "
"Group to the Point of Sale Frontend."
msgstr ""
"Ce champs existe pour passer l'ID du groupe 'PdV - Autoriser les changements "
"de prix unitaires' au sein du point de vente tactile."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_delete_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Delete Order' Group to the "
"Point of Sale Frontend."
msgstr ""
"Ce champs existe pour passer l'ID du groupe 'PdV - Supprimer une commande' "
"au sein du point de vente tactile."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_multi_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Many Orders Group to the "
"Point of Sale Frontend."
msgstr ""
"Ce champs existe pour passer l'ID du groupe 'PdV - Plusieurs commandes' au "
"sein du point de vente tactile."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_payment_id
msgid ""
"This field is there to pass the id of the 'PoS - Payment' Group to the Point "
"of Sale Frontend."
msgstr ""
"Ce champs existe pour passer l'ID du groupe 'PdV - Paiement' au sein du "
"point de vente tactile."
#, python-format
#~ msgid "Change Unit Price - Unauthorized function"
#~ msgstr "Changer le prix unitaire - Fonctionnalité non autorisée"
#, python-format
#~ msgid "Delete Order - Unauthorized function"
#~ msgstr "Supprimer une commande de vente - Fonctionnalité non autorisée"
#, python-format
#~ msgid "Discount - Unauthorized function"
#~ msgstr "Remise - Fonctionnalité non autorisée"
#, python-format
#~ msgid "Many Orders - Unauthorized function"
#~ msgstr "Plusieurs Commandes simultanées - Fonctionnalité non autorisée"
#, python-format
#~ msgid "Negative Quantity - Unauthorized function"
#~ msgstr "Quantité négative - Fonctionnalité non autorisée"
#, python-format
#~ msgid "Payment - Unauthorized function"
#~ msgstr "Paiement - Fonctionnalité non autorisée"
#, python-format
#~ msgid "Please ask your manager to do it."
#~ msgstr "Veuillez vous rapprocher d'un responsable"
#~ msgid "pos.config"
#~ msgstr "pos.config"

View file

@ -1,162 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_access_right
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-10-13 14:40+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_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_discount_id
msgid "Point of Sale - Allow Discount"
msgstr "Punto vendita - Consenti sconto"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_negative_qty_id
msgid "Point of Sale - Allow Negative Quantity"
msgstr "Punto vendita - Consenti quantità negativa"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_change_unit_price_id
msgid "Point of Sale - Allow Unit Price Change"
msgstr "Punto vendita - Consenti modifica prezzo unitario"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_delete_order_id
#: model:res.groups,name:pos_access_right.group_delete_order
msgid "Point of Sale - Delete Order"
msgstr "Punto vendita - Cancella ordine"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_discount
msgid "Point of Sale - Discount"
msgstr "Punto vendita - Sconto"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_multi_order_id
#: model:res.groups,name:pos_access_right.group_multi_order
msgid "Point of Sale - Many Orders"
msgstr "Punto vendita - Molti ordini"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_negative_qty
msgid "Point of Sale - Negative Quantity"
msgstr "Punto vendita - Quantità negativa"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_payment_id
#: model:res.groups,name:pos_access_right.group_payment
msgid "Point of Sale - Payment"
msgstr "Punto vendita - Pagamento"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_change_unit_price
msgid "Point of Sale - Unit Price Change"
msgstr "Punto vendita - Modifica prezzo unitario"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_config
msgid "Point of Sale Configuration"
msgstr "Configurazione punto vendita"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_session
msgid "Point of Sale Session"
msgstr "Sessione punto vendita"
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_discount_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Discount' Group to "
"the Point of Sale Frontend."
msgstr ""
"Questo campo è definito per passare l'ID del gruppo 'PoS - Consenti sconto' "
"al frontend punto vendita."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_negative_qty_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Negative Quantity' "
"Group to the Point of Sale Frontend."
msgstr ""
"Questo campo è definito per passare l'ID del gruppo 'PoS - Consenti quantità "
"negativa' al frontend punto vendita."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_change_unit_price_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Unit Price Change' "
"Group to the Point of Sale Frontend."
msgstr ""
"Questo campo è definito per passare l'ID del gruppo 'PoS - Consenti modifica "
"prezzo unitario' al frontend punto vendita."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_delete_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Delete Order' Group to the "
"Point of Sale Frontend."
msgstr ""
"Questo campo è definito per passare l'ID del gruppo 'PoS - Cancella ordine' "
"al frontend punto vendita."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_multi_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Many Orders Group to the "
"Point of Sale Frontend."
msgstr ""
"Questo campo è definito per passare l'ID del gruppo 'PoS - Molti ordini' al "
"frontend punto vendita."
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_payment_id
msgid ""
"This field is there to pass the id of the 'PoS - Payment' Group to the Point "
"of Sale Frontend."
msgstr ""
"Questo campo è definito per passare l'ID del gruppo 'PoS - Pagamento' al "
"frontend punto vendita."
#, python-format
#~ msgid "!hasMinusControlRights"
#~ msgstr "!hasMinusControlRights"
#, python-format
#~ msgid "!hasNewOrdersControlRights"
#~ msgstr "!hasNewOrdersControlRights"
#, python-format
#~ msgid "!hasPaymentControlRights"
#~ msgstr "!hasPaymentControlRights"
#~ msgid "Display Name"
#~ msgstr "Nome visualizzato"
#~ msgid "ID"
#~ msgstr "ID"
#~ msgid "Last Modified on"
#~ msgstr "Ultima modifica il"
#, python-format
#~ msgid "{'disabled-mode': !hasMinusControlRights}"
#~ msgstr "{'disabled-mode': !hasMinusControlRights}"
#, python-format
#~ msgid "{'disabled-mode': !hasNewOrdersControlRights}"
#~ msgstr "{'disabled-mode': !hasNewOrdersControlRights}"
#, python-format
#~ msgid "{'disabled-mode': !hasPaymentControlRights}"
#~ msgstr "{'disabled-mode': !hasPaymentControlRights}"

View file

@ -1,114 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_access_right
#
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_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_discount_id
msgid "Point of Sale - Allow Discount"
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_negative_qty_id
msgid "Point of Sale - Allow Negative Quantity"
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_change_unit_price_id
msgid "Point of Sale - Allow Unit Price Change"
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_delete_order_id
#: model:res.groups,name:pos_access_right.group_delete_order
msgid "Point of Sale - Delete Order"
msgstr ""
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_discount
msgid "Point of Sale - Discount"
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_multi_order_id
#: model:res.groups,name:pos_access_right.group_multi_order
msgid "Point of Sale - Many Orders"
msgstr ""
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_negative_qty
msgid "Point of Sale - Negative Quantity"
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_payment_id
#: model:res.groups,name:pos_access_right.group_payment
msgid "Point of Sale - Payment"
msgstr ""
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_change_unit_price
msgid "Point of Sale - Unit Price Change"
msgstr ""
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_config
msgid "Point of Sale Configuration"
msgstr ""
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_discount_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Discount' Group to "
"the Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_negative_qty_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Negative Quantity' "
"Group to the Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_change_unit_price_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Unit Price Change' "
"Group to the Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_delete_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Delete Order' Group to the "
"Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_multi_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Many Orders Group to the "
"Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_payment_id
msgid ""
"This field is there to pass the id of the 'PoS - Payment' Group to the Point"
" of Sale Frontend."
msgstr ""

View file

@ -1,123 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_access_right
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2019-05-30 11:19+0000\n"
"Last-Translator: Ivan Yelizariev <yelizariev@it-projects.info>\n"
"Language-Team: none\n"
"Language: ru\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 3.6.1\n"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_discount_id
msgid "Point of Sale - Allow Discount"
msgstr "Точка продаж - Разрешить Скидки"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_negative_qty_id
msgid "Point of Sale - Allow Negative Quantity"
msgstr "Точка продаж - Разрешить отрицательное количество"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_change_unit_price_id
msgid "Point of Sale - Allow Unit Price Change"
msgstr "Точка продаж - Разрешить изменение цены за штуку"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_delete_order_id
#: model:res.groups,name:pos_access_right.group_delete_order
msgid "Point of Sale - Delete Order"
msgstr "Точка продаж - Удаление заказа"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_discount
msgid "Point of Sale - Discount"
msgstr "Точка продаж - Скидки"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_multi_order_id
#: model:res.groups,name:pos_access_right.group_multi_order
msgid "Point of Sale - Many Orders"
msgstr "Точка продаж - Более одного заказа"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_negative_qty
msgid "Point of Sale - Negative Quantity"
msgstr "Точка продаж - Отрицательное количество"
#. module: pos_access_right
#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_payment_id
#: model:res.groups,name:pos_access_right.group_payment
#, fuzzy
msgid "Point of Sale - Payment"
msgstr "Точка продаж - Скидки"
#. module: pos_access_right
#: model:res.groups,name:pos_access_right.group_change_unit_price
msgid "Point of Sale - Unit Price Change"
msgstr "Точка продаж - Изменение цены за штуку"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_config
msgid "Point of Sale Configuration"
msgstr "Настройки Точки продаж"
#. module: pos_access_right
#: model:ir.model,name:pos_access_right.model_pos_session
msgid "Point of Sale Session"
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_discount_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Discount' Group to "
"the Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_negative_qty_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Negative Quantity' "
"Group to the Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_change_unit_price_id
msgid ""
"This field is there to pass the id of the 'PoS - Allow Unit Price Change' "
"Group to the Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_delete_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Delete Order' Group to the "
"Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_multi_order_id
msgid ""
"This field is there to pass the id of the 'PoS - Many Orders Group to the "
"Point of Sale Frontend."
msgstr ""
#. module: pos_access_right
#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_payment_id
msgid ""
"This field is there to pass the id of the 'PoS - Payment' Group to the Point "
"of Sale Frontend."
msgstr ""
#, python-format
#~ msgid "Please ask your manager to do it."
#~ msgstr "Попросите менеджера выполнить это действие."

View file

@ -1,2 +0,0 @@
from . import pos_config
from . import pos_session

View file

@ -1,73 +0,0 @@
from odoo import fields, models
class PosConfig(models.Model):
_inherit = "pos.config"
group_negative_qty_id = fields.Many2one(
comodel_name="res.groups",
compute="_compute_groups",
string="Point of Sale - Allow Negative Quantity",
help="This field is there to pass the id of the 'PoS - Allow Negative"
" Quantity' Group to the Point of Sale Frontend.",
)
group_discount_id = fields.Many2one(
comodel_name="res.groups",
compute="_compute_groups",
string="Point of Sale - Allow Discount",
help="This field is there to pass the id of the 'PoS - Allow Discount'"
" Group to the Point of Sale Frontend.",
)
group_change_unit_price_id = fields.Many2one(
comodel_name="res.groups",
compute="_compute_groups",
string="Point of Sale - Allow Unit Price Change",
help="This field is there to pass the id of the 'PoS - Allow Unit"
" Price Change' Group to the Point of Sale Frontend.",
)
group_multi_order_id = fields.Many2one(
comodel_name="res.groups",
compute="_compute_groups",
string="Point of Sale - Many Orders",
help="This field is there to pass the id of the 'PoS - Many Orders"
" Group to the Point of Sale Frontend.",
)
group_delete_order_id = fields.Many2one(
comodel_name="res.groups",
compute="_compute_groups",
string="Point of Sale - Delete Order",
help="This field is there to pass the id of the 'PoS - Delete Order'"
" Group to the Point of Sale Frontend.",
)
group_payment_id = fields.Many2one(
comodel_name="res.groups",
compute="_compute_groups",
string="Point of Sale - Payment",
help="This field is there to pass the id of the 'PoS - Payment'"
" Group to the Point of Sale Frontend.",
)
def _compute_groups(self):
self.update(
{
"group_negative_qty_id": self.env.ref(
"pos_access_right.group_negative_qty"
).id,
"group_discount_id": self.env.ref("pos_access_right.group_discount").id,
"group_change_unit_price_id": self.env.ref(
"pos_access_right.group_change_unit_price"
).id,
"group_multi_order_id": self.env.ref(
"pos_access_right.group_multi_order"
).id,
"group_delete_order_id": self.env.ref(
"pos_access_right.group_delete_order"
).id,
"group_payment_id": self.env.ref("pos_access_right.group_payment").id,
}
)

View file

@ -1,22 +0,0 @@
from odoo import models
class PosSession(models.Model):
_inherit = "pos.session"
def _get_pos_ui_res_users(self, params):
user_vals = super()._get_pos_ui_res_users(params)
user_id = user_vals.get("id")
if user_id:
user = self.env["res.users"].browse(user_id)
groups = user.groups_id
config = self.config_id
user_vals.update(
hasGroupPayment=config.group_payment_id in groups,
hasGroupDiscount=config.group_discount_id in groups,
hasGroupNegativeQty=config.group_negative_qty_id in groups,
hasGroupPriceControl=config.group_change_unit_price_id in groups,
hasGroupMultiOrder=config.group_multi_order_id in groups,
hasGroupDeleteOrder=config.group_delete_order_id in groups,
)
return user_vals

View file

@ -1 +0,0 @@
Once installed, you have to give correct access right to your cashiers.

View file

@ -1,3 +0,0 @@
* Sylvain LE GAL <https://twitter.com/legalsylvain>
* Ammmar Officewala <https://twitter.com/AmmarOfficewala>
* Helly kapatel <helly.kapatel@initos.com>

View file

@ -1,7 +0,0 @@
This module extends Odoo Point Of Sale features, restricting possibility to cashier to make some actions in the Point of Sale. This module will add the following groups to Odoo:
* **PoS - Negative Quantity**: The cashier can sell negative quantity in Point Of Sale (ie, can return products);
* **PoS - Discount**: The cashier can set Discount in Point Of Sale;
* **PoS - Change Unit Price**: The cashier can change the unit price of a product in Point Of Sale;
* **PoS - Many Orders**: The cashier can many orders at the same time;
* **PoS - Delete Order**: The cashier can not delete a full order;

View file

@ -1,3 +0,0 @@
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/184/9.0

View file

@ -1,39 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (C) 2016-Today: La Louve (<http://www.lalouve.net/>)
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo noupdate="1">
<record id="group_negative_qty" model="res.groups">
<field name="name">Point of Sale - Negative Quantity</field>
<field name="category_id" ref="base.module_category_usability" />
</record>
<record id="group_discount" model="res.groups">
<field name="name">Point of Sale - Discount</field>
<field name="category_id" ref="base.module_category_usability" />
</record>
<record id="group_change_unit_price" model="res.groups">
<field name="name">Point of Sale - Unit Price Change</field>
<field name="category_id" ref="base.module_category_usability" />
</record>
<record id="group_multi_order" model="res.groups">
<field name="name">Point of Sale - Many Orders</field>
<field name="category_id" ref="base.module_category_usability" />
</record>
<record id="group_delete_order" model="res.groups">
<field name="name">Point of Sale - Delete Order</field>
<field name="category_id" ref="base.module_category_usability" />
</record>
<record id="group_payment" model="res.groups">
<field name="name">Point of Sale - Payment</field>
<field name="category_id" ref="base.module_category_usability" />
</record>
</odoo>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

View file

@ -1,445 +0,0 @@
<!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>Point of Sale - Extra Access Right</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="point-of-sale-extra-access-right">
<h1 class="title">Point of Sale - Extra Access Right</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:f9d72317bd441d8202db6646343a16fb9a7ee345631646475870fcbddc492e4a
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<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/pos/tree/16.0/pos_access_right"><img alt="OCA/pos" src="https://img.shields.io/badge/github-OCA%2Fpos-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/pos-16-0/pos-16-0-pos_access_right"><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/pos&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 extends Odoo Point Of Sale features, restricting possibility to cashier to make some actions in the Point of Sale. This module will add the following groups to Odoo:</p>
<ul class="simple">
<li><strong>PoS - Negative Quantity</strong>: The cashier can sell negative quantity in Point Of Sale (ie, can return products);</li>
<li><strong>PoS - Discount</strong>: The cashier can set Discount in Point Of Sale;</li>
<li><strong>PoS - Change Unit Price</strong>: The cashier can change the unit price of a product in Point Of Sale;</li>
<li><strong>PoS - Many Orders</strong>: The cashier can many orders at the same time;</li>
<li><strong>PoS - Delete Order</strong>: The cashier can not delete a full order;</li>
</ul>
<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="#bug-tracker" id="toc-entry-3">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-4">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-5">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-6">Contributors</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>Once installed, you have to give correct access right to your cashiers.</p>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#toc-entry-2">Usage</a></h1>
<a class="reference external image-reference" href="https://runbot.odoo-community.org/runbot/184/9.0">
<img alt="Try me on Runbot" src="https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas" />
</a>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-3">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/pos/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/pos/issues/new?body=module:%20pos_access_right%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-4">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-5">Authors</a></h2>
<ul class="simple">
<li>La Louve</li>
<li>GRAP</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-6">Contributors</a></h2>
<ul class="simple">
<li>Sylvain LE GAL &lt;<a class="reference external" href="https://twitter.com/legalsylvain">https://twitter.com/legalsylvain</a>&gt;</li>
<li>Ammmar Officewala &lt;<a class="reference external" href="https://twitter.com/AmmarOfficewala">https://twitter.com/AmmarOfficewala</a>&gt;</li>
<li>Helly kapatel &lt;<a class="reference external" href="mailto:helly.kapatel&#64;initos.com">helly.kapatel&#64;initos.com</a>&gt;</li>
</ul>
</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/pos/tree/16.0/pos_access_right">OCA/pos</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>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View file

@ -1,17 +0,0 @@
.pos .actionpad .button.pay.disabled-mode,
.pos .actionpad .button.pay.disabled-mode:hover {
background: #c7c7c7;
color: #a5a1a1;
cursor: not-allowed;
}
.pos .ticket-screen .controls button.highlight.disabled-mode:hover {
background: #c7c7c7;
border: solid 1px rgb(220, 220, 220);
color: #a5a1a1;
cursor: not-allowed;
}
.pos .ticket-screen .pointer.disabled-mode:hover {
cursor: not-allowed;
}

View file

@ -1,17 +0,0 @@
odoo.define("pos_access_right.ActionpadWidget", function (require) {
"use strict";
const Registries = require("point_of_sale.Registries");
const ActionpadWidget = require("point_of_sale.ActionpadWidget");
const PosActionpadWidget = (OriginalActionpadWidget) =>
class extends OriginalActionpadWidget {
get hasPaymentControlRights() {
return this.env.pos.user.hasGroupPayment;
}
};
Registries.Component.extend(ActionpadWidget, PosActionpadWidget);
return ActionpadWidget;
});

View file

@ -1,31 +0,0 @@
odoo.define("pos_access_right.NumpadWidget", function (require) {
"use strict";
const Registries = require("point_of_sale.Registries");
const NumpadWidget = require("point_of_sale.NumpadWidget");
const PosNumpadWidget = (OriginalNumpadWidget) =>
class extends OriginalNumpadWidget {
get hasManualDiscount() {
const res = super.hasManualDiscount;
if (res) {
return this.env.pos.user.hasGroupDiscount;
}
return res;
}
get hasMinusControlRights() {
return this.env.pos.user.hasGroupNegativeQty;
}
get hasPriceControlRights() {
const res = super.hasPriceControlRights;
if (res) {
return this.env.pos.user.hasGroupPriceControl;
}
return res;
}
};
Registries.Component.extend(NumpadWidget, PosNumpadWidget);
return NumpadWidget;
});

View file

@ -1,24 +0,0 @@
odoo.define("pos_access_right.TicketScreen", function (require) {
"use strict";
const Registries = require("point_of_sale.Registries");
const TicketScreen = require("point_of_sale.TicketScreen");
const PosTicketScreen = (OriginalTicketScreen) =>
class extends OriginalTicketScreen {
get hasNewOrdersControlRights() {
return this.env.pos.user.hasGroupMultiOrder;
}
async _onDeleteOrder({detail: order}) {
if (!this.env.pos.user.hasGroupDeleteOrder) {
return;
}
return super._onDeleteOrder({detail: order});
}
};
Registries.Component.extend(TicketScreen, PosTicketScreen);
return TicketScreen;
});

View file

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<templates id="template" xml:space="preserve">
<t
t-name="ActionpadWidget"
t-inherit="point_of_sale.ActionpadWidget"
t-inherit-mode="extension"
owl="1"
>
<xpath
expr="div[hasclass('actionpad')]//button[hasclass('pay')]"
position="attributes"
>
<attribute
name="t-att-class"
>{'disabled-mode': !hasPaymentControlRights}</attribute>
<attribute name="t-att-disabled">!hasPaymentControlRights</attribute>
</xpath>
</t>
</templates>

View file

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<templates id="template" xml:space="preserve">
<t
t-name="NumpadWidget"
t-inherit="point_of_sale.NumpadWidget"
t-inherit-mode="extension"
owl="1"
>
<xpath
expr="div[hasclass('numpad')]//button[hasclass('numpad-minus')]"
position="attributes"
>
<attribute
name="t-att-class"
>{'disabled-mode': !hasMinusControlRights}</attribute>
<attribute name="t-att-disabled">!hasMinusControlRights</attribute>
</xpath>
</t>
</templates>

View file

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<templates id="template" xml:space="preserve">
<t
t-name="TicketScreen"
t-inherit="point_of_sale.TicketScreen"
t-inherit-mode="extension"
owl="1"
>
<xpath
expr="//div[hasclass('ticket-screen')]//button[hasclass('highlight')]"
position="attributes"
>
<attribute
name="t-att-class"
>{'disabled-mode': !hasNewOrdersControlRights}</attribute>
<attribute name="t-att-disabled">!hasNewOrdersControlRights</attribute>
</xpath>
</t>
</templates>

View file

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

View file

@ -1,54 +0,0 @@
from odoo.tests import TransactionCase
class TestUserRestriction(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.env = cls.env(
context=dict(
cls.env.context,
tracking_disable=True,
no_reset_password=True,
)
)
cls.pos_user = cls.env["res.users"].create(
{
"login": "pos_user",
"name": "pos_user",
"groups_id": [(6, 0, [cls.env.ref("point_of_sale.group_pos_user").id])],
}
)
cls.pos_config_main = cls.env.ref("point_of_sale.pos_config_main")
cls.pos_config_model = cls.env["pos.config"]
def test_access_pos(self):
self.pos_config_main._compute_groups()
self.group_negative_qty = self.env.ref("pos_access_right.group_negative_qty")
self.assertEqual(
self.group_negative_qty, self.pos_config_main.group_negative_qty_id
)
self.group_discount = self.env.ref("pos_access_right.group_discount")
self.assertEqual(self.group_discount, self.pos_config_main.group_discount_id)
self.group_change_unit_price = self.env.ref(
"pos_access_right.group_change_unit_price"
)
self.assertEqual(
self.group_change_unit_price,
self.pos_config_main.group_change_unit_price_id,
)
self.group_multi_order = self.env.ref("pos_access_right.group_multi_order")
self.assertEqual(
self.group_multi_order, self.pos_config_main.group_multi_order_id
)
self.group_delete_order = self.env.ref("pos_access_right.group_delete_order")
self.assertEqual(
self.group_delete_order, self.pos_config_main.group_delete_order_id
)
self.group_payment = self.env.ref("pos_access_right.group_payment")
self.assertEqual(self.group_payment, self.pos_config_main.group_payment_id)

View file

@ -1,42 +0,0 @@
[project]
name = "odoo-bringout-oca-pos-pos_access_right"
version = "16.0.0"
description = "Point of Sale - Extra Access Right - Point of Sale - Extra Access Right for certain actions"
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_access_right"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]

View file

@ -1,46 +0,0 @@
# Point of Sale Automatically Invoice
Odoo addon: pos_auto_invoice
## Installation
```bash
pip install odoo-bringout-oca-pos-pos_auto_invoice
```
## Dependencies
This addon depends on:
- point_of_sale
## Manifest Information
- **Name**: Point of Sale Automatically Invoice
- **Version**: 16.0.1.0.0
- **Category**: Point of Sale
- **License**: AGPL-3
- **Installable**: False
## Source
Based on [OCA/pos](https://github.com/OCA/pos) branch 16.0, addon `pos_auto_invoice`.
## 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
- Reports: doc/REPORTS.md
- Security: doc/SECURITY.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

@ -1,32 +0,0 @@
# 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_auto_invoice Module - pos_auto_invoice
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

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

View file

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

View file

@ -1,5 +0,0 @@
# Dependencies
This addon depends on:
- [point_of_sale](https://github.com/bringout/oca-ocb-sale/tree/681dc8d5fff638cb0862a34e48091a2098d091f8/odoo-bringout-oca-ocb-point_of_sale)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,8 +0,0 @@
# 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

@ -1,5 +0,0 @@
# 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

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

View file

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

View file

@ -1,88 +0,0 @@
===================================
Point of Sale Automatically Invoice
===================================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:2b6908cde80186b7b4159c0a6080960f88db5f379a2d78b9748fcb03dff8fdd6
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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%2Fpos-lightgray.png?logo=github
:target: https://github.com/OCA/pos/tree/16.0/pos_auto_invoice
:alt: OCA/pos
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/pos-16-0/pos-16-0-pos_auto_invoice
: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/pos&target_branch=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
Allow to set point-of-sale orders as to-invoice by default.
**Table of contents**
.. contents::
:local:
Configuration
=============
This module adds an “Invoice By Default” option to the Accounting section of
the Point of Sale settings.
To set orders as to-invoice by default, check the “Invoice By Default”
checkbox.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/pos/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/pos/issues/new?body=module:%20pos_auto_invoice%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
~~~~~~~
* Coop IT Easy SC
Contributors
~~~~~~~~~~~~
* `Coop IT Easy SC <https://coopiteasy.be>`_:
* Carmen Bianca Bakker
* hugues de keyzer
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/pos <https://github.com/OCA/pos/tree/16.0/pos_auto_invoice>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View file

@ -1,5 +0,0 @@
# SPDX-FileCopyrightText: 2024 Coop IT Easy SC
#
# SPDX-License-Identifier: AGPL-3.0-or-later
from . import models

View file

@ -1,23 +0,0 @@
# Copyright 2022 Coop IT Easy SC
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Point of Sale Automatically Invoice",
"summary": "Allow to set POS orders as to-invoice by default",
"version": "16.0.1.0.0",
"category": "Point of Sale",
"website": "https://github.com/OCA/pos",
"author": "Coop IT Easy SC, Odoo Community Association (OCA)",
"license": "AGPL-3",
"depends": [
"point_of_sale",
],
"data": [
"views/res_config_settings_view.xml",
],
"assets": {
"point_of_sale.assets": [
"pos_auto_invoice/static/src/js/*.js",
]
},
}

View file

@ -1,35 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_auto_invoice
#
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_auto_invoice
#: model:ir.model,name:pos_auto_invoice.model_res_config_settings
msgid "Config Settings"
msgstr "Postavke"
#. module: pos_auto_invoice
#: model:ir.model.fields,field_description:pos_auto_invoice.field_pos_config__invoice_by_default
#: model:ir.model.fields,field_description:pos_auto_invoice.field_res_config_settings__pos_invoice_by_default
msgid "Invoice By Default"
msgstr "Invoice By Default"
#. module: pos_auto_invoice
#: model:ir.model,name:pos_auto_invoice.model_pos_config
msgid "Point of Sale Configuration"
msgstr "Postavke prodajnog mjesta"
#. module: pos_auto_invoice
#: model_terms:ir.ui.view,arch_db:pos_auto_invoice.res_config_settings_view_form
msgid "Set orders as to-invoice by default"
msgstr "Set orders as to-invoice by default"

View file

@ -1,38 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_auto_invoice
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-04-10 13:24+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.4\n"
#. module: pos_auto_invoice
#: model:ir.model,name:pos_auto_invoice.model_res_config_settings
msgid "Config Settings"
msgstr "Impostazioni configurazione"
#. module: pos_auto_invoice
#: model:ir.model.fields,field_description:pos_auto_invoice.field_pos_config__invoice_by_default
#: model:ir.model.fields,field_description:pos_auto_invoice.field_res_config_settings__pos_invoice_by_default
msgid "Invoice By Default"
msgstr "Fattura predefinita"
#. module: pos_auto_invoice
#: model:ir.model,name:pos_auto_invoice.model_pos_config
msgid "Point of Sale Configuration"
msgstr "Configurazione punto vendita"
#. module: pos_auto_invoice
#: model_terms:ir.ui.view,arch_db:pos_auto_invoice.res_config_settings_view_form
msgid "Set orders as to-invoice by default"
msgstr "Imposta ordini come da fatturare in modo predefinito"

View file

@ -1,35 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_auto_invoice
#
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_auto_invoice
#: model:ir.model,name:pos_auto_invoice.model_res_config_settings
msgid "Config Settings"
msgstr ""
#. module: pos_auto_invoice
#: model:ir.model.fields,field_description:pos_auto_invoice.field_pos_config__invoice_by_default
#: model:ir.model.fields,field_description:pos_auto_invoice.field_res_config_settings__pos_invoice_by_default
msgid "Invoice By Default"
msgstr ""
#. module: pos_auto_invoice
#: model:ir.model,name:pos_auto_invoice.model_pos_config
msgid "Point of Sale Configuration"
msgstr ""
#. module: pos_auto_invoice
#: model_terms:ir.ui.view,arch_db:pos_auto_invoice.res_config_settings_view_form
msgid "Set orders as to-invoice by default"
msgstr ""

View file

@ -1,6 +0,0 @@
# SPDX-FileCopyrightText: 2024 Coop IT Easy SC
#
# SPDX-License-Identifier: AGPL-3.0-or-later
from . import pos_config
from . import res_config_settings

View file

@ -1,11 +0,0 @@
# SPDX-FileCopyrightText: 2024 Coop IT Easy SC
#
# SPDX-License-Identifier: AGPL-3.0-or-later
from odoo import fields, models
class PosConfig(models.Model):
_inherit = "pos.config"
invoice_by_default = fields.Boolean()

View file

@ -1,14 +0,0 @@
# SPDX-FileCopyrightText: 2024 Coop IT Easy SC
#
# SPDX-License-Identifier: AGPL-3.0-or-later
from odoo import fields, models
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
pos_invoice_by_default = fields.Boolean(
related="pos_config_id.invoice_by_default",
readonly=False,
)

View file

@ -1,5 +0,0 @@
This module adds an “Invoice By Default” option to the Accounting section of
the Point of Sale settings.
To set orders as to-invoice by default, check the “Invoice By Default”
checkbox.

View file

@ -1,4 +0,0 @@
* `Coop IT Easy SC <https://coopiteasy.be>`_:
* Carmen Bianca Bakker
* hugues de keyzer

View file

@ -1 +0,0 @@
Allow to set point-of-sale orders as to-invoice by default.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View file

@ -1,435 +0,0 @@
<!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>Point of Sale Automatically Invoice</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="point-of-sale-automatically-invoice">
<h1 class="title">Point of Sale Automatically Invoice</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:2b6908cde80186b7b4159c0a6080960f88db5f379a2d78b9748fcb03dff8fdd6
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<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/pos/tree/16.0/pos_auto_invoice"><img alt="OCA/pos" src="https://img.shields.io/badge/github-OCA%2Fpos-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/pos-16-0/pos-16-0-pos_auto_invoice"><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/pos&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>Allow to set point-of-sale orders as to-invoice by default.</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="#maintainers" id="toc-entry-6">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>This module adds an “Invoice By Default” option to the Accounting section of
the Point of Sale settings.</p>
<p>To set orders as to-invoice by default, check the “Invoice By Default”
checkbox.</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/pos/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/pos/issues/new?body=module:%20pos_auto_invoice%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>Coop IT Easy SC</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
<ul class="simple">
<li><a class="reference external" href="https://coopiteasy.be">Coop IT Easy SC</a>:<ul>
<li>Carmen Bianca Bakker</li>
<li>hugues de keyzer</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-6">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/pos/tree/16.0/pos_auto_invoice">OCA/pos</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

@ -1,23 +0,0 @@
/** @odoo-module **/
import {Order} from "point_of_sale.models";
import Registries from "point_of_sale.Registries";
const AutoInvoiceOrder = (OriginalOrder) =>
class extends OriginalOrder {
constructor(obj, options) {
super(...arguments);
if (!options.json && this.pos.config.invoice_by_default) {
this.to_invoice = true;
}
}
init_from_JSON(json) {
super.init_from_JSON(...arguments);
// This should be done in the original method, but curiously
// it is not (to_invoice is always set to false).
this.to_invoice = json.to_invoice;
}
};
Registries.Model.extend(Order, AutoInvoiceOrder);

View file

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
SPDX-FileCopyrightText: 2024 Coop IT Easy SC
SPDX-License-Identifier: AGPL-3.0-or-later
-->
<odoo>
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="point_of_sale.res_config_settings_view_form" />
<field name="arch" type="xml">
<xpath expr="//div[@id='pos_accounting_section']" position="inside">
<div class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="pos_invoice_by_default" />
</div>
<div class="o_setting_right_pane">
<label for="pos_invoice_by_default" />
<div class="text-muted">
Set orders as to-invoice by default
</div>
</div>
</div>
</xpath>
</field>
</record>
</odoo>

View file

@ -1,42 +0,0 @@
[project]
name = "odoo-bringout-oca-pos-pos_auto_invoice"
version = "16.0.0"
description = "Point of Sale Automatically Invoice - Allow to set POS orders as to-invoice by default"
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_auto_invoice"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]

View file

@ -1,48 +0,0 @@
# POS Bypass Global Discount
Odoo addon: pos_bypass_global_discount
## Installation
```bash
pip install odoo-bringout-oca-pos-pos_bypass_global_discount
```
## Dependencies
This addon depends on:
- pos_discount
- pos_loyalty
- sale_global_discount
## Manifest Information
- **Name**: POS Bypass Global Discount
- **Version**: 16.0.1.0.1
- **Category**: Point of Sale
- **License**: AGPL-3
- **Installable**: True
## Source
Based on [OCA/pos](https://github.com/OCA/pos) branch 16.0, addon `pos_bypass_global_discount`.
## 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
- Reports: doc/REPORTS.md
- Security: doc/SECURITY.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

@ -1,32 +0,0 @@
# 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_bypass_global_discount Module - pos_bypass_global_discount
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

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

View file

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

View file

@ -1,7 +0,0 @@
# Dependencies
This addon depends on:
- [pos_discount](https://github.com/bringout/oca-ocb-pos/tree/8e3c420e50146ad6887d3e14c2929a735e316fc1/odoo-bringout-oca-ocb-pos_discount)
- [pos_loyalty](https://github.com/bringout/oca-ocb-pos/tree/8e3c420e50146ad6887d3e14c2929a735e316fc1/odoo-bringout-oca-ocb-pos_loyalty)
- [sale_global_discount](https://github.com/bringout/oca-workflow-process)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,8 +0,0 @@
# 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

@ -1,5 +0,0 @@
# 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

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

View file

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

View file

@ -1,79 +0,0 @@
==========================
POS Bypass Global Discount
==========================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:118a335107deab420079f4508901489ee3e024abddaf96d69e799da6f3924544
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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%2Fpos-lightgray.png?logo=github
:target: https://github.com/OCA/pos/tree/16.0/pos_bypass_global_discount
:alt: OCA/pos
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/pos-16-0/pos-16-0-pos_bypass_global_discount
: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/pos&target_branch=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
Field `bypass_global_discount` was introduced in [base_global_discount](https://github.com/OCA/server-backend/tree/16.0/base_global_discount). It's used to exclude some products from global discounts calculations.
This module is meant to be installed as a companion to `sale_global_discount`. It makes sure the POS will also honors the `bypass_global_discount` field when user inputs a Discount at the Order level.
**Table of contents**
.. contents::
:local:
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/pos/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/pos/issues/new?body=module:%20pos_bypass_global_discount%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
~~~~~~~
* Camptocamp
Contributors
~~~~~~~~~~~~
* `Camptocamp <https://www.camptocamp.com>`_
* Tri Doan <tridm@trobz.com>
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/pos <https://github.com/OCA/pos/tree/16.0/pos_bypass_global_discount>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View file

@ -1,22 +0,0 @@
# Copyright 2024 Camptocamp (https://www.camptocamp.com).
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "POS Bypass Global Discount",
"summary": "",
"version": "16.0.1.0.1",
"author": "Camptocamp, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/pos",
"license": "AGPL-3",
"category": "Point of Sale",
"depends": ["pos_discount", "pos_loyalty", "sale_global_discount"],
"installable": True,
"assets": {
"point_of_sale.assets": [
"pos_bypass_global_discount/static/src/js/**/*.js",
],
"web.assets_tests": [
"pos_bypass_global_discount/static/src/tours/**/*",
],
},
}

View file

@ -1,19 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_bypass_global_discount
#
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_bypass_global_discount
#: model:ir.model,name:pos_bypass_global_discount.model_pos_session
msgid "Point of Sale Session"
msgstr "Sesija POS-a"

View file

@ -1,22 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * pos_bypass_global_discount
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-09-26 09: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: pos_bypass_global_discount
#: model:ir.model,name:pos_bypass_global_discount.model_pos_session
msgid "Point of Sale Session"
msgstr "Sessione punto vendita"

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