Initial commit: Sale packages

This commit is contained in:
Ernad Husremovic 2025-08-29 15:20:49 +02:00
commit 14e3d26998
6469 changed files with 2479670 additions and 0 deletions

View file

@ -0,0 +1,47 @@
# Sale Loyalty - Delivery
Integrate free shipping in sales orders.
## Installation
```bash
pip install odoo-bringout-oca-ocb-sale_loyalty_delivery
```
## Dependencies
This addon depends on:
- sale_loyalty
- loyalty_delivery
## Manifest Information
- **Name**: Sale Loyalty - Delivery
- **Version**: 1.0
- **Category**: Sales/Sales
- **License**: LGPL-3
- **Installable**: False
## Source
Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `sale_loyalty_delivery`.
## License
This package maintains the original LGPL-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

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,43 @@
[project]
name = "odoo-bringout-oca-ocb-sale_loyalty_delivery"
version = "16.0.0"
description = "Sale Loyalty - Delivery - Adds free shipping mechanism in sales orders"
authors = [
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
]
dependencies = [
"odoo-bringout-oca-ocb-sale_loyalty>=16.0.0",
"odoo-bringout-oca-ocb-loyalty_delivery>=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 = ["sale_loyalty_delivery"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]

View file

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import models

View file

@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Sale Loyalty - Delivery',
'summary': 'Adds free shipping mechanism in sales orders',
'description': 'Integrate free shipping in sales orders.',
'category': 'Sales/Sales',
'version': '1.0',
'depends': ['sale_loyalty', 'loyalty_delivery'],
'auto_install': True,
'license': 'LGPL-3',
}

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-15 12:51+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Language-Team: Afrikaans (https://app.transifex.com/odoo/teams/41243/af/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: af\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order_line
msgid "Sales Order Line"
msgstr ""

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-15 12:51+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Language-Team: Amharic (https://app.transifex.com/odoo/teams/41243/am/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: am\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order_line
msgid "Sales Order Line"
msgstr ""

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Malaz Abuidris <msea@odoo.com>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Malaz Abuidris <msea@odoo.com>, 2023\n"
"Language-Team: Arabic (https://app.transifex.com/odoo/teams/41243/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "شحن مجاني - %s "
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "أمر البيع"

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# erpgo translator <jumshud@erpgo.az>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: erpgo translator <jumshud@erpgo.az>, 2022\n"
"Language-Team: Azerbaijani (https://app.transifex.com/odoo/teams/41243/az/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: az\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Satış Sifarişi"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-15 12:51+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Language-Team: Belarusian (https://app.transifex.com/odoo/teams/41243/be/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: be\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order_line
msgid "Sales Order Line"
msgstr ""

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Igor Sheludko <igor.sheludko@gmail.com>, 2023
# Meglen Hadzhitsanchev, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Meglen Hadzhitsanchev, 2024\n"
"Language-Team: Bulgarian (https://app.transifex.com/odoo/teams/41243/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Безплатна доставка - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Поръчка"

View file

@ -0,0 +1,28 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2025-02-10 08:27+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Besplatna dostava - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Prodajni nalog"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Manel Fernandez Ramirez <manelfera@outlook.com>, 2022
# Ivan Espinola, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Ivan Espinola, 2023\n"
"Language-Team: Catalan (https://app.transifex.com/odoo/teams/41243/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Enviament gratuït - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Comanda de venda"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Tereza Mokrá, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Tereza Mokrá, 2024\n"
"Language-Team: Czech (https://app.transifex.com/odoo/teams/41243/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: cs\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Doprava zdarma - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Prodejní objednávka"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Sanne Kristensen <sanne@vkdata.dk>, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Sanne Kristensen <sanne@vkdata.dk>, 2024\n"
"Language-Team: Danish (https://app.transifex.com/odoo/teams/41243/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Gratis levering - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Salgsordre"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Larissa Manderfeld, 2023
# Martin Trigaux, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Martin Trigaux, 2023\n"
"Language-Team: German (https://app.transifex.com/odoo/teams/41243/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Kostenloser Versand - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Verkaufsauftrag"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Spanish (https://app.transifex.com/odoo/teams/41243/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: es\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Envío gratuito - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Pedido de venta"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Fernanda Alvarez, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Fernanda Alvarez, 2023\n"
"Language-Team: Spanish (Mexico) (https://app.transifex.com/odoo/teams/41243/es_MX/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: es_MX\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Envío gratis - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Orden de venta"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Eneli Õigus <enelioigus@gmail.com>, 2022
# Patrick-Jordan Kiudorv, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Patrick-Jordan Kiudorv, 2023\n"
"Language-Team: Estonian (https://app.transifex.com/odoo/teams/41243/et/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: et\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Tasuta Kohaletoimetamine - 1%s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Müügitellimus"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2023
# Naser mars, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Naser mars, 2025\n"
"Language-Team: Persian (https://app.transifex.com/odoo/teams/41243/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: fa\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "ارسال رایگان - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "سفارش فروش"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Kari Lindgren <kari.lindgren@emsystems.fi>, 2022
# Ossi Mantylahti <ossi.mantylahti@obs-solutions.fi>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Ossi Mantylahti <ossi.mantylahti@obs-solutions.fi>, 2023\n"
"Language-Team: Finnish (https://app.transifex.com/odoo/teams/41243/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Ilmainen toimitus - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Myyntitilaus"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Jolien De Paepe, 2022
# Manon Rondou, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Manon Rondou, 2025\n"
"Language-Team: French (https://app.transifex.com/odoo/teams/41243/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: fr\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Expédition gratuite - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Commande client"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-15 12:51+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Language-Team: Gujarati (https://app.transifex.com/odoo/teams/41243/gu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: gu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order_line
msgid "Sales Order Line"
msgstr ""

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# ZVI BLONDER <ZVIBLONDER@gmail.com>, 2022
# or balmas, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: or balmas, 2025\n"
"Language-Team: Hebrew (https://app.transifex.com/odoo/teams/41243/he/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: he\n"
"Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "משלוח חינם-"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "הזמנת לקוח"

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Ujjawal Pathak, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Ujjawal Pathak, 2025\n"
"Language-Team: Hindi (https://app.transifex.com/odoo/teams/41243/hi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: hi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "सेल्स ऑर्डर"

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Martin Trigaux, 2022\n"
"Language-Team: Croatian (https://app.transifex.com/odoo/teams/41243/hr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: hr\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Prodajni nalog"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Krisztián Juhász <juhasz.krisztian@josafar.hu>, 2022
# gezza <geza.nagy@oregional.hu>, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: gezza <geza.nagy@oregional.hu>, 2025\n"
"Language-Team: Hungarian (https://app.transifex.com/odoo/teams/41243/hu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Ingyenes szállítás - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Vevői rendelések"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-15 12:51+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Language-Team: Armenian (https://app.transifex.com/odoo/teams/41243/hy/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: hy\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order_line
msgid "Sales Order Line"
msgstr ""

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Abe Manyo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Abe Manyo, 2023\n"
"Language-Team: Indonesian (https://app.transifex.com/odoo/teams/41243/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Pengiriman Gratis - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Sales Order"

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Kristófer Arnþórsson, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Kristófer Arnþórsson, 2024\n"
"Language-Team: Icelandic (https://app.transifex.com/odoo/teams/41243/is/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: is\n"
"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Sölupöntun"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Marianna Ciofani, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Marianna Ciofani, 2023\n"
"Language-Team: Italian (https://app.transifex.com/odoo/teams/41243/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: it\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Spedizione gratuita-%s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Ordine di vendita"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Ryoko Tsuda <ryoko@quartile.co>, 2023
# Junko Augias, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Junko Augias, 2023\n"
"Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "送料無料 - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "販売オーダ"

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Lux Sok <sok.lux@gmail.com>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Lux Sok <sok.lux@gmail.com>, 2023\n"
"Language-Team: Khmer (https://app.transifex.com/odoo/teams/41243/km/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: km\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "លក់តាមការបញ្ជាទិញ"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Sarah Park, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Sarah Park, 2023\n"
"Language-Team: Korean (https://app.transifex.com/odoo/teams/41243/ko/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ko\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "무료 배송 - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "판매 주문"

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Martin Trigaux, 2023\n"
"Language-Team: Lao (https://app.transifex.com/odoo/teams/41243/lo/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: lo\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "ໃບສັ່ງຊື້"

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Martin Trigaux, 2022\n"
"Language-Team: Lithuanian (https://app.transifex.com/odoo/teams/41243/lt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: lt\n"
"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Pardavimo užsakymas"

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Martin Trigaux, 2022\n"
"Language-Team: Latvian (https://app.transifex.com/odoo/teams/41243/lv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: lv\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Pasūtījums"

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Niyas Raphy, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Niyas Raphy, 2023\n"
"Language-Team: Malayalam (https://app.transifex.com/odoo/teams/41243/ml/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ml\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "സെയിൽസ് ഓർഡർ"

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Baskhuu Lodoikhuu <baskhuujacara@gmail.com>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Baskhuu Lodoikhuu <baskhuujacara@gmail.com>, 2022\n"
"Language-Team: Mongolian (https://app.transifex.com/odoo/teams/41243/mn/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: mn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Борлуулалтын захиалга"

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Mehjabin Farsana, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Mehjabin Farsana, 2022\n"
"Language-Team: Malay (https://app.transifex.com/odoo/teams/41243/ms/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ms\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Pesanan Jualan"

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Martin Trigaux, 2022\n"
"Language-Team: Norwegian Bokmål (https://app.transifex.com/odoo/teams/41243/nb/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: nb\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Salgsordre"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Erwin van der Ploeg <erwin@odooexperts.nl>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Erwin van der Ploeg <erwin@odooexperts.nl>, 2022\n"
"Language-Team: Dutch (https://app.transifex.com/odoo/teams/41243/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Gratis verzending - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Verkooporder"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-15 12:51+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Language-Team: Norwegian (https://app.transifex.com/odoo/teams/41243/no/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: no\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order_line
msgid "Sales Order Line"
msgstr ""

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Tadeusz Karpiński <tadeuszkarpinski@gmail.com>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Tadeusz Karpiński <tadeuszkarpinski@gmail.com>, 2023\n"
"Language-Team: Polish (https://app.transifex.com/odoo/teams/41243/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pl\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Darmowa wysyłka - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Zamówienie sprzedaży"

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Peter Lawrence Romão <peterromao@yahoo.co.uk>, 2025
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Peter Lawrence Romão <peterromao@yahoo.co.uk>, 2025\n"
"Language-Team: Portuguese (https://app.transifex.com/odoo/teams/41243/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pt\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Ordem de Venda"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Kevilyn Rosa, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Kevilyn Rosa, 2023\n"
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/odoo/teams/41243/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Entrega grátis - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Pedido de venda"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Cozmin Candea <office@terrabit.ro>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Cozmin Candea <office@terrabit.ro>, 2023\n"
"Language-Team: Romanian (https://app.transifex.com/odoo/teams/41243/ro/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ro\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Livrare gratuită - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Comandă de vânzare"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Константин Коровин <korovin74@gmail.com>, 2022
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Russian (https://app.transifex.com/odoo/teams/41243/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Бесплатная доставка - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Заказ на продажу"

View file

@ -0,0 +1,28 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2025-02-10 08:27+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr ""

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Martin Trigaux, 2022\n"
"Language-Team: Slovak (https://app.transifex.com/odoo/teams/41243/sk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sk\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Objednávka "

View file

@ -0,0 +1,32 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Martin Trigaux, 2022\n"
"Language-Team: Slovenian (https://app.transifex.com/odoo/teams/41243/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Prodajni nalog"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-15 12:51+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Language-Team: Albanian (https://app.transifex.com/odoo/teams/41243/sq/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sq\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order_line
msgid "Sales Order Line"
msgstr ""

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Dragan Vukosavljevic <dragan.vukosavljevic@gmail.com>, 2023
# コフスタジオ, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: コフスタジオ, 2024\n"
"Language-Team: Serbian (https://app.transifex.com/odoo/teams/41243/sr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sr\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Free Shipping - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Porudžbenica"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Chrille Hedberg <hedberg.chrille@gmail.com>, 2022
# Jakob Krabbe <jakob.krabbe@vertel.se>, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Jakob Krabbe <jakob.krabbe@vertel.se>, 2024\n"
"Language-Team: Swedish (https://app.transifex.com/odoo/teams/41243/sv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Fri frakt - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Order"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-15 12:51+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Language-Team: Swahili (https://app.transifex.com/odoo/teams/41243/sw/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sw\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order_line
msgid "Sales Order Line"
msgstr ""

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-12-15 12:51+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Language-Team: Tamil (https://app.transifex.com/odoo/teams/41243/ta/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ta\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order_line
msgid "Sales Order Line"
msgstr ""

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Wichanon Jamwutthipreecha, 2022
# Rasareeyar Lappiam, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Rasareeyar Lappiam, 2023\n"
"Language-Team: Thai (https://app.transifex.com/odoo/teams/41243/th/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: th\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "จัดส่งฟรี - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "คำสั่งขาย"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Halil, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Halil, 2023\n"
"Language-Team: Turkish (https://app.transifex.com/odoo/teams/41243/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Ücretsiz Sevkiyat - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Satış Siparişi"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Alina Lisnenko <alina.lisnenko@erp.co.ua>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Alina Lisnenko <alina.lisnenko@erp.co.ua>, 2023\n"
"Language-Team: Ukrainian (https://app.transifex.com/odoo/teams/41243/uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: uk\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Безкоштовна доставка - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Замовлення на продаж"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Thi Huong Nguyen, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Thi Huong Nguyen, 2024\n"
"Language-Team: Vietnamese (https://app.transifex.com/odoo/teams/41243/vi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: vi\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "Miễn phí vận chuyển - %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "Đơn bán hàng"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Emily Jia <eji@odoo.com>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Emily Jia <eji@odoo.com>, 2023\n"
"Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "免费装运-%s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "销售订单"

View file

@ -0,0 +1,33 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * sale_loyalty_delivery
#
# Translators:
# Martin Trigaux, 2022
# Tony Ng, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-10 08:27+0000\n"
"PO-Revision-Date: 2022-12-16 09:47+0000\n"
"Last-Translator: Tony Ng, 2023\n"
"Language-Team: Chinese (Taiwan) (https://app.transifex.com/odoo/teams/41243/zh_TW/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: sale_loyalty_delivery
#. odoo-python
#: code:addons/sale_loyalty_delivery/models/sale_order.py:0
#, python-format
msgid "Free Shipping - %s"
msgstr "免運費 %s"
#. module: sale_loyalty_delivery
#: model:ir.model,name:sale_loyalty_delivery.model_sale_order
msgid "Sales Order"
msgstr "銷售訂單"

View file

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import sale_order

View file

@ -0,0 +1,65 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import _, models
from odoo.fields import Command
class SaleOrder(models.Model):
_inherit = 'sale.order'
def _get_no_effect_on_threshold_lines(self):
self.ensure_one()
lines = self.order_line.filtered(lambda line:\
line.is_delivery or\
line.reward_id.reward_type == 'shipping')
return lines + super()._get_no_effect_on_threshold_lines()
def _get_lines_impacting_invoice_status(self):
return super()._get_lines_impacting_invoice_status().filtered(
lambda line: not line.is_reward_line
)
def _get_not_rewarded_order_lines(self):
"""Exclude delivery lines from consideration for reward points."""
order_line = super()._get_not_rewarded_order_lines()
return order_line.filtered(lambda line: not line.is_delivery)
def _get_reward_values_free_shipping(self, reward, coupon, **kwargs):
delivery_line = self.order_line.filtered(lambda l: l.is_delivery)
taxes = delivery_line.product_id.taxes_id.filtered(lambda t: t.company_id.id == self.company_id.id)
taxes = self.fiscal_position_id.map_tax(taxes)
max_discount = reward.discount_max_amount or float('inf')
return [{
'name': _('Free Shipping - %s', reward.description),
'reward_id': reward.id,
'coupon_id': coupon.id,
'points_cost': reward.required_points if not reward.clear_wallet else self._get_real_points_for_coupon(coupon),
'product_id': reward.discount_line_product_id.id,
'price_unit': -min(max_discount, delivery_line.price_unit or 0),
'product_uom_qty': 1,
'product_uom': reward.discount_line_product_id.uom_id.id,
'order_id': self.id,
'is_reward_line': True,
'sequence': max(self.order_line.filtered(lambda x: not x.is_reward_line).mapped('sequence'), default=0) + 1,
'tax_id': [(Command.CLEAR, 0, 0)] + [(Command.LINK, tax.id, False) for tax in taxes],
}]
def _get_reward_line_values(self, reward, coupon, **kwargs):
self.ensure_one()
if reward.reward_type == 'shipping':
self = self.with_context(lang=self._get_lang())
reward = reward.with_context(lang=self._get_lang())
return self._get_reward_values_free_shipping(reward, coupon, **kwargs)
return super()._get_reward_line_values(reward, coupon, **kwargs)
def _get_claimable_rewards(self, forced_coupons=None):
res = super()._get_claimable_rewards(forced_coupons)
if any(reward.reward_type == 'shipping' for reward in self.order_line.reward_id):
# Allow only one reward of type shipping at the same time
filtered_res = {}
for coupon, rewards in res.items():
filtered_rewards = rewards.filtered(lambda r: r.reward_type != 'shipping')
if filtered_rewards:
filtered_res[coupon] = filtered_rewards
res = filtered_res
return res

View file

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import test_free_shipping_reward

View file

@ -0,0 +1,491 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import Command
from odoo.addons.sale_loyalty.tests.common import TestSaleCouponCommon
from odoo.tests import Form, tagged
@tagged('post_install', '-at_install')
class TestSaleCouponProgramRules(TestSaleCouponCommon):
@classmethod
def setUpClass(cls):
super(TestSaleCouponProgramRules, cls).setUpClass()
cls.iPadMini = cls.env['product.product'].create({'name': 'Large Cabinet', 'list_price': 320.0})
tax_15pc_excl = cls.env['account.tax'].create({
'name': "15% Tax excl",
'amount_type': 'percent',
'amount': 15,
})
cls.product_delivery_poste = cls.env['product.product'].create({
'name': 'The Poste',
'type': 'service',
'categ_id': cls.env.ref('delivery.product_category_deliveries').id,
'sale_ok': False,
'purchase_ok': False,
'list_price': 20.0,
'taxes_id': [(6, 0, [tax_15pc_excl.id])],
})
cls.carrier = cls.env['delivery.carrier'].create({
'name': 'The Poste',
'fixed_price': 20.0,
'delivery_type': 'base_on_rule',
'product_id': cls.product_delivery_poste.id,
})
cls.env['delivery.price.rule'].create([{
'carrier_id': cls.carrier.id,
'max_value': 5,
'list_base_price': 20,
}, {
'carrier_id': cls.carrier.id,
'operator': '>=',
'max_value': 5,
'list_base_price': 50,
}, {
'carrier_id': cls.carrier.id,
'operator': '>=',
'max_value': 300,
'variable': 'price',
'list_base_price': 0,
}])
# Test a free shipping reward + some expected behavior
# (automatic line addition or removal)
def test_free_shipping_reward(self):
# Test case 1: The minimum amount is not reached, the reward should
# not be created
self.immediate_promotion_program.active = False
program = self.env['loyalty.program'].create({
'name': 'Free Shipping if at least 100 euros',
'trigger': 'auto',
'rule_ids': [(0, 0, {
'minimum_amount': 100,
'minimum_amount_tax_mode': 'incl',
})],
'reward_ids': [(0, 0, {
'reward_type': 'shipping',
})],
})
order = self.env['sale.order'].create({
'partner_id': self.steve.id,
})
# Price of order will be 5*1.15 = 5.75 (tax included)
order.write({'order_line': [
(0, False, {
'product_id': self.product_B.id,
'name': 'Product B',
'product_uom': self.uom_unit.id,
'product_uom_qty': 1.0,
})
]})
self._auto_rewards(order, program)
self.assertEqual(len(order.order_line.ids), 1)
# I add delivery cost in Sales order
delivery_wizard = Form(self.env['choose.delivery.carrier'].with_context({
'default_order_id': order.id,
'default_carrier_id': self.env['delivery.carrier'].search([])[1]
}))
choose_delivery_carrier = delivery_wizard.save()
choose_delivery_carrier.button_confirm()
self._auto_rewards(order, program)
self.assertEqual(len(order.order_line.ids), 2)
# Test Case 1b: amount is not reached but is on a threshold
# The amount of deliverable product + the one of the delivery exceeds the minimum amount
# yet the program shouldn't be applied
# Order price will be 5.75 + 81.74*1.15 = 99.75
order.write({'order_line': [
(0, False, {
'product_id': self.product_B.id,
'name': 'Product 1B',
'product_uom': self.uom_unit.id,
'product_uom_qty': 1.0,
'price_unit': 81.74,
})
]})
self._auto_rewards(order, program)
self.assertEqual(len(order.order_line.ids), 3)
# Test case 2: the amount is sufficient, the shipping should
# be reimbursed
order.write({'order_line': [
(0, False, {
'product_id': self.product_A.id,
'name': 'Product 1',
'product_uom': self.uom_unit.id,
'product_uom_qty': 1.0,
'price_unit': 0.30,
})
]})
self._auto_rewards(order, program)
self.assertEqual(len(order.order_line.ids), 5)
# Test case 3: the amount is not sufficient now, the reward should be removed
order.write({'order_line': [
(2, order.order_line.filtered(lambda line: line.product_id.id == self.product_A.id).id, False)
]})
self._auto_rewards(order, program)
self.assertEqual(len(order.order_line.ids), 3)
def test_shipping_cost(self):
# Free delivery should not be taken into account when checking for minimum required threshold
p_minimum_threshold_free_delivery = self.env['loyalty.program'].create({
'name': 'free shipping if > 872 tax excl',
'trigger': 'auto',
'rule_ids': [(0, 0, {
'minimum_amount': 872,
})],
'reward_ids': [(0, 0, {
'reward_type': 'shipping',
})]
})
p_2 = self.env['loyalty.program'].create({
'name': '10% reduction if > 872 tax excl',
'trigger': 'auto',
'rule_ids': [(0, 0, {
'minimum_amount': 872,
})],
'reward_ids': [(0, 0, {
'reward_type': 'discount',
'discount': 10,
'discount_mode': 'percent',
'discount_applicability': 'order',
})]
})
programs = (p_minimum_threshold_free_delivery | p_2)
order = self.empty_order
self.iPadMini.taxes_id = self.tax_10pc_incl
sol1 = self.env['sale.order.line'].create({
'product_id': self.iPadMini.id,
'name': 'Large Cabinet',
'product_uom_qty': 3.0,
'order_id': order.id,
})
self._auto_rewards(order, programs)
self.assertEqual(len(order.order_line.ids), 3, "We should get the 10% discount line since we bought 872.73$ and a free shipping line with a value of 0")
self.assertEqual(order.order_line.filtered(lambda l: l.reward_id.reward_type == 'shipping').price_unit, 0)
self.assertEqual(order.amount_total, 960 * 0.9)
order.carrier_id = self.env['delivery.carrier'].search([])[1]
# I add delivery cost in Sales order
delivery_wizard = Form(self.env['choose.delivery.carrier'].with_context({
'default_order_id': order.id,
'default_carrier_id': self.env['delivery.carrier'].search([])[1]
}))
choose_delivery_carrier = delivery_wizard.save()
choose_delivery_carrier.button_confirm()
self._auto_rewards(order, programs)
self.assertEqual(len(order.order_line.ids), 4, "We should get both rewards regardless of applying order.")
p_minimum_threshold_free_delivery.sequence = 10
(order.order_line - sol1).unlink()
# I add delivery cost in Sales order
delivery_wizard = Form(self.env['choose.delivery.carrier'].with_context({
'default_order_id': order.id,
'default_carrier_id': self.env['delivery.carrier'].search([])[1]
}))
choose_delivery_carrier = delivery_wizard.save()
choose_delivery_carrier.button_confirm()
self._auto_rewards(order, programs)
self.assertEqual(len(order.order_line.ids), 4, "We should get both rewards regardless of applying order.")
def test_shipping_cost_numbers(self):
# Free delivery should not be taken into account when checking for minimum required threshold
p_1 = self.env['loyalty.program'].create({
'name': 'Free shipping if > 872 tax excl',
'trigger': 'with_code',
'rule_ids': [(0, 0, {
'mode': 'with_code',
'code': 'free_shipping',
'minimum_amount': 872,
})],
'reward_ids': [(0, 0, {
'reward_type': 'shipping',
})],
})
p_2 = self.env['loyalty.program'].create({
'name': 'Buy 4 large cabinet, get one for free',
'trigger': 'auto',
'rule_ids': [(0, 0, {
'product_ids': self.iPadMini,
'minimum_qty': 4,
})],
'reward_ids': [(0, 0, {
'reward_type': 'product',
'reward_product_id': self.iPadMini.id,
'reward_product_qty': 1,
'required_points': 1,
})],
})
programs = (p_1 | p_2)
order = self.empty_order
self.iPadMini.taxes_id = self.tax_10pc_incl
sol1 = self.env['sale.order.line'].create({
'product_id': self.iPadMini.id,
'name': 'Large Cabinet',
'product_uom_qty': 3.0,
'order_id': order.id,
})
# I add delivery cost in Sales order
delivery_wizard = Form(self.env['choose.delivery.carrier'].with_context({
'default_order_id': order.id,
'default_carrier_id': self.carrier.id
}))
choose_delivery_carrier = delivery_wizard.save()
choose_delivery_carrier.button_confirm()
self._auto_rewards(order, programs)
self.assertEqual(len(order.order_line.ids), 2)
self.assertEqual(order.reward_amount, 0)
# Shipping is 20 + 15%tax
self.assertEqual(sum([line.price_total for line in order._get_no_effect_on_threshold_lines()]), 23)
self.assertEqual(order.amount_untaxed, 872.73 + 20)
self._apply_promo_code(order, 'free_shipping')
self._auto_rewards(order, programs)
self.assertEqual(len(order.order_line.ids), 3, "We should get the delivery line and the free delivery since we are below 872.73$")
self.assertEqual(order.reward_amount, -20)
self.assertEqual(sum([line.price_total for line in order._get_no_effect_on_threshold_lines()]), 0)
self.assertEqual(order.amount_untaxed, 872.73)
sol1.product_uom_qty = 4
self._auto_rewards(order, programs)
self.assertEqual(len(order.order_line.ids), 4, "We should get a free Large Cabinet")
self.assertEqual(order.reward_amount, -20 - 320)
self.assertEqual(sum([line.price_total for line in order._get_no_effect_on_threshold_lines()]), 0)
self.assertEqual(order.amount_untaxed, 1163.64)
programs |= self.env['loyalty.program'].create({
'name': '20% reduction on large cabinet in cart',
'trigger': 'auto',
'rule_ids': [(0, 0, {})],
'reward_ids': [(0, 0, {
'reward_type': 'discount',
'discount': 20,
'discount_mode': 'percent',
'discount_applicability': 'cheapest',
})]
})
self._auto_rewards(order, programs)
# 872.73 - (20% of 1 iPad) = 872.73 - 58.18 = 814.55
self.assertAlmostEqual(order.amount_untaxed, 1105.46, 2, "One large cabinet should be discounted by 20%")
def test_free_shipping_reward_last_line(self):
"""
The free shipping reward cannot be removed if it is the last item in the sale order.
However, we calculate its sequence so that it is the last item in the sale order.
This can create an error if a default sequence is not determined.
"""
self.immediate_promotion_program.active = False
# Create a loyalty program
loyalty_program = self.env['loyalty.program'].create({
'name': 'GIFT Free Shipping',
'program_type': 'loyalty',
'applies_on': 'both',
'trigger': 'auto',
'rule_ids': [(0, 0, {
'reward_point_mode': 'money',
'reward_point_amount': 1,
})],
'reward_ids': [(0, 0, {
'reward_type': 'shipping',
'required_points': 100,
})],
})
# Add points to a partner to trigger the promotion
loyalty_card = self.env['loyalty.card'].create({
'program_id': loyalty_program.id,
'partner_id': self.steve.id,
'points': 250,
})
order = self.env['sale.order'].create({
'partner_id': self.steve.id,
})
# Check if we can claim the free shipping reward
order._update_programs_and_rewards()
claimable_rewards = order._get_claimable_rewards()
self.assertEqual(len(claimable_rewards), 1)
# Try to apply the loyalty card to the sale order
self._apply_promo_code(order, loyalty_card.code)
# Check if there is an error in the sequence
# via `_apply_program_reward` in `apply_promo_code` method
def test_nothing_delivered_nothing_to_invoice(self):
program = self.env['loyalty.program'].create({
'name': '10% reduction on all orders',
'trigger': 'auto',
'program_type': 'promotion',
'rule_ids': [Command.create({
'minimum_amount': 50,
})],
'reward_ids': [Command.create({
'reward_type': 'discount',
'discount': 10,
'discount_mode': 'percent',
'discount_applicability': 'order',
})]
})
product = self.env['product.product'].create({
'name': 'Test product',
'type': 'product',
'list_price': 200.0,
'invoice_policy': 'delivery',
})
order = self.empty_order
self.env['sale.order.line'].create({
'product_id': product.id,
'order_id': order.id,
})
self._auto_rewards(order, program)
self.assertNotEqual(order.reward_amount, 0)
self.assertEqual(order.invoice_status, 'no')
delivery_wizard = Form(self.env['choose.delivery.carrier'].with_context({
'default_order_id': order.id,
'default_carrier_id': self.carrier.id
}))
choose_delivery_carrier = delivery_wizard.save()
choose_delivery_carrier.button_confirm()
order.action_confirm()
self.assertEqual(order.delivery_set, True)
self.assertEqual(order.invoice_status, 'no')
def test_delivery_shant_count_toward_quantity_bought(self):
# Create promotion: 10% for everything
discount_program = self.env['loyalty.program'].create({
'name': '10 percent off order with min. 2 products',
'trigger': 'auto',
'program_type': 'promotion',
'applies_on': 'current',
'rule_ids': [(0, 0, {
'minimum_qty': 2,
'minimum_amount':0,
})],
'reward_ids': [(0, 0, {
'reward_type': 'discount',
'discount_mode': 'percent',
'discount': 10.0,
'discount_applicability': 'order',
})],
})
# Create an order including: product and delivery
order = self.empty_order
self.env['sale.order.line'].create({
'product_id': self.iPadMini.id,
'name': self.iPadMini.name,
'product_uom_qty': 1.0,
'order_id': order.id,
})
self.env['sale.order.line'].create({
'product_id': self.product_delivery_poste.id,
'name': 'Free delivery charges\nFree Shipping',
'product_uom_qty': 1.0,
'order_id': order.id,
'is_delivery': True,
})
# Calculate promotions
self._auto_rewards(order, discount_program)
# Make sure the promotion is NOT added
err_msg = "No reward lines should be created as the delivery line shouldn't be included in the promotion calculation"
self.assertEqual(len(order.order_line.ids), 2, err_msg)
def test_free_shipping_should_be_removed_when_rules_are_not_met(self):
p_1 = self.env['loyalty.program'].create({
'name': 'Free shipping if > 872 tax excl',
'trigger': 'with_code',
'rule_ids': [(0, 0, {
'mode': 'with_code',
'code': 'free_shipping',
'minimum_amount': 872,
})],
'reward_ids': [(0, 0, {
'reward_type': 'shipping',
})],
})
programs = (p_1)
order = self.empty_order
self.iPadMini.taxes_id = self.tax_10pc_incl
sol1 = self.env['sale.order.line'].create({
'product_id': self.iPadMini.id,
'name': 'Large Cabinet',
'product_uom_qty': 3.0,
'order_id': order.id,
})
# I add delivery cost in Sales order
delivery_wizard = Form(self.env['choose.delivery.carrier'].with_context({
'default_order_id': order.id,
'default_carrier_id': self.carrier.id
}))
choose_delivery_carrier = delivery_wizard.save()
choose_delivery_carrier.button_confirm()
self._auto_rewards(order, programs)
self.assertEqual(len(order.order_line.ids), 2)
self.assertEqual(order.reward_amount, 0)
# Shipping is 20 + 15%tax
self.assertEqual(sum(line.price_total for line in order._get_no_effect_on_threshold_lines()), 23)
self.assertEqual(order.amount_untaxed, 872.73 + 20)
self._apply_promo_code(order, 'free_shipping')
self._auto_rewards(order, programs)
self.assertEqual(len(order.order_line.ids), 3, "We should get the delivery line and the free delivery since we are below 872.73$")
self.assertEqual(order.reward_amount, -20)
self.assertEqual(sum(line.price_total for line in order._get_no_effect_on_threshold_lines()), 0)
self.assertEqual(order.amount_untaxed, 872.73)
sol1.product_uom_qty = 1
self._auto_rewards(order, programs)
self.assertEqual(len(order.order_line.ids), 2, "We should loose the free delivery reward since we are above 872.73$")
self.assertEqual(order.reward_amount, 0)
def test_discount_reward_claimable_when_shipping_reward_already_claimed_from_same_coupon(self):
"""
Check that a discount reward is still claimable after the shipping reward is claimed.
"""
program = self.env['loyalty.program'].create({
'name': '10% Discount & Shipping',
'applies_on': 'current',
'trigger': 'with_code',
'program_type': 'promotion',
'rule_ids': [Command.create({'mode': 'with_code', 'code': '10PERCENT&SHIPPING'})],
'reward_ids': [
Command.create({
'reward_type': 'shipping',
'reward_product_qty': 1,
}),
Command.create({
'reward_type': 'discount',
'discount': 10,
'discount_mode': 'percent',
'discount_applicability': 'specific',
}),
],
})
coupon = self.env['loyalty.card'].create({
'program_id': program.id, 'points': 20, 'code': 'GIFT_CARD'
})
order = self.env['sale.order'].create({
'partner_id': self.partner_a.id,
'order_line': [Command.create({'product_id': self.product_B.id})]
})
ship_reward = program.reward_ids.filtered(lambda reward: reward.reward_type == 'shipping')
discount_reward = program.reward_ids - ship_reward
order._apply_program_reward(ship_reward, coupon)
rewards = order._get_claimable_rewards()[coupon]
msg = "The discount reward should still be applicable as only the shipping one was claimed."
self.assertEqual(rewards, discount_reward, msg)