Wolfgang Pichler
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 4897 additions and 0 deletions
-
105pos_loyalty/README.rst
-
3pos_loyalty/__init__.py
-
36pos_loyalty/__manifest__.py
-
8pos_loyalty/demo/templates.xml
-
523pos_loyalty/i18n/es.po
-
504pos_loyalty/i18n/fr.po
-
498pos_loyalty/i18n/hr_HR.po
-
497pos_loyalty/i18n/it.po
-
498pos_loyalty/i18n/nl_NL.po
-
483pos_loyalty/i18n/pos_loyalty.pot
-
9pos_loyalty/models/__init__.py
-
30pos_loyalty/models/loyalty_program.py
-
73pos_loyalty/models/loyalty_reward.py
-
34pos_loyalty/models/loyalty_rule.py
-
14pos_loyalty/models/pos_config.py
-
30pos_loyalty/models/pos_order.py
-
20pos_loyalty/models/pos_order_line.py
-
13pos_loyalty/models/res_partner.py
-
4pos_loyalty/readme/CONFIGURE.rst
-
3pos_loyalty/readme/CONTRIBUTORS.rst
-
6pos_loyalty/readme/DESCRIPTION.rst
-
11pos_loyalty/readme/USAGE.rst
-
7pos_loyalty/security/ir.model.access.csv
-
BINpos_loyalty/static/description/icon.png
-
449pos_loyalty/static/description/index.html
-
21pos_loyalty/static/src/css/pos.css
-
477pos_loyalty/static/src/js/pos.js
-
170pos_loyalty/static/src/js/tests.js
-
85pos_loyalty/static/src/xml/pos.xml
-
2pos_loyalty/tests/__init__.py
-
68pos_loyalty/tests/test_pos_loyalty.py
-
83pos_loyalty/views/loyalty_program_view.xml
-
37pos_loyalty/views/loyalty_reward_view.xml
-
31pos_loyalty/views/loyalty_rule_view.xml
-
23pos_loyalty/views/pos_config_view.xml
-
15pos_loyalty/views/pos_order_view.xml
-
18pos_loyalty/views/res_partner_view.xml
-
9pos_loyalty/views/templates.xml
@ -0,0 +1,105 @@ |
|||
=============== |
|||
Loyalty Program |
|||
=============== |
|||
|
|||
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|||
!! This file is generated by oca-gen-addon-readme !! |
|||
!! changes will be overwritten. !! |
|||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|||
|
|||
.. |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/11.0/pos_loyalty |
|||
:alt: OCA/pos |
|||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png |
|||
:target: https://translation.odoo-community.org/projects/pos-11-0/pos-11-0-pos_loyalty |
|||
:alt: Translate me on Weblate |
|||
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png |
|||
:target: https://runbot.odoo-community.org/runbot/184/11.0 |
|||
:alt: Try me on Runbot |
|||
|
|||
|badge1| |badge2| |badge3| |badge4| |badge5| |
|||
|
|||
This module allows you to define a loyalty program in the point of sale, |
|||
where the customers earn loyalty points and get rewards. |
|||
|
|||
This module is a forward-port to v10 of the pos_loyalty module from Odoo's |
|||
saas-6 branch. |
|||
The functionality was moved to the Enterprise edition in later versions. |
|||
|
|||
**Table of contents** |
|||
|
|||
.. contents:: |
|||
:local: |
|||
|
|||
Configuration |
|||
============= |
|||
|
|||
To use this module, you need to: |
|||
|
|||
* Go to *Point of Sale > Configuration > Loyalty Programs* and define a new loyalty program with specific rules and rewards. |
|||
* Assign the loyalty program to the desired Point of Sale. |
|||
|
|||
Usage |
|||
===== |
|||
|
|||
The Loyalty Program defines rules for acquiring points and rewards on which they can be spent. |
|||
|
|||
Rules can be defined globally for all products (fields on loyalty.program) and / or rules that are applied only on specific product or PoS category (loyalty.rule records) on a *points per product sold* or *points per currency spent* basis. The specific rules (loyalty.rule) can be defined as cumulative, which means that they will be aggregated with other matching rules (loyalty.rule records and loyalty.program fields). In the case of non-cumulative rules only the points from that one matching rule are used. Additionally, *fixed points per order* can be added which are applied regardless of whether or not cumulative or non-cumulative rules were applied also. |
|||
|
|||
Rewards can be of three types: |
|||
|
|||
* *Gift* - give a single unit of product for free |
|||
* *Discount* - give a discount to the whole order. It should be added at the end of the order so that the correct total price is used. |
|||
* *Resale* - allow for customer to sell back his earned points. These are calculated by setting the price on the Resale product (*resale_product.list_price* * *customer.loyalty_points*) |
|||
|
|||
All rewards can define how many points they cost (point_cost) and how many are needed so that the customer can become eligable for the reward (minimum_points). for Gift and Discount rewards minimum_points are considered only if they are greater then the point_cost for that reward (minimum_points > point_cost). For Resale products only minimum_points can be used. |
|||
|
|||
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 smashing it by providing a detailed and welcomed |
|||
`feedback <https://github.com/OCA/pos/issues/new?body=module:%20pos_loyalty%0Aversion:%2011.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 |
|||
~~~~~~~ |
|||
|
|||
* OpenERP SA |
|||
* RGB Consulting SL |
|||
* Lambda IS |
|||
|
|||
Contributors |
|||
~~~~~~~~~~~~ |
|||
|
|||
* RGB Consulting SL (http://www.rgbconsulting.com) |
|||
* Forward-port from Odoo SA saas-6 branch |
|||
* Kiril Vangelovski <kiril@lambda-is.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/11.0/pos_loyalty>`_ project on GitHub. |
|||
|
|||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. |
@ -0,0 +1,3 @@ |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
from . import models |
@ -0,0 +1,36 @@ |
|||
# Copyright 2004-2010 OpenERP SA |
|||
# Copyright 2017 RGB Consulting S.L. (https://www.rgbconsulting.com) |
|||
# Copyright 2018 Lambda IS DOOEL <https://www.lambda-is.com> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
{ |
|||
'name': 'Loyalty Program', |
|||
'version': '12.0.1.0.0', |
|||
'category': 'Point of Sale', |
|||
'license': 'AGPL-3', |
|||
'author': "OpenERP SA, " |
|||
"RGB Consulting SL, " |
|||
"Lambda IS, " |
|||
"Odoo Community Association (OCA)", |
|||
'website': "https://odoo-community.org/", |
|||
'depends': ['point_of_sale'], |
|||
'demo': [ |
|||
'demo/templates.xml', |
|||
], |
|||
'data': [ |
|||
'security/ir.model.access.csv', |
|||
'views/templates.xml', |
|||
'views/loyalty_program_view.xml', |
|||
'views/loyalty_reward_view.xml', |
|||
'views/loyalty_rule_view.xml', |
|||
'views/pos_config_view.xml', |
|||
'views/pos_order_view.xml', |
|||
'views/res_partner_view.xml', |
|||
], |
|||
|
|||
'qweb': [ |
|||
'static/src/xml/pos.xml', |
|||
], |
|||
|
|||
'installable': True, |
|||
} |
@ -0,0 +1,8 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<template id="assets_demo" inherit_id="point_of_sale.assets"> |
|||
<xpath expr="." position="inside"> |
|||
<script type="text/javascript" src="/pos_loyalty/static/src/js/tests.js"></script> |
|||
</xpath> |
|||
</template> |
|||
</odoo> |
@ -0,0 +1,523 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_loyalty |
|||
# |
|||
# Translators: |
|||
# OCA Transbot <transbot@odoo-community.org>, 2017 |
|||
# enjolras <yo@miguelrevilla.com>, 2017 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 10.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2018-03-01 02:01+0000\n" |
|||
"PO-Revision-Date: 2018-03-01 02:01+0000\n" |
|||
"Last-Translator: enjolras <yo@miguelrevilla.com>, 2017\n" |
|||
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" |
|||
"Language: es\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_order |
|||
msgid "" |
|||
"Amount of loyalty points given to the customer for each point of sale order" |
|||
msgstr "" |
|||
"Cantidad de puntos de fidelidad añadidos al cliente por cada pedido del " |
|||
"punto de venta" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_product |
|||
msgid "Amount of loyalty points given to the customer per product sold" |
|||
msgstr "" |
|||
"Cantidad de puntos de fidelidad añadidos al cliente por producto vendido" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_currency |
|||
msgid "Amount of loyalty points given to the customer per sold currency" |
|||
msgstr "Cantidad de puntos de fidelidad añadidos al cliente por moneda vendida" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_pp_currency |
|||
msgid "Amount of points earned per currency" |
|||
msgstr "Cantidad de puntos ganados por moneda" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_pp_product |
|||
msgid "Amount of points earned per product" |
|||
msgstr "Cantidad de puntos ganados por producto" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.rule,type:0 |
|||
msgid "Category" |
|||
msgstr "Categoría" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,help:pos_loyalty.loyalty_program_action |
|||
msgid "Click create to define a Loyalty Program." |
|||
msgstr "Haga clic en crear para definir un Programa de Fidelización" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_res_partner |
|||
msgid "Contact" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_point_cost |
|||
msgid "Cost of the reward per monetary unit discounted" |
|||
msgstr "Coste de la recompensa por unidad monetaria descontada" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_create_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_create_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_create_uid |
|||
msgid "Created by" |
|||
msgstr "Creado por" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_create_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_create_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_create_date |
|||
msgid "Created on" |
|||
msgstr "Creado el" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_cumulative |
|||
msgid "Cumulative" |
|||
msgstr "Acumulativo" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Discount" |
|||
msgstr "Descuento" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount_product_id |
|||
msgid "Discount Product" |
|||
msgstr "Producto de descuento" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount_max |
|||
msgid "Discount limit" |
|||
msgstr "Límite de descuento" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:64 |
|||
#, python-format |
|||
msgid "Discount product field is mandatory for discount rewards" |
|||
msgstr "" |
|||
"El campo Producto de descuento es obligatorio para las recompensas de tipo " |
|||
"descuento." |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_display_name |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_display_name |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_display_name |
|||
msgid "Display Name" |
|||
msgstr "Nombre a mostrar" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Gift" |
|||
msgstr "Regalo" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_gift_product_id |
|||
msgid "Gift Product" |
|||
msgstr "Producto de regalo" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:57 |
|||
#, python-format |
|||
msgid "Gift product field is mandatory for gift rewards" |
|||
msgstr "" |
|||
"El campo Producto de regalo es obligatorio para las recompensas de tipo " |
|||
"regalo" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_id |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program___last_update |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward___last_update |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule___last_update |
|||
msgid "Last Modified on" |
|||
msgstr "Última modificación el" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_write_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_write_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_write_uid |
|||
msgid "Last Updated by" |
|||
msgstr "Última actualización por" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_write_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_write_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_write_date |
|||
msgid "Last Updated on" |
|||
msgstr "Última actualización el" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_order_line |
|||
#, fuzzy |
|||
msgid "Lines of Point of Sale Orders" |
|||
msgstr "Pedidos del TPV" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_pos_order_loyalty_points |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_res_partner_loyalty_points |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_res_users_loyalty_points |
|||
msgid "Loyalty Points" |
|||
msgstr "Puntos de fidelidad" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_pos_config_loyalty_id |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Loyalty Program" |
|||
msgstr "Programa de fidelización" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
#, fuzzy |
|||
msgid "Loyalty Program (OCA)" |
|||
msgstr "Programa de fidelización" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_name |
|||
msgid "Loyalty Program Name" |
|||
msgstr "Nombre programa de fidelización" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,name:pos_loyalty.loyalty_program_action |
|||
#: model:ir.ui.menu,name:pos_loyalty.loyalty_program_menu |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_tree_view |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.partner_property_form_view |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_order_form_view |
|||
msgid "Loyalty Programs" |
|||
msgstr "Programas de fidelización" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,help:pos_loyalty.loyalty_program_action |
|||
msgid "" |
|||
"Loyalty Programs allow you customers to earn points\n" |
|||
" and rewards when purchasing from your shops." |
|||
msgstr "" |
|||
"Los programas de fidelización le permiten a los clientes ganar puntos\n" |
|||
" y recompensas al comprar en tus tiendas." |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_reward_form_view |
|||
msgid "Loyalty Reward" |
|||
msgstr "Recompensa de fidelización" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_rule_form_view |
|||
msgid "Loyalty Rule" |
|||
msgstr "Regla de fidelización" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_rounding |
|||
msgid "Loyalty point amounts will be rounded to multiples of this value" |
|||
msgstr "Los puntos de fidelidad se redondearán a múltiplos de este valor" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
#, fuzzy |
|||
msgid "Loyalty program that will be available in this PoS" |
|||
msgstr "El programa de fidelización al que pertenece esta regla" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount_max |
|||
msgid "Maximum discounted amount allowed forthis discount reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_minimum_points |
|||
msgid "Minimum Points" |
|||
msgstr "Puntos mínimos" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_minimum_points |
|||
msgid "" |
|||
"Minimum amount of points the customer must have to qualify for this reward" |
|||
msgstr "Cantidad mínima de puntos de cliente para acceder a esta recompensa" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:379 |
|||
#, python-format |
|||
msgid "No Rewards Available" |
|||
msgstr "No hay recompensas disponibles" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:393 |
|||
#, python-format |
|||
msgid "Please select a reward" |
|||
msgstr "Selecciona una recompensa" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_point_cost |
|||
msgid "Point Cost" |
|||
msgstr "Coste Puntos" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_point_product_id |
|||
msgid "Point Product" |
|||
msgstr "Producto Punto" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_order |
|||
msgid "Point of Sale Orders" |
|||
msgstr "Pedidos del TPV" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:72 |
|||
#, python-format |
|||
msgid "Point product field is mandatory for point resale rewards" |
|||
msgstr "" |
|||
"El campo Producto Punto es obligatorio para recompensas de reventa de puntos" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:6 |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:71 |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:81 |
|||
#, python-format |
|||
msgid "Points" |
|||
msgstr "Puntos" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_rounding |
|||
msgid "Points Rounding" |
|||
msgstr "Redondeo Puntos" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:57 |
|||
#, python-format |
|||
msgid "Points Spent" |
|||
msgstr "Puntos Gastados" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:54 |
|||
#, python-format |
|||
msgid "Points Won" |
|||
msgstr "Puntos Ganados" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_currency |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_pp_currency |
|||
msgid "Points per currency" |
|||
msgstr "Puntos por moneda" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_order |
|||
msgid "Points per order" |
|||
msgstr "Puntos por venta" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_product |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_pp_product |
|||
msgid "Points per product" |
|||
msgstr "Puntos por producto" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.rule,type:0 |
|||
msgid "Product" |
|||
msgstr "Producto" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_point_product_id |
|||
msgid "Product that represents a point that is sold by the customer" |
|||
msgstr "Producto que representa un punto vendido por el cliente" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Resale" |
|||
msgstr "Reventa" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_name |
|||
msgid "Reward Name" |
|||
msgstr "Nombre recompensa" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Reward the customer with gifts or discounts for loyalty points" |
|||
msgstr "" |
|||
"Recompensar al cliente con regalos o descuentos por puntos de fidelidad" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:25 |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_reward_ids |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
#, python-format |
|||
msgid "Rewards" |
|||
msgstr "Recompensas" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_name |
|||
msgid "Rule Name" |
|||
msgstr "Nombre de regla" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_rule_ids |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Rules" |
|||
msgstr "Reglas" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "" |
|||
"Rules define how loyalty points are earned for specific products or " |
|||
"categories" |
|||
msgstr "" |
|||
"Las reglas definen cómo se obtienen puntos de fidelidad para productos o " |
|||
"categorías específicos" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_category_id |
|||
msgid "Target Category" |
|||
msgstr "Categoría afectada" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_product_id |
|||
msgid "Target Product" |
|||
msgstr "Producto afectado" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_loyalty_program_id |
|||
msgid "The Loyalty Program this reward belongs to" |
|||
msgstr "El programa de fidelización al que pertenece esta recompensa" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_loyalty_program_id |
|||
msgid "The Loyalty Program this rule belongs to" |
|||
msgstr "El programa de fidelización al que pertenece esta regla" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_pos_order_loyalty_points |
|||
msgid "The amount of Loyalty points awarded to the customer with this order" |
|||
msgstr "" |
|||
"La cantidad de puntos de fidelidad que el cliente obtiene con este pedido" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_category_id |
|||
msgid "The category affected by this rule" |
|||
msgstr "La categoría afectada por esta regla" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_type |
|||
msgid "The concept this rule applies to" |
|||
msgstr "El concepto al que aplica esta regla" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount |
|||
msgid "The discount percentage" |
|||
msgstr "El porcentaje de descuento" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_res_partner_loyalty_points |
|||
#: model:ir.model.fields,help:pos_loyalty.field_res_users_loyalty_points |
|||
msgid "The loyalty points the user won as part of a Loyalty Program" |
|||
msgstr "" |
|||
"Los puntos de fidelidad que el usuario ganó como parte de un Programa de " |
|||
"Fidelización" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_pos_config_loyalty_id |
|||
msgid "The loyalty program used by this Point of Sale" |
|||
msgstr "El programa de fidelización utilizado en este Punto de Venta" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_cumulative |
|||
msgid "" |
|||
"The points from this rule will be added to points won from other rules with " |
|||
"the same concept" |
|||
msgstr "" |
|||
"Los puntos de esta regla se añadirán a los puntos ganados en otras reglas " |
|||
"con el mismo concepto" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_product_id |
|||
msgid "The product affected by this rule" |
|||
msgstr "El producto afectado por esta regla" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_gift_product_id |
|||
msgid "The product given as a reward" |
|||
msgstr "El producto utilizado como recompensa" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount_product_id |
|||
msgid "The product used to apply discounts" |
|||
msgstr "El producto utilizado para aplicar descuentos" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:380 |
|||
#, python-format |
|||
msgid "" |
|||
"There are no rewards available for this customer as part of the loyalty " |
|||
"program" |
|||
msgstr "" |
|||
"No hay recompensas disponibles para este cliente como parte de este programa " |
|||
"de fidelización" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:60 |
|||
#, python-format |
|||
msgid "Total Points" |
|||
msgstr "Total Puntos" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_type |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_type |
|||
msgid "Type" |
|||
msgstr "Tipo" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_type |
|||
msgid "Type of the reward" |
|||
msgstr "Tipo de recompensa" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "abc" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_program |
|||
msgid "loyalty.program" |
|||
msgstr "loyalty.program" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_reward |
|||
msgid "loyalty.reward" |
|||
msgstr "loyalty.reward" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_rule |
|||
msgid "loyalty.rule" |
|||
msgstr "loyalty.rule" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_config |
|||
msgid "pos.config" |
|||
msgstr "pos.config" |
|||
|
|||
#~ msgid "Partner" |
|||
#~ msgstr "Empresa" |
@ -0,0 +1,504 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_loyalty |
|||
# |
|||
# Translators: |
|||
# leemannd <denis.leemann@camptocamp.com>, 2017 |
|||
# OCA Transbot <transbot@odoo-community.org>, 2018 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 10.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2018-03-01 02:01+0000\n" |
|||
"PO-Revision-Date: 2018-03-01 02:01+0000\n" |
|||
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2018\n" |
|||
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" |
|||
"Language: fr\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: nplurals=2; plural=(n > 1);\n" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_order |
|||
msgid "" |
|||
"Amount of loyalty points given to the customer for each point of sale order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_product |
|||
msgid "Amount of loyalty points given to the customer per product sold" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_currency |
|||
msgid "Amount of loyalty points given to the customer per sold currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_pp_currency |
|||
msgid "Amount of points earned per currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_pp_product |
|||
msgid "Amount of points earned per product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.rule,type:0 |
|||
msgid "Category" |
|||
msgstr "Catégorie" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,help:pos_loyalty.loyalty_program_action |
|||
msgid "Click create to define a Loyalty Program." |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_res_partner |
|||
msgid "Contact" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_point_cost |
|||
msgid "Cost of the reward per monetary unit discounted" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_create_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_create_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_create_uid |
|||
msgid "Created by" |
|||
msgstr "Créé par" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_create_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_create_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_create_date |
|||
msgid "Created on" |
|||
msgstr "Créé le" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_cumulative |
|||
msgid "Cumulative" |
|||
msgstr "Cumulatif" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Discount" |
|||
msgstr "Rabaias" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount_product_id |
|||
msgid "Discount Product" |
|||
msgstr "Produit Soldé" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount_max |
|||
msgid "Discount limit" |
|||
msgstr "Limite de Rabais" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:64 |
|||
#, python-format |
|||
msgid "Discount product field is mandatory for discount rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_display_name |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_display_name |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_display_name |
|||
msgid "Display Name" |
|||
msgstr "Nom Affiché" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Gift" |
|||
msgstr "Cadeau" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_gift_product_id |
|||
msgid "Gift Product" |
|||
msgstr "Produit Cadeau" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:57 |
|||
#, python-format |
|||
msgid "Gift product field is mandatory for gift rewards" |
|||
msgstr "" |
|||
"Le champs 'produit cadeau' est nécessaire pour les cadeau de récompense" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_id |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program___last_update |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward___last_update |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule___last_update |
|||
msgid "Last Modified on" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_write_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_write_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_write_uid |
|||
msgid "Last Updated by" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_write_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_write_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_write_date |
|||
msgid "Last Updated on" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_order_line |
|||
msgid "Lines of Point of Sale Orders" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_pos_order_loyalty_points |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_res_partner_loyalty_points |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_res_users_loyalty_points |
|||
msgid "Loyalty Points" |
|||
msgstr "Points de fidélité" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_pos_config_loyalty_id |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Loyalty Program" |
|||
msgstr "Programme de Fidélité" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
#, fuzzy |
|||
msgid "Loyalty Program (OCA)" |
|||
msgstr "Programme de Fidélité" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_name |
|||
msgid "Loyalty Program Name" |
|||
msgstr "Nom du Programme de Fidélité" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,name:pos_loyalty.loyalty_program_action |
|||
#: model:ir.ui.menu,name:pos_loyalty.loyalty_program_menu |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_tree_view |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.partner_property_form_view |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_order_form_view |
|||
msgid "Loyalty Programs" |
|||
msgstr "Progammes de Fidélité" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,help:pos_loyalty.loyalty_program_action |
|||
msgid "" |
|||
"Loyalty Programs allow you customers to earn points\n" |
|||
" and rewards when purchasing from your shops." |
|||
msgstr "" |
|||
"Les programmes de fidélité permettent aux clients de gagner des points\n" |
|||
"et des cadeaux lors de leurs achats sur vos sites internet." |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_reward_form_view |
|||
msgid "Loyalty Reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_rule_form_view |
|||
msgid "Loyalty Rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_rounding |
|||
msgid "Loyalty point amounts will be rounded to multiples of this value" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "Loyalty program that will be available in this PoS" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount_max |
|||
msgid "Maximum discounted amount allowed forthis discount reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_minimum_points |
|||
msgid "Minimum Points" |
|||
msgstr "Points Minimum" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_minimum_points |
|||
msgid "" |
|||
"Minimum amount of points the customer must have to qualify for this reward" |
|||
msgstr "Le minimum de points requis pour avoir le droit à cette récompense" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:379 |
|||
#, python-format |
|||
msgid "No Rewards Available" |
|||
msgstr "Pas de récompenses disponible" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:393 |
|||
#, python-format |
|||
msgid "Please select a reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_point_cost |
|||
msgid "Point Cost" |
|||
msgstr "Coût en points" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_point_product_id |
|||
msgid "Point Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_order |
|||
msgid "Point of Sale Orders" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:72 |
|||
#, python-format |
|||
msgid "Point product field is mandatory for point resale rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:6 |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:71 |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:81 |
|||
#, python-format |
|||
msgid "Points" |
|||
msgstr "Points" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_rounding |
|||
msgid "Points Rounding" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:57 |
|||
#, python-format |
|||
msgid "Points Spent" |
|||
msgstr "Points dépensés" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:54 |
|||
#, python-format |
|||
msgid "Points Won" |
|||
msgstr "Points Gagnés" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_currency |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_pp_currency |
|||
msgid "Points per currency" |
|||
msgstr "Points par devise" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_order |
|||
msgid "Points per order" |
|||
msgstr "Points par commande" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_product |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_pp_product |
|||
msgid "Points per product" |
|||
msgstr "Points par produit" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.rule,type:0 |
|||
msgid "Product" |
|||
msgstr "Produit" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_point_product_id |
|||
msgid "Product that represents a point that is sold by the customer" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Resale" |
|||
msgstr "Revente" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_name |
|||
msgid "Reward Name" |
|||
msgstr "Nom de Récompense" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Reward the customer with gifts or discounts for loyalty points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:25 |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_reward_ids |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
#, python-format |
|||
msgid "Rewards" |
|||
msgstr "Récompenses" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_name |
|||
msgid "Rule Name" |
|||
msgstr "Nom de Règle" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_rule_ids |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Rules" |
|||
msgstr "Règles" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "" |
|||
"Rules define how loyalty points are earned for specific products or " |
|||
"categories" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_category_id |
|||
msgid "Target Category" |
|||
msgstr "Catégorie cible" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_product_id |
|||
msgid "Target Product" |
|||
msgstr "Produit Cible" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_loyalty_program_id |
|||
msgid "The Loyalty Program this reward belongs to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_loyalty_program_id |
|||
msgid "The Loyalty Program this rule belongs to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_pos_order_loyalty_points |
|||
msgid "The amount of Loyalty points awarded to the customer with this order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_category_id |
|||
msgid "The category affected by this rule" |
|||
msgstr "La catégorie affectée par la règle" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_type |
|||
msgid "The concept this rule applies to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount |
|||
msgid "The discount percentage" |
|||
msgstr "Le pourcentage de rabais" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_res_partner_loyalty_points |
|||
#: model:ir.model.fields,help:pos_loyalty.field_res_users_loyalty_points |
|||
msgid "The loyalty points the user won as part of a Loyalty Program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_pos_config_loyalty_id |
|||
msgid "The loyalty program used by this Point of Sale" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_cumulative |
|||
msgid "" |
|||
"The points from this rule will be added to points won from other rules with " |
|||
"the same concept" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_product_id |
|||
msgid "The product affected by this rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_gift_product_id |
|||
msgid "The product given as a reward" |
|||
msgstr "Le produit est donné en guise de récompense" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount_product_id |
|||
msgid "The product used to apply discounts" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:380 |
|||
#, python-format |
|||
msgid "" |
|||
"There are no rewards available for this customer as part of the loyalty " |
|||
"program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:60 |
|||
#, python-format |
|||
msgid "Total Points" |
|||
msgstr "Points Totaux" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_type |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_type |
|||
msgid "Type" |
|||
msgstr "Type" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_type |
|||
msgid "Type of the reward" |
|||
msgstr "Type de récompense" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "abc" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_program |
|||
msgid "loyalty.program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_reward |
|||
msgid "loyalty.reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_rule |
|||
msgid "loyalty.rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_config |
|||
msgid "pos.config" |
|||
msgstr "pos.config" |
|||
|
|||
#~ msgid "Partner" |
|||
#~ msgstr "Partner" |
@ -0,0 +1,498 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_loyalty |
|||
# |
|||
# Translators: |
|||
# Bole <bole@dajmi5.com>, 2017 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 10.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2017-07-12 02:44+0000\n" |
|||
"PO-Revision-Date: 2017-07-12 02:44+0000\n" |
|||
"Last-Translator: Bole <bole@dajmi5.com>, 2017\n" |
|||
"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/" |
|||
"hr_HR/)\n" |
|||
"Language: hr_HR\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" |
|||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_order |
|||
msgid "" |
|||
"Amount of loyalty points given to the customer for each point of sale order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_product |
|||
msgid "Amount of loyalty points given to the customer per product sold" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_currency |
|||
msgid "Amount of loyalty points given to the customer per sold currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_pp_currency |
|||
msgid "Amount of points earned per currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_pp_product |
|||
msgid "Amount of points earned per product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.rule,type:0 |
|||
msgid "Category" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,help:pos_loyalty.loyalty_program_action |
|||
msgid "Click create to define a Loyalty Program." |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_res_partner |
|||
msgid "Contact" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_point_cost |
|||
msgid "Cost of the reward per monetary unit discounted" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_create_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_create_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_create_uid |
|||
msgid "Created by" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_create_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_create_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_create_date |
|||
msgid "Created on" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_cumulative |
|||
msgid "Cumulative" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Discount" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount_product_id |
|||
msgid "Discount Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount_max |
|||
msgid "Discount limit" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:64 |
|||
#, python-format |
|||
msgid "Discount product field is mandatory for discount rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_display_name |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_display_name |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_display_name |
|||
msgid "Display Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Gift" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_gift_product_id |
|||
msgid "Gift Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:57 |
|||
#, python-format |
|||
msgid "Gift product field is mandatory for gift rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_id |
|||
msgid "ID" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program___last_update |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward___last_update |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule___last_update |
|||
msgid "Last Modified on" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_write_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_write_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_write_uid |
|||
msgid "Last Updated by" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_write_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_write_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_write_date |
|||
msgid "Last Updated on" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_order_line |
|||
msgid "Lines of Point of Sale Orders" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_pos_order_loyalty_points |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_res_partner_loyalty_points |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_res_users_loyalty_points |
|||
msgid "Loyalty Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_pos_config_loyalty_id |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Loyalty Program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "Loyalty Program (OCA)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_name |
|||
msgid "Loyalty Program Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,name:pos_loyalty.loyalty_program_action |
|||
#: model:ir.ui.menu,name:pos_loyalty.loyalty_program_menu |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_tree_view |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.partner_property_form_view |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_order_form_view |
|||
msgid "Loyalty Programs" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,help:pos_loyalty.loyalty_program_action |
|||
msgid "" |
|||
"Loyalty Programs allow you customers to earn points\n" |
|||
" and rewards when purchasing from your shops." |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_reward_form_view |
|||
msgid "Loyalty Reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_rule_form_view |
|||
msgid "Loyalty Rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_rounding |
|||
msgid "Loyalty point amounts will be rounded to multiples of this value" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "Loyalty program that will be available in this PoS" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount_max |
|||
msgid "Maximum discounted amount allowed forthis discount reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_minimum_points |
|||
msgid "Minimum Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_minimum_points |
|||
msgid "" |
|||
"Minimum amount of points the customer must have to qualify for this reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:379 |
|||
#, python-format |
|||
msgid "No Rewards Available" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:393 |
|||
#, python-format |
|||
msgid "Please select a reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_point_cost |
|||
msgid "Point Cost" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_point_product_id |
|||
msgid "Point Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_order |
|||
msgid "Point of Sale Orders" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:72 |
|||
#, python-format |
|||
msgid "Point product field is mandatory for point resale rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:6 |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:71 |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:81 |
|||
#, python-format |
|||
msgid "Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_rounding |
|||
msgid "Points Rounding" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:57 |
|||
#, python-format |
|||
msgid "Points Spent" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:54 |
|||
#, python-format |
|||
msgid "Points Won" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_currency |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_pp_currency |
|||
msgid "Points per currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_order |
|||
msgid "Points per order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_product |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_pp_product |
|||
msgid "Points per product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.rule,type:0 |
|||
msgid "Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_point_product_id |
|||
msgid "Product that represents a point that is sold by the customer" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Resale" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_name |
|||
msgid "Reward Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Reward the customer with gifts or discounts for loyalty points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:25 |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_reward_ids |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
#, python-format |
|||
msgid "Rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_name |
|||
msgid "Rule Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_rule_ids |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Rules" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "" |
|||
"Rules define how loyalty points are earned for specific products or " |
|||
"categories" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_category_id |
|||
msgid "Target Category" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_product_id |
|||
msgid "Target Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_loyalty_program_id |
|||
msgid "The Loyalty Program this reward belongs to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_loyalty_program_id |
|||
msgid "The Loyalty Program this rule belongs to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_pos_order_loyalty_points |
|||
msgid "The amount of Loyalty points awarded to the customer with this order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_category_id |
|||
msgid "The category affected by this rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_type |
|||
msgid "The concept this rule applies to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount |
|||
msgid "The discount percentage" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_res_partner_loyalty_points |
|||
#: model:ir.model.fields,help:pos_loyalty.field_res_users_loyalty_points |
|||
msgid "The loyalty points the user won as part of a Loyalty Program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_pos_config_loyalty_id |
|||
msgid "The loyalty program used by this Point of Sale" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_cumulative |
|||
msgid "" |
|||
"The points from this rule will be added to points won from other rules with " |
|||
"the same concept" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_product_id |
|||
msgid "The product affected by this rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_gift_product_id |
|||
msgid "The product given as a reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount_product_id |
|||
msgid "The product used to apply discounts" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:380 |
|||
#, python-format |
|||
msgid "" |
|||
"There are no rewards available for this customer as part of the loyalty " |
|||
"program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:60 |
|||
#, python-format |
|||
msgid "Total Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_type |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_type |
|||
msgid "Type" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_type |
|||
msgid "Type of the reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "abc" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_program |
|||
msgid "loyalty.program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_reward |
|||
msgid "loyalty.reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_rule |
|||
msgid "loyalty.rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_config |
|||
msgid "pos.config" |
|||
msgstr "pos.config" |
@ -0,0 +1,497 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_loyalty |
|||
# |
|||
# Translators: |
|||
# Francesco Fresta <franco.fresta@gmail.com>, 2018 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 10.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2018-03-01 02:01+0000\n" |
|||
"PO-Revision-Date: 2018-03-01 02:01+0000\n" |
|||
"Last-Translator: Francesco Fresta <franco.fresta@gmail.com>, 2018\n" |
|||
"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\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" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_order |
|||
msgid "" |
|||
"Amount of loyalty points given to the customer for each point of sale order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_product |
|||
msgid "Amount of loyalty points given to the customer per product sold" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_currency |
|||
msgid "Amount of loyalty points given to the customer per sold currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_pp_currency |
|||
msgid "Amount of points earned per currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_pp_product |
|||
msgid "Amount of points earned per product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.rule,type:0 |
|||
msgid "Category" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,help:pos_loyalty.loyalty_program_action |
|||
msgid "Click create to define a Loyalty Program." |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_res_partner |
|||
msgid "Contact" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_point_cost |
|||
msgid "Cost of the reward per monetary unit discounted" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_create_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_create_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_create_uid |
|||
msgid "Created by" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_create_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_create_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_create_date |
|||
msgid "Created on" |
|||
msgstr "Creato il" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_cumulative |
|||
msgid "Cumulative" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Discount" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount_product_id |
|||
msgid "Discount Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount_max |
|||
msgid "Discount limit" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:64 |
|||
#, python-format |
|||
msgid "Discount product field is mandatory for discount rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_display_name |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_display_name |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_display_name |
|||
msgid "Display Name" |
|||
msgstr "Mostra il nome" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Gift" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_gift_product_id |
|||
msgid "Gift Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:57 |
|||
#, python-format |
|||
msgid "Gift product field is mandatory for gift rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_id |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program___last_update |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward___last_update |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule___last_update |
|||
msgid "Last Modified on" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_write_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_write_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_write_uid |
|||
msgid "Last Updated by" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_write_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_write_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_write_date |
|||
msgid "Last Updated on" |
|||
msgstr "Ultimo aggiornamento il" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_order_line |
|||
#, fuzzy |
|||
msgid "Lines of Point of Sale Orders" |
|||
msgstr "Punto di riordino" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_pos_order_loyalty_points |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_res_partner_loyalty_points |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_res_users_loyalty_points |
|||
msgid "Loyalty Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_pos_config_loyalty_id |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Loyalty Program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "Loyalty Program (OCA)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_name |
|||
msgid "Loyalty Program Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,name:pos_loyalty.loyalty_program_action |
|||
#: model:ir.ui.menu,name:pos_loyalty.loyalty_program_menu |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_tree_view |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.partner_property_form_view |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_order_form_view |
|||
msgid "Loyalty Programs" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,help:pos_loyalty.loyalty_program_action |
|||
msgid "" |
|||
"Loyalty Programs allow you customers to earn points\n" |
|||
" and rewards when purchasing from your shops." |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_reward_form_view |
|||
msgid "Loyalty Reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_rule_form_view |
|||
msgid "Loyalty Rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_rounding |
|||
msgid "Loyalty point amounts will be rounded to multiples of this value" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "Loyalty program that will be available in this PoS" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount_max |
|||
msgid "Maximum discounted amount allowed forthis discount reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_minimum_points |
|||
msgid "Minimum Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_minimum_points |
|||
msgid "" |
|||
"Minimum amount of points the customer must have to qualify for this reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:379 |
|||
#, python-format |
|||
msgid "No Rewards Available" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:393 |
|||
#, python-format |
|||
msgid "Please select a reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_point_cost |
|||
msgid "Point Cost" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_point_product_id |
|||
msgid "Point Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_order |
|||
msgid "Point of Sale Orders" |
|||
msgstr "Punto di riordino" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:72 |
|||
#, python-format |
|||
msgid "Point product field is mandatory for point resale rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:6 |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:71 |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:81 |
|||
#, python-format |
|||
msgid "Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_rounding |
|||
msgid "Points Rounding" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:57 |
|||
#, python-format |
|||
msgid "Points Spent" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:54 |
|||
#, python-format |
|||
msgid "Points Won" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_currency |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_pp_currency |
|||
msgid "Points per currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_order |
|||
msgid "Points per order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_product |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_pp_product |
|||
msgid "Points per product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.rule,type:0 |
|||
msgid "Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_point_product_id |
|||
msgid "Product that represents a point that is sold by the customer" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Resale" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_name |
|||
msgid "Reward Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Reward the customer with gifts or discounts for loyalty points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:25 |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_reward_ids |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
#, python-format |
|||
msgid "Rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_name |
|||
msgid "Rule Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_rule_ids |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Rules" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "" |
|||
"Rules define how loyalty points are earned for specific products or " |
|||
"categories" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_category_id |
|||
msgid "Target Category" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_product_id |
|||
msgid "Target Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_loyalty_program_id |
|||
msgid "The Loyalty Program this reward belongs to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_loyalty_program_id |
|||
msgid "The Loyalty Program this rule belongs to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_pos_order_loyalty_points |
|||
msgid "The amount of Loyalty points awarded to the customer with this order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_category_id |
|||
msgid "The category affected by this rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_type |
|||
msgid "The concept this rule applies to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount |
|||
msgid "The discount percentage" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_res_partner_loyalty_points |
|||
#: model:ir.model.fields,help:pos_loyalty.field_res_users_loyalty_points |
|||
msgid "The loyalty points the user won as part of a Loyalty Program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_pos_config_loyalty_id |
|||
msgid "The loyalty program used by this Point of Sale" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_cumulative |
|||
msgid "" |
|||
"The points from this rule will be added to points won from other rules with " |
|||
"the same concept" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_product_id |
|||
msgid "The product affected by this rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_gift_product_id |
|||
msgid "The product given as a reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount_product_id |
|||
msgid "The product used to apply discounts" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:380 |
|||
#, python-format |
|||
msgid "" |
|||
"There are no rewards available for this customer as part of the loyalty " |
|||
"program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:60 |
|||
#, python-format |
|||
msgid "Total Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_type |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_type |
|||
msgid "Type" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_type |
|||
msgid "Type of the reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "abc" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_program |
|||
msgid "loyalty.program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_reward |
|||
msgid "loyalty.reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_rule |
|||
msgid "loyalty.rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_config |
|||
msgid "pos.config" |
|||
msgstr "pos.config" |
@ -0,0 +1,498 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_loyalty |
|||
# |
|||
# Translators: |
|||
# Peter Hageman <hageman.p@gmail.com>, 2017 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 10.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2017-07-12 02:44+0000\n" |
|||
"PO-Revision-Date: 2017-07-12 02:44+0000\n" |
|||
"Last-Translator: Peter Hageman <hageman.p@gmail.com>, 2017\n" |
|||
"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/" |
|||
"teams/23907/nl_NL/)\n" |
|||
"Language: nl_NL\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_order |
|||
msgid "" |
|||
"Amount of loyalty points given to the customer for each point of sale order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_product |
|||
msgid "Amount of loyalty points given to the customer per product sold" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_currency |
|||
msgid "Amount of loyalty points given to the customer per sold currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_pp_currency |
|||
msgid "Amount of points earned per currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_pp_product |
|||
msgid "Amount of points earned per product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.rule,type:0 |
|||
msgid "Category" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,help:pos_loyalty.loyalty_program_action |
|||
msgid "Click create to define a Loyalty Program." |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_res_partner |
|||
msgid "Contact" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_point_cost |
|||
msgid "Cost of the reward per monetary unit discounted" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_create_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_create_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_create_uid |
|||
msgid "Created by" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_create_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_create_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_create_date |
|||
msgid "Created on" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_cumulative |
|||
msgid "Cumulative" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Discount" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount_product_id |
|||
msgid "Discount Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount_max |
|||
msgid "Discount limit" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:64 |
|||
#, python-format |
|||
msgid "Discount product field is mandatory for discount rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_display_name |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_display_name |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_display_name |
|||
msgid "Display Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Gift" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_gift_product_id |
|||
msgid "Gift Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:57 |
|||
#, python-format |
|||
msgid "Gift product field is mandatory for gift rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_id |
|||
msgid "ID" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program___last_update |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward___last_update |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule___last_update |
|||
msgid "Last Modified on" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_write_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_write_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_write_uid |
|||
msgid "Last Updated by" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_write_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_write_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_write_date |
|||
msgid "Last Updated on" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_order_line |
|||
#, fuzzy |
|||
msgid "Lines of Point of Sale Orders" |
|||
msgstr "Kassaorders" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_pos_order_loyalty_points |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_res_partner_loyalty_points |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_res_users_loyalty_points |
|||
msgid "Loyalty Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_pos_config_loyalty_id |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Loyalty Program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "Loyalty Program (OCA)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_name |
|||
msgid "Loyalty Program Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,name:pos_loyalty.loyalty_program_action |
|||
#: model:ir.ui.menu,name:pos_loyalty.loyalty_program_menu |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_tree_view |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.partner_property_form_view |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_order_form_view |
|||
msgid "Loyalty Programs" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,help:pos_loyalty.loyalty_program_action |
|||
msgid "" |
|||
"Loyalty Programs allow you customers to earn points\n" |
|||
" and rewards when purchasing from your shops." |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_reward_form_view |
|||
msgid "Loyalty Reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_rule_form_view |
|||
msgid "Loyalty Rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_rounding |
|||
msgid "Loyalty point amounts will be rounded to multiples of this value" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "Loyalty program that will be available in this PoS" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount_max |
|||
msgid "Maximum discounted amount allowed forthis discount reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_minimum_points |
|||
msgid "Minimum Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_minimum_points |
|||
msgid "" |
|||
"Minimum amount of points the customer must have to qualify for this reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:379 |
|||
#, python-format |
|||
msgid "No Rewards Available" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:393 |
|||
#, python-format |
|||
msgid "Please select a reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_point_cost |
|||
msgid "Point Cost" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_point_product_id |
|||
msgid "Point Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_order |
|||
msgid "Point of Sale Orders" |
|||
msgstr "Kassaorders" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:72 |
|||
#, python-format |
|||
msgid "Point product field is mandatory for point resale rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:6 |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:71 |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:81 |
|||
#, python-format |
|||
msgid "Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_rounding |
|||
msgid "Points Rounding" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:57 |
|||
#, python-format |
|||
msgid "Points Spent" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:54 |
|||
#, python-format |
|||
msgid "Points Won" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_currency |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_pp_currency |
|||
msgid "Points per currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_order |
|||
msgid "Points per order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_product |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_pp_product |
|||
msgid "Points per product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.rule,type:0 |
|||
msgid "Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_point_product_id |
|||
msgid "Product that represents a point that is sold by the customer" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Resale" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_name |
|||
msgid "Reward Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Reward the customer with gifts or discounts for loyalty points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:25 |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_reward_ids |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
#, python-format |
|||
msgid "Rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_name |
|||
msgid "Rule Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_rule_ids |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Rules" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "" |
|||
"Rules define how loyalty points are earned for specific products or " |
|||
"categories" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_category_id |
|||
msgid "Target Category" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_product_id |
|||
msgid "Target Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_loyalty_program_id |
|||
msgid "The Loyalty Program this reward belongs to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_loyalty_program_id |
|||
msgid "The Loyalty Program this rule belongs to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_pos_order_loyalty_points |
|||
msgid "The amount of Loyalty points awarded to the customer with this order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_category_id |
|||
msgid "The category affected by this rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_type |
|||
msgid "The concept this rule applies to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount |
|||
msgid "The discount percentage" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_res_partner_loyalty_points |
|||
#: model:ir.model.fields,help:pos_loyalty.field_res_users_loyalty_points |
|||
msgid "The loyalty points the user won as part of a Loyalty Program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_pos_config_loyalty_id |
|||
msgid "The loyalty program used by this Point of Sale" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_cumulative |
|||
msgid "" |
|||
"The points from this rule will be added to points won from other rules with " |
|||
"the same concept" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_product_id |
|||
msgid "The product affected by this rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_gift_product_id |
|||
msgid "The product given as a reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount_product_id |
|||
msgid "The product used to apply discounts" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:380 |
|||
#, python-format |
|||
msgid "" |
|||
"There are no rewards available for this customer as part of the loyalty " |
|||
"program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:60 |
|||
#, python-format |
|||
msgid "Total Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_type |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_type |
|||
msgid "Type" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_type |
|||
msgid "Type of the reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "abc" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_program |
|||
msgid "loyalty.program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_reward |
|||
msgid "loyalty.reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_rule |
|||
msgid "loyalty.rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_config |
|||
msgid "pos.config" |
|||
msgstr "pos.config" |
@ -0,0 +1,483 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_loyalty |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 11.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_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_order |
|||
msgid "Amount of loyalty points given to the customer for each point of sale order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_product |
|||
msgid "Amount of loyalty points given to the customer per product sold" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_pp_currency |
|||
msgid "Amount of loyalty points given to the customer per sold currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_pp_currency |
|||
msgid "Amount of points earned per currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_pp_product |
|||
msgid "Amount of points earned per product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.rule,type:0 |
|||
msgid "Category" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,help:pos_loyalty.loyalty_program_action |
|||
msgid "Click create to define a Loyalty Program." |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_res_partner |
|||
msgid "Contact" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_point_cost |
|||
msgid "Cost of the reward per monetary unit discounted" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_create_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_create_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_create_uid |
|||
msgid "Created by" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_create_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_create_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_create_date |
|||
msgid "Created on" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_cumulative |
|||
msgid "Cumulative" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Discount" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount_product_id |
|||
msgid "Discount Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_discount_max |
|||
msgid "Discount limit" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:64 |
|||
#, python-format |
|||
msgid "Discount product field is mandatory for discount rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_display_name |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_display_name |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_display_name |
|||
msgid "Display Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Gift" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_gift_product_id |
|||
msgid "Gift Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:57 |
|||
#, python-format |
|||
msgid "Gift product field is mandatory for gift rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_id |
|||
msgid "ID" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program___last_update |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward___last_update |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule___last_update |
|||
msgid "Last Modified on" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_write_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_write_uid |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_write_uid |
|||
msgid "Last Updated by" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_write_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_write_date |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_write_date |
|||
msgid "Last Updated on" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_order_line |
|||
msgid "Lines of Point of Sale Orders" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_pos_order_loyalty_points |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_res_partner_loyalty_points |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_res_users_loyalty_points |
|||
msgid "Loyalty Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_loyalty_program_id |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_pos_config_loyalty_id |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Loyalty Program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "Loyalty Program (OCA)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_name |
|||
msgid "Loyalty Program Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,name:pos_loyalty.loyalty_program_action |
|||
#: model:ir.ui.menu,name:pos_loyalty.loyalty_program_menu |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_tree_view |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.partner_property_form_view |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_order_form_view |
|||
msgid "Loyalty Programs" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.actions.act_window,help:pos_loyalty.loyalty_program_action |
|||
msgid "Loyalty Programs allow you customers to earn points\n" |
|||
" and rewards when purchasing from your shops." |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_reward_form_view |
|||
msgid "Loyalty Reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_rule_form_view |
|||
msgid "Loyalty Rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_program_rounding |
|||
msgid "Loyalty point amounts will be rounded to multiples of this value" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "Loyalty program that will be available in this PoS" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount_max |
|||
msgid "Maximum discounted amount allowed forthis discount reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_minimum_points |
|||
msgid "Minimum Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_minimum_points |
|||
msgid "Minimum amount of points the customer must have to qualify for this reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:379 |
|||
#, python-format |
|||
msgid "No Rewards Available" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:393 |
|||
#, python-format |
|||
msgid "Please select a reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_point_cost |
|||
msgid "Point Cost" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_point_product_id |
|||
msgid "Point Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_order |
|||
msgid "Point of Sale Orders" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: code:addons/pos_loyalty/models/loyalty_reward.py:72 |
|||
#, python-format |
|||
msgid "Point product field is mandatory for point resale rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:6 |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:71 |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:81 |
|||
#, python-format |
|||
msgid "Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_rounding |
|||
msgid "Points Rounding" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:57 |
|||
#, python-format |
|||
msgid "Points Spent" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:54 |
|||
#, python-format |
|||
msgid "Points Won" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_currency |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_pp_currency |
|||
msgid "Points per currency" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_order |
|||
msgid "Points per order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_pp_product |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_pp_product |
|||
msgid "Points per product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.rule,type:0 |
|||
msgid "Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_point_product_id |
|||
msgid "Product that represents a point that is sold by the customer" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: selection:loyalty.reward,type:0 |
|||
msgid "Resale" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_name |
|||
msgid "Reward Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Reward the customer with gifts or discounts for loyalty points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:25 |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_reward_ids |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
#, python-format |
|||
msgid "Rewards" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_name |
|||
msgid "Rule Name" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_program_rule_ids |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Rules" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.loyalty_program_form_view |
|||
msgid "Rules define how loyalty points are earned for specific products or categories" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_category_id |
|||
msgid "Target Category" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_product_id |
|||
msgid "Target Product" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_loyalty_program_id |
|||
msgid "The Loyalty Program this reward belongs to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_loyalty_program_id |
|||
msgid "The Loyalty Program this rule belongs to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_pos_order_loyalty_points |
|||
msgid "The amount of Loyalty points awarded to the customer with this order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_category_id |
|||
msgid "The category affected by this rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_type |
|||
msgid "The concept this rule applies to" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount |
|||
msgid "The discount percentage" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_res_partner_loyalty_points |
|||
#: model:ir.model.fields,help:pos_loyalty.field_res_users_loyalty_points |
|||
msgid "The loyalty points the user won as part of a Loyalty Program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_pos_config_loyalty_id |
|||
msgid "The loyalty program used by this Point of Sale" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_cumulative |
|||
msgid "The points from this rule will be added to points won from other rules with the same concept" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_rule_product_id |
|||
msgid "The product affected by this rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_gift_product_id |
|||
msgid "The product given as a reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_discount_product_id |
|||
msgid "The product used to apply discounts" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/js/pos.js:380 |
|||
#, python-format |
|||
msgid "There are no rewards available for this customer as part of the loyalty program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#. openerp-web |
|||
#: code:addons/pos_loyalty/static/src/xml/pos.xml:60 |
|||
#, python-format |
|||
msgid "Total Points" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_reward_type |
|||
#: model:ir.model.fields,field_description:pos_loyalty.field_loyalty_rule_type |
|||
msgid "Type" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model.fields,help:pos_loyalty.field_loyalty_reward_type |
|||
msgid "Type of the reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.ui.view,arch_db:pos_loyalty.pos_config_view_form |
|||
msgid "abc" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_program |
|||
msgid "loyalty.program" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_reward |
|||
msgid "loyalty.reward" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_loyalty_rule |
|||
msgid "loyalty.rule" |
|||
msgstr "" |
|||
|
|||
#. module: pos_loyalty |
|||
#: model:ir.model,name:pos_loyalty.model_pos_config |
|||
msgid "pos.config" |
|||
msgstr "" |
|||
|
@ -0,0 +1,9 @@ |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
from . import loyalty_program |
|||
from . import loyalty_reward |
|||
from . import loyalty_rule |
|||
from . import pos_config |
|||
from . import pos_order |
|||
from . import pos_order_line |
|||
from . import res_partner |
@ -0,0 +1,30 @@ |
|||
# Copyright 2004-2010 OpenERP SA |
|||
# Copyright 2017 RGB Consulting S.L. (https://www.rgbconsulting.com) |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
from odoo import fields, models |
|||
|
|||
|
|||
class LoyaltyProgram(models.Model): |
|||
_name = 'loyalty.program' |
|||
|
|||
name = fields.Char(string='Loyalty Program Name', size=32, index=True, |
|||
required=True) |
|||
pp_currency = fields.Float(string='Points per currency', |
|||
help='Amount of loyalty points given to the ' |
|||
'customer per sold currency') |
|||
pp_product = fields.Float(string='Points per product', |
|||
help='Amount of loyalty points given to the ' |
|||
'customer per product sold') |
|||
pp_order = fields.Float(string='Points per order', |
|||
help='Amount of loyalty points given to the ' |
|||
'customer for each point of sale order') |
|||
rounding = fields.Float(string='Points Rounding', default=1, |
|||
help='Loyalty point amounts will be rounded to ' |
|||
'multiples of this value') |
|||
rule_ids = fields.One2many(comodel_name='loyalty.rule', |
|||
inverse_name='loyalty_program_id', |
|||
string='Rules') |
|||
reward_ids = fields.One2many(comodel_name='loyalty.reward', |
|||
inverse_name='loyalty_program_id', |
|||
string='Rewards') |
@ -0,0 +1,73 @@ |
|||
# Copyright 2004-2010 OpenERP SA |
|||
# Copyright 2017 RGB Consulting S.L. (https://www.rgbconsulting.com) |
|||
# Copyright 2018 Lambda IS DOOEL <https://www.lambda-is.com> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
from odoo import fields, models, api, _ |
|||
from odoo.exceptions import ValidationError |
|||
|
|||
|
|||
class LoyaltyReward(models.Model): |
|||
_name = 'loyalty.reward' |
|||
|
|||
name = fields.Char(string='Reward Name', size=32, index=True, |
|||
required=True) |
|||
type = fields.Selection(selection=[('gift', 'Gift'), |
|||
('discount', 'Discount'), |
|||
('resale', 'Resale')], |
|||
string='Type', required=True, |
|||
help='Type of the reward') |
|||
minimum_points = fields.Float(string='Minimum Points', |
|||
help='Minimum amount of points the customer' |
|||
' must have to qualify for this reward') |
|||
point_cost = fields.Float(string='Point Cost', |
|||
help='Cost of the reward per monetary unit ' |
|||
'discounted') |
|||
discount = fields.Float(help='The discount percentage') |
|||
discount_max = fields.Float(string='Discount limit', |
|||
help='Maximum discounted amount allowed for' |
|||
'this discount reward') |
|||
loyalty_program_id = fields.Many2one(comodel_name='loyalty.program', |
|||
string='Loyalty Program', |
|||
help='The Loyalty Program this reward' |
|||
' belongs to') |
|||
gift_product_id = fields.Many2one(comodel_name='product.product', |
|||
domain=[('available_in_pos', '=', True)], |
|||
string='Gift Product', |
|||
help='The product given as a reward') |
|||
discount_product_id = fields.Many2one(comodel_name='product.product', |
|||
domain=[ |
|||
('available_in_pos', '=', True)], |
|||
string='Discount Product', |
|||
help='The product used to apply ' |
|||
'discounts') |
|||
point_product_id = fields.Many2one(comodel_name='product.product', |
|||
domain=[ |
|||
('available_in_pos', '=', True)], |
|||
string='Point Product', |
|||
help='Product that represents a point ' |
|||
'that is sold by the customer') |
|||
|
|||
@api.multi |
|||
@api.constrains('type', 'gift_product_id') |
|||
def _check_gift_product(self): |
|||
for reward in self: |
|||
if reward.type == 'gift' and not reward.gift_product_id: |
|||
raise ValidationError( |
|||
_('Gift product field is mandatory for gift rewards')) |
|||
|
|||
@api.multi |
|||
@api.constrains('type', 'discount_product_id') |
|||
def _check_discount_product(self): |
|||
for reward in self: |
|||
if reward.type == 'discount' and not reward.discount_product_id: |
|||
raise ValidationError(_('Discount product field is ' |
|||
'mandatory for discount rewards')) |
|||
|
|||
@api.multi |
|||
@api.constrains('type', 'point_product_id') |
|||
def _check_point_product(self): |
|||
for reward in self: |
|||
if reward.type == 'resale' and not reward.point_product_id: |
|||
raise ValidationError(_('Point product field is ' |
|||
'mandatory for point resale rewards')) |
@ -0,0 +1,34 @@ |
|||
# Copyright 2004-2010 OpenERP SA |
|||
# Copyright 2017 RGB Consulting S.L. (https://www.rgbconsulting.com) |
|||
# Copyright 2018 Lambda IS DOOEL <https://www.lambda-is.com> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
from odoo import fields, models |
|||
|
|||
|
|||
class LoyaltyRule(models.Model): |
|||
_name = 'loyalty.rule' |
|||
|
|||
name = fields.Char(string='Rule Name', size=32, index=True, required=True) |
|||
type = fields.Selection(selection=[('product', 'Product'), |
|||
('category', 'Category')], |
|||
string='Type', required=True, default='product', |
|||
help='The concept this rule applies to') |
|||
cumulative = fields.Boolean(help='The points from this rule will be added ' |
|||
'to points won from other rules with ' |
|||
'the same concept') |
|||
pp_product = fields.Float(string='Points per product', |
|||
help='Amount of points earned per product') |
|||
pp_currency = fields.Float(string='Points per currency', |
|||
help='Amount of points earned per currency') |
|||
loyalty_program_id = fields.Many2one(comodel_name='loyalty.program', |
|||
string='Loyalty Program', |
|||
help='The Loyalty Program this rule ' |
|||
'belongs to') |
|||
product_id = fields.Many2one(comodel_name='product.product', |
|||
domain=[('available_in_pos', '=', True)], |
|||
string='Target Product', |
|||
help='The product affected by this rule') |
|||
category_id = fields.Many2one(comodel_name='pos.category', |
|||
string='Target Category', |
|||
help='The category affected by this rule') |
@ -0,0 +1,14 @@ |
|||
# Copyright 2004-2010 OpenERP SA |
|||
# Copyright 2017 RGB Consulting S.L. (https://www.rgbconsulting.com) |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
from odoo import fields, models |
|||
|
|||
|
|||
class PosConfig(models.Model): |
|||
_inherit = 'pos.config' |
|||
|
|||
loyalty_id = fields.Many2one(comodel_name='loyalty.program', |
|||
string='Loyalty Program', |
|||
help='The loyalty program used by this ' |
|||
'Point of Sale') |
@ -0,0 +1,30 @@ |
|||
# Copyright 2004-2010 OpenERP SA |
|||
# Copyright 2017 RGB Consulting S.L. (https://www.rgbconsulting.com) |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
from odoo import fields, models, api |
|||
|
|||
|
|||
class PosOrder(models.Model): |
|||
_inherit = 'pos.order' |
|||
|
|||
loyalty_points = fields.Float(string='Loyalty Points', |
|||
help='The amount of Loyalty points awarded ' |
|||
'to the customer with this order') |
|||
|
|||
@api.model |
|||
def _order_fields(self, ui_order): |
|||
res = super(PosOrder, self)._order_fields(ui_order) |
|||
res['loyalty_points'] = ui_order.get('loyalty_points', 0) |
|||
return res |
|||
|
|||
@api.model |
|||
def create_from_ui(self, orders): |
|||
res = super(PosOrder, self).create_from_ui(orders) |
|||
for order in orders: |
|||
order_partner = order['data']['partner_id'] |
|||
order_points = order['data'].get('loyalty_points', 0) |
|||
if order_points != 0 and order_partner: |
|||
partner = self.env['res.partner'].browse(order_partner) |
|||
partner.loyalty_points += order_points |
|||
return res |
@ -0,0 +1,20 @@ |
|||
# Copyright 2018 Lambda IS DOOEL <https://www.lambda-is.com> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
from odoo import api, models |
|||
|
|||
|
|||
class PosOrderLine(models.Model): |
|||
_inherit = 'pos.order.line' |
|||
|
|||
@api.model |
|||
def _order_line_fields(self, line, session_id=None): |
|||
line = super(PosOrderLine, self)._order_line_fields( |
|||
line, session_id=session_id) |
|||
if line and 'reward_id' in line[2]: |
|||
# Delete the key since field doesn't exist |
|||
# and raises a warning in the logs. |
|||
# TODO: add field and remove this if data will be |
|||
# used on server, example in report / widget. |
|||
del line[2]['reward_id'] |
|||
return line |
@ -0,0 +1,13 @@ |
|||
# Copyright 2004-2010 OpenERP SA |
|||
# Copyright 2017 RGB Consulting S.L. (https://www.rgbconsulting.com) |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
from odoo import fields, models |
|||
|
|||
|
|||
class ResPartner(models.Model): |
|||
_inherit = 'res.partner' |
|||
|
|||
loyalty_points = fields.Float(string='Loyalty Points', |
|||
help='The loyalty points the user won as ' |
|||
'part of a Loyalty Program') |
@ -0,0 +1,4 @@ |
|||
To use this module, you need to: |
|||
|
|||
* Go to *Point of Sale > Configuration > Loyalty Programs* and define a new loyalty program with specific rules and rewards. |
|||
* Assign the loyalty program to the desired Point of Sale. |
@ -0,0 +1,3 @@ |
|||
* RGB Consulting SL (http://www.rgbconsulting.com) |
|||
* Forward-port from Odoo SA saas-6 branch |
|||
* Kiril Vangelovski <kiril@lambda-is.com> |
@ -0,0 +1,6 @@ |
|||
This module allows you to define a loyalty program in the point of sale, |
|||
where the customers earn loyalty points and get rewards. |
|||
|
|||
This module is a forward-port to v12 of the pos_loyalty module from Odoo's |
|||
saas-6 branch. |
|||
The functionality was moved to the Enterprise edition in later versions. |
@ -0,0 +1,11 @@ |
|||
The Loyalty Program defines rules for acquiring points and rewards on which they can be spent. |
|||
|
|||
Rules can be defined globally for all products (fields on loyalty.program) and / or rules that are applied only on specific product or PoS category (loyalty.rule records) on a *points per product sold* or *points per currency spent* basis. The specific rules (loyalty.rule) can be defined as cumulative, which means that they will be aggregated with other matching rules (loyalty.rule records and loyalty.program fields). In the case of non-cumulative rules only the points from that one matching rule are used. Additionally, *fixed points per order* can be added which are applied regardless of whether or not cumulative or non-cumulative rules were applied also. |
|||
|
|||
Rewards can be of three types: |
|||
|
|||
* *Gift* - give a single unit of product for free |
|||
* *Discount* - give a discount to the whole order. It should be added at the end of the order so that the correct total price is used. |
|||
* *Resale* - allow for customer to sell back his earned points. These are calculated by setting the price on the Resale product (*resale_product.list_price* * *customer.loyalty_points*) |
|||
|
|||
All rewards can define how many points they cost (point_cost) and how many are needed so that the customer can become eligable for the reward (minimum_points). for Gift and Discount rewards minimum_points are considered only if they are greater then the point_cost for that reward (minimum_points > point_cost). For Resale products only minimum_points can be used. |
@ -0,0 +1,7 @@ |
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink |
|||
access_loyalty_program,loyalty.program.user,model_loyalty_program,point_of_sale.group_pos_user,1,0,0,0 |
|||
access_loyalty_program_manager,loyalty.program.manager,model_loyalty_program,point_of_sale.group_pos_manager,1,1,1,1 |
|||
access_loyalty_rule,loyalty.rule.user,model_loyalty_rule,point_of_sale.group_pos_user,1,0,0,0 |
|||
access_loyalty_rule_manager,loyalty.rule.manager,model_loyalty_rule,point_of_sale.group_pos_manager,1,1,1,1 |
|||
access_loyalty_reward,loyalty.reward.user,model_loyalty_reward,point_of_sale.group_pos_user,1,0,0,0 |
|||
access_loyalty_reward_manager,loyalty.reward.manager,model_loyalty_reward,point_of_sale.group_pos_manager,1,1,1,1 |
After Width: 128 | Height: 128 | Size: 9.2 KiB |
@ -0,0 +1,449 @@ |
|||
<?xml version="1.0" encoding="utf-8" ?> |
|||
<!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 0.14: http://docutils.sourceforge.net/" /> |
|||
<title>Loyalty Program</title> |
|||
<style type="text/css"> |
|||
|
|||
/* |
|||
:Author: David Goodger (goodger@python.org) |
|||
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $ |
|||
:Copyright: This stylesheet has been placed in the public domain. |
|||
|
|||
Default cascading style sheet for the HTML output of Docutils. |
|||
|
|||
See http://docutils.sf.net/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: grey; } /* 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 { |
|||
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="loyalty-program"> |
|||
<h1 class="title">Loyalty Program</h1> |
|||
|
|||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|||
!! This file is generated by oca-gen-addon-readme !! |
|||
!! changes will be overwritten. !! |
|||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> |
|||
<p><a class="reference external" 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" 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" href="https://github.com/OCA/pos/tree/11.0/pos_loyalty"><img alt="OCA/pos" src="https://img.shields.io/badge/github-OCA%2Fpos-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/pos-11-0/pos-11-0-pos_loyalty"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/184/11.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p> |
|||
<p>This module allows you to define a loyalty program in the point of sale, |
|||
where the customers earn loyalty points and get rewards.</p> |
|||
<p>This module is a forward-port to v10 of the pos_loyalty module from Odoo’s |
|||
saas-6 branch. |
|||
The functionality was moved to the Enterprise edition in later versions.</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="id1">Configuration</a></li> |
|||
<li><a class="reference internal" href="#usage" id="id2">Usage</a></li> |
|||
<li><a class="reference internal" href="#bug-tracker" id="id3">Bug Tracker</a></li> |
|||
<li><a class="reference internal" href="#credits" id="id4">Credits</a><ul> |
|||
<li><a class="reference internal" href="#authors" id="id5">Authors</a></li> |
|||
<li><a class="reference internal" href="#contributors" id="id6">Contributors</a></li> |
|||
<li><a class="reference internal" href="#maintainers" id="id7">Maintainers</a></li> |
|||
</ul> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
<div class="section" id="configuration"> |
|||
<h1><a class="toc-backref" href="#id1">Configuration</a></h1> |
|||
<p>To use this module, you need to:</p> |
|||
<ul class="simple"> |
|||
<li>Go to <em>Point of Sale > Configuration > Loyalty Programs</em> and define a new loyalty program with specific rules and rewards.</li> |
|||
<li>Assign the loyalty program to the desired Point of Sale.</li> |
|||
</ul> |
|||
</div> |
|||
<div class="section" id="usage"> |
|||
<h1><a class="toc-backref" href="#id2">Usage</a></h1> |
|||
<p>The Loyalty Program defines rules for acquiring points and rewards on which they can be spent.</p> |
|||
<p>Rules can be defined globally for all products (fields on loyalty.program) and / or rules that are applied only on specific product or PoS category (loyalty.rule records) on a <em>points per product sold</em> or <em>points per currency spent</em> basis. The specific rules (loyalty.rule) can be defined as cumulative, which means that they will be aggregated with other matching rules (loyalty.rule records and loyalty.program fields). In the case of non-cumulative rules only the points from that one matching rule are used. Additionally, <em>fixed points per order</em> can be added which are applied regardless of whether or not cumulative or non-cumulative rules were applied also.</p> |
|||
<p>Rewards can be of three types:</p> |
|||
<ul class="simple"> |
|||
<li><em>Gift</em> - give a single unit of product for free</li> |
|||
<li><em>Discount</em> - give a discount to the whole order. It should be added at the end of the order so that the correct total price is used.</li> |
|||
<li><em>Resale</em> - allow for customer to sell back his earned points. These are calculated by setting the price on the Resale product (<em>resale_product.list_price</em> * <em>customer.loyalty_points</em>)</li> |
|||
</ul> |
|||
<p>All rewards can define how many points they cost (point_cost) and how many are needed so that the customer can become eligable for the reward (minimum_points). for Gift and Discount rewards minimum_points are considered only if they are greater then the point_cost for that reward (minimum_points > point_cost). For Resale products only minimum_points can be used.</p> |
|||
</div> |
|||
<div class="section" id="bug-tracker"> |
|||
<h1><a class="toc-backref" href="#id3">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 smashing it by providing a detailed and welcomed |
|||
<a class="reference external" href="https://github.com/OCA/pos/issues/new?body=module:%20pos_loyalty%0Aversion:%2011.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="#id4">Credits</a></h1> |
|||
<div class="section" id="authors"> |
|||
<h2><a class="toc-backref" href="#id5">Authors</a></h2> |
|||
<ul class="simple"> |
|||
<li>OpenERP SA</li> |
|||
<li>RGB Consulting SL</li> |
|||
<li>Lambda IS</li> |
|||
</ul> |
|||
</div> |
|||
<div class="section" id="contributors"> |
|||
<h2><a class="toc-backref" href="#id6">Contributors</a></h2> |
|||
<ul class="simple"> |
|||
<li>RGB Consulting SL (<a class="reference external" href="http://www.rgbconsulting.com">http://www.rgbconsulting.com</a>)</li> |
|||
<li>Forward-port from Odoo SA saas-6 branch</li> |
|||
<li>Kiril Vangelovski <<a class="reference external" href="mailto:kiril@lambda-is.com">kiril@lambda-is.com</a>></li> |
|||
</ul> |
|||
</div> |
|||
<div class="section" id="maintainers"> |
|||
<h2><a class="toc-backref" href="#id7">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/11.0/pos_loyalty">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> |
@ -0,0 +1,21 @@ |
|||
|
|||
.pos .order .summary .loyalty-points{ |
|||
margin-left: 20px; |
|||
float: left; |
|||
padding: 10px; |
|||
max-width: 216px; |
|||
text-align: left; |
|||
color: #6EC89B; |
|||
background: rgba(110, 200, 155, 0.17); |
|||
border-radius: 3px; |
|||
} |
|||
.pos .order .summary .loyalty-points.negative{ |
|||
color: #C86E6E; |
|||
background: rgba(200, 110, 110, 0.17); |
|||
} |
|||
.pos .order .summary .loyalty-points-total { |
|||
border-top: solid 2px; |
|||
text-align: center; |
|||
padding-top: 4px; |
|||
margin-top: 4px; |
|||
} |
@ -0,0 +1,477 @@ |
|||
/* Copyright 2004-2010 OpenERP SA |
|||
* Copyright 2017 RGB Consulting S.L. (https://www.rgbconsulting.com)
|
|||
* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
|
|||
|
|||
odoo.define('pos_loyalty.loyalty_program', function(require) { |
|||
"use strict" |
|||
|
|||
var models = require('point_of_sale.models'); |
|||
var screens = require('point_of_sale.screens'); |
|||
|
|||
var utils = require('web.utils'); |
|||
var round_pr = utils.round_precision; |
|||
|
|||
var core = require('web.core'); |
|||
var QWeb = core.qweb; |
|||
var _t = core._t; |
|||
|
|||
models.load_fields('res.partner', 'loyalty_points'); |
|||
|
|||
models.load_models([{ |
|||
model: 'loyalty.program', |
|||
condition: function(self) { |
|||
return !!self.config.loyalty_id[0]; |
|||
}, |
|||
fields: ['name', 'pp_currency', 'pp_product', 'pp_order', 'rounding'], |
|||
domain: function(self) { |
|||
return [ |
|||
['id', '=', self.config.loyalty_id[0]] |
|||
]; |
|||
}, |
|||
loaded: function(self, loyalties) { |
|||
self.loyalty = loyalties[0]; |
|||
}, |
|||
}, { |
|||
model: 'loyalty.rule', |
|||
condition: function(self) { |
|||
return !!self.loyalty; |
|||
}, |
|||
fields: ['name', 'type', 'product_id', 'category_id', 'cumulative', 'pp_product', 'pp_currency'], |
|||
domain: function(self) { |
|||
return [ |
|||
['loyalty_program_id', '=', self.loyalty.id] |
|||
]; |
|||
}, |
|||
loaded: function(self, rules) { |
|||
|
|||
self.loyalty.rules = rules; |
|||
self.loyalty.rules_by_product_id = {}; |
|||
self.loyalty.rules_by_category_id = {}; |
|||
|
|||
function update_rules(rules, rule, id) { |
|||
if (!rules[id]) { |
|||
rules[id] = [rule]; |
|||
} else if (rule.cumulative) { |
|||
rules[id].unshift(rule); |
|||
} else { |
|||
rules[id].push(rule); |
|||
} |
|||
} |
|||
|
|||
_.each(rules, function(rule) { |
|||
if (rule.type === 'product') |
|||
update_rules(self.loyalty.rules_by_product_id, rule, rule.product_id[0]) |
|||
else if (rule.type === 'category') |
|||
update_rules(self.loyalty.rules_by_category_id, rule, rule.category_id[0]); |
|||
}); |
|||
}, |
|||
}, { |
|||
model: 'loyalty.reward', |
|||
condition: function(self) { |
|||
return !!self.loyalty; |
|||
}, |
|||
fields: ['name', 'type', 'minimum_points', 'gift_product_id', 'point_cost', 'discount_product_id', 'discount', 'discount_max', 'point_product_id'], |
|||
domain: function(self) { |
|||
return [ |
|||
['loyalty_program_id', '=', self.loyalty.id] |
|||
]; |
|||
}, |
|||
loaded: function(self, rewards) { |
|||
self.loyalty.rewards = rewards; |
|||
self.loyalty.rewards_by_id = {}; |
|||
for (var i = 0; i < rewards.length; i++) { |
|||
self.loyalty.rewards_by_id[rewards[i].id] = rewards[i]; |
|||
} |
|||
}, |
|||
}, ], { |
|||
'after': 'product.product' |
|||
}); |
|||
|
|||
var _orderline_super = models.Orderline.prototype; |
|||
models.Orderline = models.Orderline.extend({ |
|||
get_reward: function() { |
|||
return this.pos.loyalty.rewards_by_id[this.reward_id]; |
|||
}, |
|||
set_reward: function(reward) { |
|||
this.reward_id = reward.id; |
|||
}, |
|||
export_as_JSON: function() { |
|||
var json = _orderline_super.export_as_JSON.apply(this, arguments); |
|||
json.reward_id = this.reward_id; |
|||
return json; |
|||
}, |
|||
init_from_JSON: function(json) { |
|||
_orderline_super.init_from_JSON.apply(this, arguments); |
|||
this.reward_id = json.reward_id; |
|||
}, |
|||
}); |
|||
|
|||
var _order_super = models.Order.prototype; |
|||
models.Order = models.Order.extend({ |
|||
|
|||
/* The total of points won, excluding the points spent on rewards */ |
|||
get_won_points: function() { |
|||
if (!this.pos.loyalty || !this.get_client()) { |
|||
return 0; |
|||
} |
|||
|
|||
var orderLines = this.get_orderlines(); |
|||
var rounding = this.pos.loyalty.rounding; |
|||
|
|||
var product_sold = 0; |
|||
var total_sold = 0; |
|||
var total_points = 0; |
|||
|
|||
for (var i = 0; i < orderLines.length; i++) { |
|||
var line = orderLines[i]; |
|||
var product = line.get_product(); |
|||
var rules = this.pos.loyalty.rules_by_product_id[product.id] || []; |
|||
var overriden = false; |
|||
|
|||
if (line.get_reward()) { // Reward products are ignored
|
|||
continue; |
|||
} |
|||
|
|||
for (var j = 0; j < rules.length; j++) { |
|||
var rule = rules[j]; |
|||
total_points += round_pr(line.get_quantity() * rule.pp_product, rounding); |
|||
total_points += round_pr(line.get_price_with_tax() * rule.pp_currency, rounding); |
|||
// if affected by a non cumulative rule, skip the others. (non cumulative rules are put
|
|||
// at the beginning of the list when they are loaded )
|
|||
if (!rule.cumulative) { |
|||
overriden = true; |
|||
break; |
|||
} |
|||
} |
|||
|
|||
// Test the category rules
|
|||
if (product.pos_categ_id) { |
|||
var category = this.pos.db.get_category_by_id(product.pos_categ_id[0]); |
|||
while (category && !overriden) { |
|||
var rules = this.pos.loyalty.rules_by_category_id[category.id] || []; |
|||
for (var j = 0; j < rules.length; j++) { |
|||
var rule = rules[j]; |
|||
total_points += round_pr(line.get_quantity() * rule.pp_product, rounding); |
|||
total_points += round_pr(line.get_price_with_tax() * rule.pp_currency, rounding); |
|||
if (!rule.cumulative) { |
|||
overriden = true; |
|||
break; |
|||
} |
|||
} |
|||
var _category = category; |
|||
category = this.pos.db.get_category_by_id(this.pos.db.get_category_parent_id(category.id)); |
|||
if (_category === category) { |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
|
|||
if (!overriden) { |
|||
product_sold += line.get_quantity(); |
|||
total_sold += line.get_price_with_tax(); |
|||
} |
|||
} |
|||
|
|||
total_points += round_pr(total_sold * this.pos.loyalty.pp_currency, rounding); |
|||
total_points += round_pr(product_sold * this.pos.loyalty.pp_product, rounding); |
|||
total_points += round_pr(this.pos.loyalty.pp_order, rounding); |
|||
|
|||
return total_points; |
|||
}, |
|||
|
|||
/* The total number of points spent on rewards */ |
|||
get_spent_points: function() { |
|||
if (!this.pos.loyalty || !this.get_client()) { |
|||
return 0; |
|||
} else { |
|||
var lines = this.get_orderlines(); |
|||
var rounding = this.pos.loyalty.rounding; |
|||
var points = 0; |
|||
|
|||
for (var i = 0; i < lines.length; i++) { |
|||
var line = lines[i]; |
|||
var reward = line.get_reward(); |
|||
if (reward) { |
|||
if (reward.type === 'gift') { |
|||
points += round_pr(line.get_quantity() * reward.point_cost, rounding); |
|||
} else if (reward.type === 'discount') { |
|||
points += reward.point_cost; |
|||
} else if (reward.type === 'resale') { |
|||
points += (-line.get_quantity()); |
|||
} |
|||
} |
|||
} |
|||
|
|||
return points; |
|||
} |
|||
}, |
|||
|
|||
/* The total number of points lost or won after the order is validated */ |
|||
get_new_points: function() { |
|||
if (!this.pos.loyalty || !this.get_client()) { |
|||
return 0; |
|||
} else { |
|||
return round_pr(this.get_won_points() - this.get_spent_points(), this.pos.loyalty.rounding); |
|||
} |
|||
}, |
|||
|
|||
/* The total number of points that the customer will have after this order is validated */ |
|||
get_new_total_points: function() { |
|||
if (!this.pos.loyalty || !this.get_client()) { |
|||
return 0; |
|||
} else { |
|||
return round_pr(this.get_client().loyalty_points + this.get_new_points(), this.pos.loyalty.rounding); |
|||
} |
|||
}, |
|||
|
|||
/* The number of loyalty points currently owned by the customer */ |
|||
get_current_points: function() { |
|||
return this.get_client() ? this.get_client().loyalty_points : 0; |
|||
}, |
|||
|
|||
/* The total number of points spendable on rewards */ |
|||
get_spendable_points: function() { |
|||
if (!this.pos.loyalty || !this.get_client()) { |
|||
return 0; |
|||
} else { |
|||
return round_pr(this.get_client().loyalty_points - this.get_spent_points(), this.pos.loyalty.rounding); |
|||
} |
|||
}, |
|||
|
|||
has_discount_reward: function() { |
|||
var res = false; |
|||
var lines = this.get_orderlines(); |
|||
|
|||
for (var i = 0; i < lines.length; i++) { |
|||
var line = lines[i]; |
|||
var reward = line.get_reward(); |
|||
if (reward && reward.type === 'discount') { |
|||
res = true; |
|||
break; |
|||
} |
|||
} |
|||
return res; |
|||
}, |
|||
|
|||
/* The list of rewards that the current customer can get */ |
|||
get_available_rewards: function() { |
|||
var client = this.get_client(); |
|||
if (!client) { |
|||
return []; |
|||
} |
|||
var rewards = []; |
|||
var discount_reward_set = this.has_discount_reward(); |
|||
for (var i = 0; i < this.pos.loyalty.rewards.length; i++) { |
|||
var reward = this.pos.loyalty.rewards[i]; |
|||
|
|||
if (reward.minimum_points > this.get_spendable_points()) { |
|||
continue; |
|||
} else if (reward.type === 'gift' && |
|||
reward.point_cost > this.get_spendable_points()) { |
|||
continue; |
|||
} else if (reward.type === 'discount' && |
|||
(discount_reward_set || reward.point_cost > this.get_spendable_points())) { |
|||
continue; |
|||
} |
|||
rewards.push(reward); |
|||
} |
|||
return rewards; |
|||
}, |
|||
|
|||
apply_reward: function(reward) { |
|||
var client = this.get_client(); |
|||
if (!client) { |
|||
return; |
|||
} else if (reward.type === 'gift') { |
|||
var product = this.pos.db.get_product_by_id(reward.gift_product_id[0]); |
|||
|
|||
if (!product) { |
|||
return; |
|||
} |
|||
|
|||
this.add_product(product, { |
|||
price: 0, |
|||
quantity: 1, |
|||
merge: false, |
|||
extras: { |
|||
reward_id: reward.id |
|||
}, |
|||
}); |
|||
|
|||
} else if (reward.type === 'discount') { |
|||
|
|||
var crounding = this.pos.currency.rounding; |
|||
var order_total = this.get_total_with_tax(); |
|||
var discount = round_pr(order_total * reward.discount, crounding); |
|||
var discount_max = reward.discount_max |
|||
|
|||
if (discount_max && discount > discount_max) { |
|||
discount = discount_max; |
|||
} |
|||
|
|||
var product = this.pos.db.get_product_by_id(reward.discount_product_id[0]); |
|||
|
|||
if (!product) { |
|||
return; |
|||
} |
|||
|
|||
this.add_product(product, { |
|||
price: -discount, |
|||
quantity: 1, |
|||
merge: false, |
|||
extras: { |
|||
reward_id: reward.id |
|||
}, |
|||
}); |
|||
|
|||
} else if (reward.type === 'resale') { |
|||
|
|||
var lrounding = this.pos.loyalty.rounding; |
|||
var crounding = this.pos.currency.rounding; |
|||
var spendable = this.get_spendable_points(); |
|||
|
|||
var order_total = this.get_total_with_tax(); |
|||
var product = this.pos.db.get_product_by_id(reward.point_product_id[0]); |
|||
|
|||
if (!product) { |
|||
return; |
|||
} |
|||
|
|||
if (round_pr(spendable * product.price, crounding) > order_total) { |
|||
spendable = round_pr(Math.floor(order_total / product.price), lrounding); |
|||
} |
|||
|
|||
if (spendable < 0.00001) { |
|||
return; |
|||
} |
|||
|
|||
this.add_product(product, { |
|||
quantity: -spendable, |
|||
merge: false, |
|||
extras: { |
|||
reward_id: reward.id |
|||
}, |
|||
}); |
|||
} |
|||
}, |
|||
|
|||
finalize: function() { |
|||
var client = this.get_client(); |
|||
if (client) { |
|||
client.loyalty_points = this.get_new_total_points(); |
|||
this.pos.gui.screen_instances.clientlist.partner_cache.clear_node(client.id); |
|||
} |
|||
_order_super.finalize.apply(this, arguments); |
|||
}, |
|||
|
|||
export_for_printing: function() { |
|||
var json = _order_super.export_for_printing.apply(this, arguments); |
|||
if (this.pos.loyalty && this.get_client()) { |
|||
json.loyalty = { |
|||
rounding: this.pos.loyalty.rounding || 1, |
|||
name: this.pos.loyalty.name, |
|||
client: this.get_client().name, |
|||
points_won: this.get_won_points(), |
|||
points_spent: this.get_spent_points(), |
|||
points_total: this.get_new_total_points(), |
|||
}; |
|||
} |
|||
return json; |
|||
}, |
|||
|
|||
export_as_JSON: function() { |
|||
var json = _order_super.export_as_JSON.apply(this, arguments); |
|||
json.loyalty_points = this.get_new_points(); |
|||
return json; |
|||
}, |
|||
}); |
|||
|
|||
var LoyaltyButton = screens.ActionButtonWidget.extend({ |
|||
template: 'LoyaltyButton', |
|||
button_click: function() { |
|||
var self = this; |
|||
var order = this.pos.get_order(); |
|||
var client = order.get_client(); |
|||
if (!client) { |
|||
this.gui.show_screen('clientlist'); |
|||
return; |
|||
} |
|||
|
|||
var rewards = order.get_available_rewards(); |
|||
if (rewards.length === 0) { |
|||
this.gui.show_popup('error', { |
|||
'title': _t('No Rewards Available'), |
|||
'body': _t('There are no rewards available for this customer as part of the loyalty program'), |
|||
}); |
|||
} else if (rewards.length === 1 && this.pos.loyalty.rewards.length === 1) { |
|||
order.apply_reward(rewards[0]); |
|||
} else { |
|||
var list = []; |
|||
for (var i = 0; i < rewards.length; i++) { |
|||
list.push({ |
|||
label: rewards[i].name, |
|||
item: rewards[i], |
|||
}); |
|||
} |
|||
this.gui.show_popup('selection', { |
|||
'title': _t('Please select a reward'), |
|||
'list': list, |
|||
'confirm': function(reward) { |
|||
order.apply_reward(reward); |
|||
}, |
|||
}); |
|||
} |
|||
}, |
|||
}); |
|||
|
|||
screens.define_action_button({ |
|||
'name': 'loyalty', |
|||
'widget': LoyaltyButton, |
|||
'condition': function() { |
|||
return this.pos.loyalty && this.pos.loyalty.rewards.length; |
|||
}, |
|||
}); |
|||
|
|||
screens.OrderWidget.include({ |
|||
update_summary: function() { |
|||
this._super(); |
|||
|
|||
var order = this.pos.get_order(); |
|||
|
|||
var $loypoints = $(this.el).find('.summary .loyalty-points'); |
|||
|
|||
if (this.pos.loyalty && order.get_client()) { |
|||
var points_won = order.get_won_points(); |
|||
var points_spent = order.get_spent_points(); |
|||
var points_total = order.get_new_total_points(); |
|||
$loypoints.replaceWith($(QWeb.render('LoyaltyPoints', { |
|||
widget: this, |
|||
rounding: this.pos.loyalty.rounding, |
|||
points_won: points_won, |
|||
points_spent: points_spent, |
|||
points_total: points_total, |
|||
}))); |
|||
$loypoints = $(this.el).find('.summary .loyalty-points'); |
|||
$loypoints.removeClass('oe_hidden'); |
|||
|
|||
if (points_total < 0) { |
|||
$loypoints.addClass('negative'); |
|||
} else { |
|||
$loypoints.removeClass('negative'); |
|||
} |
|||
} else { |
|||
$loypoints.empty(); |
|||
$loypoints.addClass('oe_hidden'); |
|||
} |
|||
|
|||
if (this.pos.loyalty && |
|||
order.get_client() && |
|||
this.getParent().action_buttons && |
|||
this.getParent().action_buttons.loyalty) { |
|||
|
|||
var rewards = order.get_available_rewards(); |
|||
this.getParent().action_buttons.loyalty.highlight(!!rewards.length); |
|||
} |
|||
}, |
|||
}); |
|||
}); |
@ -0,0 +1,170 @@ |
|||
// Copyright 2004-2018 Odoo SA
|
|||
// Copyright 2018 Lambda IS DOOEL <https://www.lambda-is.com>
|
|||
// License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|||
|
|||
odoo.define('pos_loyalty.tour.test_pos_loyalty', function(require) { |
|||
"use strict"; |
|||
|
|||
// Some of the steps are taken from the pos_basic_order tour in point_of_sale.
|
|||
// Added additional ones necessary for testing the rewards.
|
|||
|
|||
var Tour = require("web_tour.tour"); |
|||
|
|||
function add_customer(customer_name) { |
|||
return [{ |
|||
content: 'open customer screen', |
|||
trigger: '.button.set-customer', |
|||
}, { |
|||
content: 'choose customer ' + customer_name, |
|||
trigger: 'table.client-list tbody.client-list-contents tr.client-line td:contains("' + customer_name + '")', |
|||
}, { |
|||
content: 'select customer ' + customer_name, |
|||
trigger: '.button.next:contains("Set Customer")', |
|||
}, { |
|||
content: 'Check if customer ' + customer_name + ' is added', |
|||
trigger: '.button.set-customer:contains("' + customer_name + '")', |
|||
run: function() {}, // it's a check
|
|||
}]; |
|||
} |
|||
|
|||
function add_reward(reward_name) { |
|||
return [{ |
|||
content: 'open rewards screen', |
|||
trigger: '.control-button:contains("Rewards")', |
|||
}, { |
|||
content: 'choose reward', |
|||
trigger: '.selection-item:contains("' + reward_name + '")', |
|||
}] |
|||
} |
|||
|
|||
function add_product_to_order(product_name) { |
|||
return [{ |
|||
content: 'buy ' + product_name, |
|||
trigger: '.product-list .product-name:contains("' + product_name + '")', |
|||
}, { |
|||
content: 'the ' + product_name + ' have been added to the order', |
|||
trigger: '.order .product-name:contains("' + product_name + '")', |
|||
run: function() {}, // it's a check
|
|||
}]; |
|||
} |
|||
|
|||
function verify_order_product(product_name) { |
|||
return [{ |
|||
content: 'check if ' + product_name + ' is in order', |
|||
trigger: '.orderline .product-name:contains("' + product_name + '")', |
|||
run: function() {}, // it's a check
|
|||
}] |
|||
} |
|||
|
|||
function generate_keypad_steps(amount_str, keypad_selector) { |
|||
var i, steps = [], |
|||
current_char; |
|||
for (i = 0; i < amount_str.length; ++i) { |
|||
current_char = amount_str[i]; |
|||
steps.push({ |
|||
content: 'press ' + current_char + ' on payment keypad', |
|||
trigger: keypad_selector + ' .input-button:contains("' + current_char + '"):visible' |
|||
}); |
|||
} |
|||
|
|||
return steps; |
|||
} |
|||
|
|||
function generate_payment_screen_keypad_steps(amount_str) { |
|||
return generate_keypad_steps(amount_str, '.payment-numpad'); |
|||
} |
|||
|
|||
function generate_product_screen_keypad_steps(amount_str) { |
|||
return generate_keypad_steps(amount_str, '.numpad'); |
|||
} |
|||
|
|||
function verify_order_total(total_str) { |
|||
return [{ |
|||
content: 'order total contains ' + total_str, |
|||
trigger: '.order .total .value:contains("' + total_str + '")', |
|||
run: function() {}, // it's a check
|
|||
}]; |
|||
} |
|||
|
|||
function goto_payment_screen_and_select_payment_method() { |
|||
return [{ |
|||
content: "go to payment screen", |
|||
trigger: '.button.pay', |
|||
}, { |
|||
content: "pay with cash", |
|||
trigger: '.paymentmethod:contains("Cash")', |
|||
}]; |
|||
} |
|||
|
|||
function finish_order() { |
|||
return [{ |
|||
content: "validate the order", |
|||
trigger: '.button.next:visible', |
|||
}, { |
|||
content: "verify that the order is being sent to the backend", |
|||
trigger: ".js_connecting:visible", |
|||
run: function() {}, // it's a check
|
|||
}, { |
|||
content: "verify that the order has been succesfully sent to the backend", |
|||
trigger: ".js_connected:visible", |
|||
run: function() {}, // it's a check
|
|||
}, { |
|||
content: "next order", |
|||
trigger: '.button.next:visible', |
|||
}]; |
|||
} |
|||
|
|||
var steps = [{ |
|||
content: 'waiting for loading to finish', |
|||
trigger: '.o_main_content:has(.loader:hidden)', |
|||
run: function() {}, // it's a check
|
|||
}]; |
|||
|
|||
steps = steps.concat(add_customer('Agrolait')); |
|||
steps = steps.concat(add_product_to_order('Peaches')); |
|||
steps = steps.concat(verify_order_total('5.10')); |
|||
|
|||
steps = steps.concat(add_product_to_order('Peaches')); // buy another kg of peaches
|
|||
steps = steps.concat(verify_order_total('10.20')); |
|||
steps = steps.concat(goto_payment_screen_and_select_payment_method()); |
|||
steps = steps.concat(generate_payment_screen_keypad_steps("12.20")); |
|||
|
|||
steps = steps.concat([{ |
|||
content: "verify tendered", |
|||
trigger: '.col-tendered:contains("12.20")', |
|||
run: function() {}, // it's a check
|
|||
}, { |
|||
content: "verify change", |
|||
trigger: '.col-change:contains("2.00")', |
|||
run: function() {}, // it's a check
|
|||
}]); |
|||
|
|||
steps = steps.concat(finish_order()); |
|||
|
|||
Tour.register('test_pos_loyalty_acquire_points', { |
|||
test: true, |
|||
url: '/pos/web' |
|||
}, steps); |
|||
|
|||
steps = [{ |
|||
content: 'waiting for loading to finish', |
|||
trigger: '.o_main_content:has(.loader:hidden)', |
|||
run: function() {}, // it's a check
|
|||
}]; |
|||
steps = steps.concat(add_customer('Agrolait')); |
|||
steps = steps.concat(add_reward('Free Peaches')); |
|||
steps = steps.concat(verify_order_product('Peaches')); |
|||
steps = steps.concat(verify_order_total('0.00')); |
|||
steps = steps.concat(goto_payment_screen_and_select_payment_method()); |
|||
steps = steps.concat([{ |
|||
content: "verify tendered", |
|||
trigger: '.col-tendered:contains("0.00")', |
|||
run: function() {}, // it's a check
|
|||
}]); |
|||
steps = steps.concat(finish_order()); |
|||
|
|||
Tour.register('test_pos_loyalty_spend_points', { |
|||
test: true, |
|||
url: '/pos/web' |
|||
}, steps); |
|||
}) |
@ -0,0 +1,85 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<templates id="template" xml:space="preserve"> |
|||
|
|||
<t t-name="LoyaltyPoints"> |
|||
<div class='loyalty-points'> |
|||
<div class='loyalty-points-title'>Points</div> |
|||
<t t-if='points_won'> |
|||
<div class="loyalty-points-won"> |
|||
<span class='value'>+<t t-esc='widget.format_pr(points_won,rounding)'/></span> |
|||
</div> |
|||
</t> |
|||
<t t-if='points_spent'> |
|||
<div class="loyalty-points-spent"> |
|||
<span class='value'>-<t t-esc='widget.format_pr(points_spent,rounding)'/></span> |
|||
</div> |
|||
</t> |
|||
<div class='loyalty-points-total'> |
|||
<span class='value'><t t-esc='widget.format_pr(points_total,rounding)' /></span> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
|
|||
<t t-name="LoyaltyButton"> |
|||
<div class='control-button'> |
|||
<i class='fa fa-star' /> Rewards |
|||
</div> |
|||
</t> |
|||
|
|||
<t t-extend='OrderWidget'> |
|||
<t t-jquery='.summary' t-operation='prepend'> |
|||
<div class='loyalty-points oe_hidden'>.</div> |
|||
</t> |
|||
</t> |
|||
|
|||
<t t-extend='ClientLine'> |
|||
<t t-jquery='.client-line' t-operation='append'> |
|||
<td> |
|||
<t t-esc='widget.format_pr(partner.loyalty_points || 0, widget.pos.loyalty ? widget.pos.loyalty.rounding : 1.0)' /> |
|||
</td> |
|||
</t> |
|||
</t> |
|||
|
|||
<t t-extend="XmlReceipt"> |
|||
<t t-jquery='.before-footer' t-operation='append'> |
|||
<t t-if='receipt.loyalty'> |
|||
<div class='loyalty' value-decimals='2' value-autoint='on'> |
|||
<div>--------------------------------</div> |
|||
<br/> |
|||
<div size='double-height'><t t-esc='receipt.loyalty.name'/></div> |
|||
<br /> |
|||
<div><t t-esc='receipt.loyalty.client' /></div> |
|||
<br/> |
|||
<t t-if='receipt.loyalty.points_won'> |
|||
<line><left>Points Won</left><right><value><t t-esc='receipt.loyalty.points_won' /></value></right></line> |
|||
</t> |
|||
<t t-if='receipt.loyalty.points_spent'> |
|||
<line><left>Points Spent</left><right><value><t t-esc='receipt.loyalty.points_spent' /></value></right></line> |
|||
</t> |
|||
<t t-if='receipt.loyalty.points_total'> |
|||
<line><left>Total Points</left><right><value><t t-esc='receipt.loyalty.points_total' /></value></right></line> |
|||
</t> |
|||
<br /> |
|||
</div> |
|||
</t> |
|||
</t> |
|||
</t> |
|||
|
|||
<t t-extend='ClientDetails'> |
|||
<t t-jquery='.client-details-right' t-operation='prepend'> |
|||
<div class='client-detail'> |
|||
<span class='label'>Points</span> |
|||
<span class='detail client-points'> |
|||
<t t-esc='widget.format_pr(partner.loyalty_points || 0, widget.pos.loyalty ? widget.pos.loyalty.rounding : 1.0)' /> |
|||
</span> |
|||
</div> |
|||
</t> |
|||
</t> |
|||
|
|||
<t t-extend='ClientListScreenWidget'> |
|||
<t t-jquery='.client-list thead tr' t-operation='append'> |
|||
<th>Points</th> |
|||
</t> |
|||
</t> |
|||
|
|||
</templates> |
@ -0,0 +1,2 @@ |
|||
|
|||
from . import test_pos_loyalty |
@ -0,0 +1,68 @@ |
|||
# Copyright 2004-2018 Odoo SA |
|||
# Copyright 2018 Lambda IS DOOEL <https://www.lambda-is.com> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
from odoo.tests import HttpCase |
|||
|
|||
|
|||
class TestPOSLoyalty(HttpCase): |
|||
|
|||
def test_pos_loyalty(self): |
|||
main_pos_config = self.env.ref('point_of_sale.pos_config_main') |
|||
target_product = self.env.ref('point_of_sale.letter_tray') |
|||
free_product = self.env.ref('point_of_sale.desk_organizer') |
|||
customer = self.env.ref('base.res_partner_2') |
|||
loyalty_program = self.env['loyalty.program'].create({ |
|||
'name': 'foo', |
|||
'rule_ids': [(0, 0, { |
|||
'name': 'Peaches', |
|||
'type': 'product', |
|||
'product_id': target_product.id, |
|||
'pp_product': 10, |
|||
})], |
|||
'reward_ids': [(0, 0, { |
|||
'name': 'Free Peaches', |
|||
'type': 'gift', |
|||
'gift_product_id': target_product.id, |
|||
'point_cost': 20, |
|||
'minimum_points': 20, |
|||
}), (0, 0, { |
|||
'name': 'Free Onions', |
|||
'type': 'gift', |
|||
'gift_product_id': free_product.id, |
|||
'point_cost': 20, |
|||
'minimum_points': 20, |
|||
})] |
|||
}) |
|||
main_pos_config.write({'loyalty_id': loyalty_program.id}) |
|||
main_pos_config.open_session_cb() |
|||
|
|||
# needed because tests are run before the module is marked as |
|||
# installed. In js web will only load qweb coming from modules |
|||
# that are returned by the backend in module_boot. Without |
|||
# this you end up with js, css but no qweb. |
|||
self.env['ir.module.module'].search( |
|||
[('name', '=', 'pos_loyalty')], limit=1).state = 'installed' |
|||
|
|||
# Process an order with 2kg of Peaches which should |
|||
# add 20 loyalty points |
|||
self.phantom_js("/pos/web", |
|||
"odoo.__DEBUG__.services['web_tour.tour'].run(" |
|||
"'test_pos_loyalty_acquire_points')", |
|||
"odoo.__DEBUG__.services['web_tour.tour'].tours" |
|||
".test_pos_loyalty_acquire_points.ready", |
|||
login="admin") |
|||
|
|||
self.assertEqual(customer.loyalty_points, 20) |
|||
|
|||
# Spend 20 loyalty points on "Free Peaches" reward |
|||
self.phantom_js("/pos/web", |
|||
"odoo.__DEBUG__.services['web_tour.tour'].run(" |
|||
"'test_pos_loyalty_spend_points')", |
|||
"odoo.__DEBUG__.services['web_tour.tour'].tours" |
|||
".test_pos_loyalty_spend_points.ready", |
|||
login="admin") |
|||
|
|||
customer_points = customer.read( |
|||
['loyalty_points'])[0]['loyalty_points'] |
|||
self.assertEqual(customer_points, 0) |
@ -0,0 +1,83 @@ |
|||
<?xml version="1.0"?> |
|||
<odoo> |
|||
<record id="loyalty_program_form_view" model="ir.ui.view"> |
|||
<field name="name">loyalty.program.form</field> |
|||
<field name="model">loyalty.program</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Loyalty Program"> |
|||
<sheet> |
|||
<div class="oe_title"> |
|||
<label class="oe_edit_only" for="name"/> |
|||
<h1> |
|||
<field name="name" class="oe_inline"/> |
|||
</h1> |
|||
</div> |
|||
|
|||
<group> |
|||
<group> |
|||
<field name="pp_product"/> |
|||
<field name="pp_currency"/> |
|||
</group> |
|||
<group> |
|||
<field name="pp_order"/> |
|||
<field name="rounding"/> |
|||
</group> |
|||
</group> |
|||
|
|||
<separator string="Rules" colspan="4"/> |
|||
<p>Rules define how loyalty points are earned for specific products or categories</p> |
|||
<field name="rule_ids" colspan="4" nolabel="1"> |
|||
<tree string="Rules"> |
|||
<field name="name"/> |
|||
<field name="pp_product"/> |
|||
<field name="pp_currency"/> |
|||
<field name="cumulative"/> |
|||
</tree> |
|||
</field> |
|||
|
|||
<separator string="Rewards" colspan="4"/> |
|||
<p>Reward the customer with gifts or discounts for loyalty points</p> |
|||
<field name="reward_ids" colspan="4" nolabel="1"> |
|||
<tree string="Rewards"> |
|||
<field name="name"/> |
|||
<field name="type"/> |
|||
</tree> |
|||
</field> |
|||
</sheet> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="loyalty_program_tree_view" model="ir.ui.view"> |
|||
<field name="name">loyalty.program.tree</field> |
|||
<field name="model">loyalty.program</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="Loyalty Programs"> |
|||
<field name="name"/> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="loyalty_program_action" model="ir.actions.act_window"> |
|||
<field name="name">Loyalty Programs</field> |
|||
<field name="type">ir.actions.act_window</field> |
|||
<field name="res_model">loyalty.program</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">tree,form</field> |
|||
<field name="help" type="html"> |
|||
<p class="oe_view_nocontent_create"> |
|||
Click create to define a Loyalty Program. |
|||
</p> |
|||
<p> |
|||
Loyalty Programs allow you customers to earn points |
|||
and rewards when purchasing from your shops. |
|||
</p> |
|||
</field> |
|||
</record> |
|||
|
|||
<menuitem parent="point_of_sale.menu_point_config_product" |
|||
action="loyalty_program_action" |
|||
id="loyalty_program_menu" |
|||
sequence="30" |
|||
groups="point_of_sale.group_pos_manager"/> |
|||
</odoo> |
@ -0,0 +1,37 @@ |
|||
<?xml version="1.0"?> |
|||
<odoo> |
|||
<record id="loyalty_reward_form_view" model="ir.ui.view"> |
|||
<field name="name">loyalty.reward.form</field> |
|||
<field name="model">loyalty.reward</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Loyalty Reward"> |
|||
<div class="oe_title"> |
|||
<label class="oe_edit_only" for="name"/> |
|||
<h1> |
|||
<field name="name" class="oe_inline"/> |
|||
</h1> |
|||
</div> |
|||
<group> |
|||
<field name="type"/> |
|||
</group> |
|||
<group > |
|||
<field name="gift_product_id" |
|||
attrs="{'invisible':[('type','!=','gift')], 'required':[('type','=','gift')]}"/> |
|||
<field name="discount" |
|||
attrs="{'invisible':[('type','!=','discount')]}"/> |
|||
<field name="discount_max" |
|||
attrs="{'invisible':[('type','!=','discount')]}"/> |
|||
<field name="discount_product_id" |
|||
attrs="{'invisible':[('type','!=','discount')], 'required':[('type','=','discount')]}"/> |
|||
<field name="point_product_id" |
|||
attrs="{'invisible': [('type','!=','resale')], 'required': [('type','=','resale')]}"/> |
|||
</group> |
|||
<group> |
|||
<field name="point_cost" |
|||
attrs="{'invisible':[('type','=','resale')]}"/> |
|||
<field name="minimum_points"/> |
|||
</group> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
</odoo> |
@ -0,0 +1,31 @@ |
|||
<?xml version="1.0"?> |
|||
<odoo> |
|||
<record id="loyalty_rule_form_view" model="ir.ui.view"> |
|||
<field name="name">loyalty.rule.form</field> |
|||
<field name="model">loyalty.rule</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Loyalty Rule"> |
|||
<div class="oe_title"> |
|||
<label class="oe_edit_only" for="name"/> |
|||
<h1> |
|||
<field name="name" class="oe_inline"/> |
|||
</h1> |
|||
</div> |
|||
<group> |
|||
<group> |
|||
<field name="type"/> |
|||
</group> |
|||
<group> |
|||
<field name="product_id" attrs="{'invisible': [('type','!=','product')], 'required': [('type','=','product')]}"/> |
|||
<field name="category_id" attrs="{'invisible': [('type','!=','category')], 'required': [('type','=','category')]}"/> |
|||
</group> |
|||
</group> |
|||
<group col="6"> |
|||
<field name="pp_product"/> |
|||
<field name="pp_currency"/> |
|||
<field name="cumulative"/> |
|||
</group> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
</odoo> |
@ -0,0 +1,23 @@ |
|||
<?xml version="1.0"?> |
|||
<odoo> |
|||
<record id="pos_config_view_form" model="ir.ui.view"> |
|||
<field name="name">pos.config.form</field> |
|||
<field name="model">pos.config</field> |
|||
<field name="inherit_id" ref="point_of_sale.pos_config_view_form"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//div[@id='pricelist_setting']" position="after"> |
|||
<div class="col-xs-12 col-md-6 o_setting_box" title="abc"> |
|||
<div class="o_setting_right_pane"> |
|||
<label for="loyalty_id" string="Loyalty Program (OCA)"/> |
|||
<div class="text-muted"> |
|||
Loyalty program that will be available in this PoS |
|||
</div> |
|||
<div class="content-group mt16"> |
|||
<field name="loyalty_id"/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
</odoo> |
@ -0,0 +1,15 @@ |
|||
<?xml version="1.0"?> |
|||
<odoo> |
|||
<record id="pos_order_form_view" model="ir.ui.view"> |
|||
<field name="name">pos.order.form</field> |
|||
<field name="model">pos.order</field> |
|||
<field name="inherit_id" ref="point_of_sale.view_pos_pos_form"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//page[@name='extra']" position="inside"> |
|||
<group name="loyalty" string="Loyalty Programs"> |
|||
<field name="loyalty_points"/> |
|||
</group> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
</odoo> |
@ -0,0 +1,18 @@ |
|||
<?xml version="1.0"?> |
|||
<odoo> |
|||
<record id="partner_property_form_view" model="ir.ui.view"> |
|||
<field name="name">partner.property.form</field> |
|||
<field name="model">res.partner</field> |
|||
<field name="inherit_id" ref="point_of_sale.view_partner_property_form"/> |
|||
<field name="arch" type="xml"> |
|||
<button name="%(point_of_sale.action_pos_pos_form)d" position="before"> |
|||
<button class="oe_stat_button" type="action" name="%(point_of_sale.action_pos_pos_form)d" |
|||
context="{'search_default_partner_id': active_id,'default_partner_id': active_id}" |
|||
attrs="{'invisible': ['|', ('customer', '=', False), ('pos_order_count', '=', 0)]}" |
|||
icon="fa-star"> |
|||
<field name="loyalty_points" widget="statinfo"/> |
|||
</button> |
|||
</button> |
|||
</field> |
|||
</record> |
|||
</odoo> |
@ -0,0 +1,9 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<template id="assets" inherit_id="point_of_sale.assets"> |
|||
<xpath expr="." position="inside"> |
|||
<script type="text/javascript" src="/pos_loyalty/static/src/js/pos.js"></script> |
|||
<link rel="stylesheet" href="/pos_loyalty/static/src/css/pos.css"/> |
|||
</xpath> |
|||
</template> |
|||
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue