diff --git a/pos_access_right/README.rst b/pos_access_right/README.rst new file mode 100644 index 00000000..9fdea9e2 --- /dev/null +++ b/pos_access_right/README.rst @@ -0,0 +1,93 @@ +================================== +Point of Sale - Extra Access Right +================================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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/12.0/pos_access_right + :alt: OCA/pos +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/pos-12-0/pos-12-0-pos_access_right + :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/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends Odoo Point Of Sale features, restricting possibility to cashier to make some actions in the Point of Sale. This module will add the following groups to Odoo: + +* **PoS - Negative Quantity**: The cashier can sell negative quantity in Point Of Sale (ie, can return products); +* **PoS - Discount**: The cashier can set Discount in Point Of Sale; +* **PoS - Change Unit Price**: The cashier can change the unit price of a product in Point Of Sale; +* **PoS - Many Orders**: The cashier can many orders at the same time; +* **PoS - Delete Order**: The cashier can not delete a full order; + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +Once installed, you have to give correct access right to your cashiers. + +Usage +===== + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/184/9.0 + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* La Louve +* GRAP + +Contributors +~~~~~~~~~~~~ + +* Sylvain LE GAL +* Ammar Officewla + +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 `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/pos_access_right/__init__.py b/pos_access_right/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/pos_access_right/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/pos_access_right/__manifest__.py b/pos_access_right/__manifest__.py new file mode 100644 index 00000000..fe04b4e0 --- /dev/null +++ b/pos_access_right/__manifest__.py @@ -0,0 +1,24 @@ +# Copyright (C) 2016-Today: La Louve () +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + 'name': 'Point of Sale - Extra Access Right', + 'version': '13.0.1.0.0', + 'category': 'Point Of Sale', + 'summary': 'Point of Sale - Extra Access Right for certain actions', + 'author': 'La Louve, GRAP, Odoo Community Association (OCA)', + 'website': 'http://www.github.com/OCA/pos', + 'license': 'AGPL-3', + 'depends': [ + 'point_of_sale', + ], + 'data': [ + 'security/res_groups.xml', + 'static/src/xml/templates.xml', + ], + 'demo': [ + 'demo/res_groups.xml', + ], + 'installable': True, +} diff --git a/pos_access_right/demo/res_groups.xml b/pos_access_right/demo/res_groups.xml new file mode 100644 index 00000000..13b84b4b --- /dev/null +++ b/pos_access_right/demo/res_groups.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pos_access_right/i18n/ca.po b/pos_access_right/i18n/ca.po new file mode 100644 index 00000000..b0ee049f --- /dev/null +++ b/pos_access_right/i18n/ca.po @@ -0,0 +1,191 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_access_right +# +# Translators: +# Marc Tormo i Bochaca , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-03-28 05:50+0000\n" +"PO-Revision-Date: 2017-03-28 05:50+0000\n" +"Last-Translator: Marc Tormo i Bochaca , 2017\n" +"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:142 +#, python-format +msgid "Change Unit Price - Unauthorized function" +msgstr "Canviar preu unitari - Funció no autoritzada " + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:87 +#, python-format +msgid "Delete Order - Unauthorized function" +msgstr "Esborrar comanda - Funció no autoritzada " + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:135 +#, python-format +msgid "Discount - Unauthorized function" +msgstr "Descomptes - Funció no autoritzada " + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:70 +#, python-format +msgid "Many Orders - Unauthorized function" +msgstr "Múltiples Comandes - Funció no autoritzada" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:115 +#, python-format +msgid "Negative Quantity - Unauthorized function" +msgstr "Quantitat Negativa - Funció no autoritzada " + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:166 +#, fuzzy, python-format +#| msgid "Discount - Unauthorized function" +msgid "Payment - Unauthorized function" +msgstr "Descomptes - Funció no autoritzada " + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:71 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:88 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:116 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:136 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:143 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:167 +#, python-format +msgid "Please ask your manager to do it." +msgstr "Si us plau, pregunti al seu administrador per fer-ho." + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_discount_id +msgid "Point of Sale - Allow Discount" +msgstr "Punt de Venda - Permetre Descomptes " + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_negative_qty_id +msgid "Point of Sale - Allow Negative Quantity" +msgstr "Punt de Venda - Permetre quantitats negatives " + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_change_unit_price_id +msgid "Point of Sale - Allow Unit Price Change" +msgstr "Punt de Venda - Permetre canviar el preu de venda " + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_delete_order_id +#: model:res.groups,name:pos_access_right.group_delete_order +msgid "Point of Sale - Delete Order" +msgstr "Punt de Venda - Esborrar comandes " + +#. module: pos_access_right +#: model:res.groups,name:pos_access_right.group_discount +msgid "Point of Sale - Discount" +msgstr "Punt de Venda - Descomptes " + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_multi_order_id +#: model:res.groups,name:pos_access_right.group_multi_order +msgid "Point of Sale - Many Orders" +msgstr "Punt de Venda - Múltiples Comandes " + +#. module: pos_access_right +#: model:res.groups,name:pos_access_right.group_negative_qty +msgid "Point of Sale - Negative Quantity" +msgstr "Punt de Venda - Quantitats negatives " + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_payment_id +#: model:res.groups,name:pos_access_right.group_payment +#, fuzzy +#| msgid "Point of Sale - Discount" +msgid "Point of Sale - Payment" +msgstr "Punt de Venda - Descomptes " + +#. module: pos_access_right +#: model:res.groups,name:pos_access_right.group_change_unit_price +msgid "Point of Sale - Unit Price Change" +msgstr "Punt de Venda - Canviar preu unitari " + +#. module: pos_access_right +#: model:ir.model,name:pos_access_right.model_pos_config +#, fuzzy +msgid "Point of Sale Configuration" +msgstr "Punt de Venda - Descomptes " + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_discount_id +msgid "" +"This field is there to pass the id of the 'PoS - Allow Discount' Group to " +"the Point of Sale Frontend." +msgstr "" +"Aquest camp està aquí per passar el ID del grup 'TPV - Permetre Descomptes' " +"cap a la pantalla del Punt de Venda." + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_negative_qty_id +msgid "" +"This field is there to pass the id of the 'PoS - Allow Negative Quantity' " +"Group to the Point of Sale Frontend." +msgstr "" +"Aquest camp està aquí per passar el ID del grup 'TPV - Permetre Quantitats " +"Negatives' cap a la pantalla del Punt de Venda." + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_change_unit_price_id +msgid "" +"This field is there to pass the id of the 'PoS - Allow Unit Price Change' " +"Group to the Point of Sale Frontend." +msgstr "" +"Aquest camp està aquí per passar el ID del grup 'TPV - Canviar Preu Unitari' " +"cap a la pantalla del Punt de Venda." + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_delete_order_id +msgid "" +"This field is there to pass the id of the 'PoS - Delete Order' Group to the " +"Point of Sale Frontend." +msgstr "" +"Aquest camp està aquí per passar el ID del grup 'TPV - Esborrar Comanda' cap " +"a la pantalla del Punt de Venda." + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_multi_order_id +msgid "" +"This field is there to pass the id of the 'PoS - Many Orders Group to the " +"Point of Sale Frontend." +msgstr "" +"Aquest camp està aquí per passar el ID del grup 'TPV - Múltiples Comandes' " +"cap a la pantalla del Punt de Venda." + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_payment_id +#, fuzzy +#| msgid "" +#| "This field is there to pass the id of the 'PoS - Many Orders Group to the " +#| "Point of Sale Frontend." +msgid "" +"This field is there to pass the id of the 'PoS - Payment' Group to the Point " +"of Sale Frontend." +msgstr "" +"Aquest camp està aquí per passar el ID del grup 'TPV - Múltiples Comandes' " +"cap a la pantalla del Punt de Venda." + +#~ msgid "pos.config" +#~ msgstr "pos.config" diff --git a/pos_access_right/i18n/fr.po b/pos_access_right/i18n/fr.po new file mode 100644 index 00000000..69a5fa18 --- /dev/null +++ b/pos_access_right/i18n/fr.po @@ -0,0 +1,189 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_access_right +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-02 11:49+0000\n" +"PO-Revision-Date: 2016-11-02 11:49+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:142 +#, python-format +msgid "Change Unit Price - Unauthorized function" +msgstr "Changer le prix unitaire - Fonctionnalité non autorisée" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:87 +#, python-format +msgid "Delete Order - Unauthorized function" +msgstr "Supprimer une commande de vente - Fonctionnalité non autorisée" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:135 +#, python-format +msgid "Discount - Unauthorized function" +msgstr "Remise - Fonctionnalité non autorisée" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:70 +#, python-format +msgid "Many Orders - Unauthorized function" +msgstr "Plusieurs Commandes simultanées - Fonctionnalité non autorisée" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:115 +#, python-format +msgid "Negative Quantity - Unauthorized function" +msgstr "Quantité négative - Fonctionnalité non autorisée" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:166 +#, fuzzy, python-format +#| msgid "Discount - Unauthorized function" +msgid "Payment - Unauthorized function" +msgstr "Remise - Fonctionnalité non autorisée" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:71 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:88 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:116 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:136 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:143 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:167 +#, python-format +msgid "Please ask your manager to do it." +msgstr "Veuillez vous rapprocher d'un responsable" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_discount_id +msgid "Point of Sale - Allow Discount" +msgstr "Point de vente - Autoriser les remises" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_negative_qty_id +msgid "Point of Sale - Allow Negative Quantity" +msgstr "Point de vente - Autoriser les quantités négatives" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_change_unit_price_id +msgid "Point of Sale - Allow Unit Price Change" +msgstr "Point de vente - Autoriser le changement de prix unitaire" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_delete_order_id +#: model:res.groups,name:pos_access_right.group_delete_order +msgid "Point of Sale - Delete Order" +msgstr "Point de Vente - Supprimer une commande" + +#. module: pos_access_right +#: model:res.groups,name:pos_access_right.group_discount +msgid "Point of Sale - Discount" +msgstr "Point de Vente - Remise" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_multi_order_id +#: model:res.groups,name:pos_access_right.group_multi_order +msgid "Point of Sale - Many Orders" +msgstr "Point de Vente - Plusieurs commandes simultanées" + +#. module: pos_access_right +#: model:res.groups,name:pos_access_right.group_negative_qty +msgid "Point of Sale - Negative Quantity" +msgstr "Point de Vente - Quantité négative" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_payment_id +#: model:res.groups,name:pos_access_right.group_payment +#, fuzzy +#| msgid "Point of Sale - Discount" +msgid "Point of Sale - Payment" +msgstr "Point de Vente - Remise" + +#. module: pos_access_right +#: model:res.groups,name:pos_access_right.group_change_unit_price +msgid "Point of Sale - Unit Price Change" +msgstr "Point de Vente - Changer de prix" + +#. module: pos_access_right +#: model:ir.model,name:pos_access_right.model_pos_config +#, fuzzy +msgid "Point of Sale Configuration" +msgstr "Point de Vente - Remise" + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_discount_id +msgid "" +"This field is there to pass the id of the 'PoS - Allow Discount' Group to " +"the Point of Sale Frontend." +msgstr "" +"Ce champs existe pour passer l'ID du groupe 'PdV - Autoriser les remises' au " +"sein du point de vente tactile." + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_negative_qty_id +msgid "" +"This field is there to pass the id of the 'PoS - Allow Negative Quantity' " +"Group to the Point of Sale Frontend." +msgstr "" +"Ce champs existe pour passer l'ID du groupe 'PdV - Autoriser les quantités " +"négatives' au sein du point de vente tactile." + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_change_unit_price_id +msgid "" +"This field is there to pass the id of the 'PoS - Allow Unit Price Change' " +"Group to the Point of Sale Frontend." +msgstr "" +"Ce champs existe pour passer l'ID du groupe 'PdV - Autoriser les changements " +"de prix unitaires' au sein du point de vente tactile." + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_delete_order_id +msgid "" +"This field is there to pass the id of the 'PoS - Delete Order' Group to the " +"Point of Sale Frontend." +msgstr "" +"Ce champs existe pour passer l'ID du groupe 'PdV - Supprimer une commande' " +"au sein du point de vente tactile." + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_multi_order_id +msgid "" +"This field is there to pass the id of the 'PoS - Many Orders Group to the " +"Point of Sale Frontend." +msgstr "" +"Ce champs existe pour passer l'ID du groupe 'PdV - Plusieurs commandes' au " +"sein du point de vente tactile." + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_payment_id +#, fuzzy +#| msgid "" +#| "This field is there to pass the id of the 'PoS - Many Orders Group to the " +#| "Point of Sale Frontend." +msgid "" +"This field is there to pass the id of the 'PoS - Payment' Group to the Point " +"of Sale Frontend." +msgstr "" +"Ce champs existe pour passer l'ID du groupe 'PdV - Plusieurs commandes' au " +"sein du point de vente tactile." + +#~ msgid "pos.config" +#~ msgstr "pos.config" diff --git a/pos_access_right/i18n/pos_access_right.pot b/pos_access_right/i18n/pos_access_right.pot new file mode 100644 index 00000000..17d4e2a8 --- /dev/null +++ b/pos_access_right/i18n/pos_access_right.pot @@ -0,0 +1,152 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_access_right +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:142 +#, python-format +msgid "Change Unit Price - Unauthorized function" +msgstr "" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:87 +#, python-format +msgid "Delete Order - Unauthorized function" +msgstr "" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:135 +#, python-format +msgid "Discount - Unauthorized function" +msgstr "" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:70 +#, python-format +msgid "Many Orders - Unauthorized function" +msgstr "" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:115 +#, python-format +msgid "Negative Quantity - Unauthorized function" +msgstr "" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:166 +#, python-format +msgid "Payment - Unauthorized function" +msgstr "" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:71 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:88 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:116 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:136 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:143 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:167 +#, python-format +msgid "Please ask your manager to do it." +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_discount_id +msgid "Point of Sale - Allow Discount" +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_negative_qty_id +msgid "Point of Sale - Allow Negative Quantity" +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_change_unit_price_id +msgid "Point of Sale - Allow Unit Price Change" +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_delete_order_id +#: model:res.groups,name:pos_access_right.group_delete_order +msgid "Point of Sale - Delete Order" +msgstr "" + +#. module: pos_access_right +#: model:res.groups,name:pos_access_right.group_discount +msgid "Point of Sale - Discount" +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_multi_order_id +#: model:res.groups,name:pos_access_right.group_multi_order +msgid "Point of Sale - Many Orders" +msgstr "" + +#. module: pos_access_right +#: model:res.groups,name:pos_access_right.group_negative_qty +msgid "Point of Sale - Negative Quantity" +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_payment_id +#: model:res.groups,name:pos_access_right.group_payment +msgid "Point of Sale - Payment" +msgstr "" + +#. module: pos_access_right +#: model:res.groups,name:pos_access_right.group_change_unit_price +msgid "Point of Sale - Unit Price Change" +msgstr "" + +#. module: pos_access_right +#: model:ir.model,name:pos_access_right.model_pos_config +msgid "Point of Sale Configuration" +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_discount_id +msgid "This field is there to pass the id of the 'PoS - Allow Discount' Group to the Point of Sale Frontend." +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_negative_qty_id +msgid "This field is there to pass the id of the 'PoS - Allow Negative Quantity' Group to the Point of Sale Frontend." +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_change_unit_price_id +msgid "This field is there to pass the id of the 'PoS - Allow Unit Price Change' Group to the Point of Sale Frontend." +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_delete_order_id +msgid "This field is there to pass the id of the 'PoS - Delete Order' Group to the Point of Sale Frontend." +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_multi_order_id +msgid "This field is there to pass the id of the 'PoS - Many Orders Group to the Point of Sale Frontend." +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_payment_id +msgid "This field is there to pass the id of the 'PoS - Payment' Group to the Point of Sale Frontend." +msgstr "" + diff --git a/pos_access_right/i18n/ru.po b/pos_access_right/i18n/ru.po new file mode 100644 index 00000000..7c8ff5ad --- /dev/null +++ b/pos_access_right/i18n/ru.po @@ -0,0 +1,169 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_access_right +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2019-05-30 11:19+0000\n" +"Last-Translator: Ivan Yelizariev \n" +"Language-Team: none\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 3.6.1\n" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:142 +#, python-format +msgid "Change Unit Price - Unauthorized function" +msgstr "" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:87 +#, python-format +msgid "Delete Order - Unauthorized function" +msgstr "" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:135 +#, python-format +msgid "Discount - Unauthorized function" +msgstr "" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:70 +#, python-format +msgid "Many Orders - Unauthorized function" +msgstr "" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:115 +#, python-format +msgid "Negative Quantity - Unauthorized function" +msgstr "" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:166 +#, python-format +msgid "Payment - Unauthorized function" +msgstr "" + +#. module: pos_access_right +#. openerp-web +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:71 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:88 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:116 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:136 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:143 +#: code:addons/pos_access_right/static/src/js/pos_access_right.js:167 +#, python-format +msgid "Please ask your manager to do it." +msgstr "Попросите менеджера выполнить это действие." + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_discount_id +msgid "Point of Sale - Allow Discount" +msgstr "Точка продаж - Разрешить Скидки" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_negative_qty_id +msgid "Point of Sale - Allow Negative Quantity" +msgstr "Точка продаж - Разрешить отрицательное количество" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_change_unit_price_id +msgid "Point of Sale - Allow Unit Price Change" +msgstr "Точка продаж - Разрешить изменение цены за штуку" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_delete_order_id +#: model:res.groups,name:pos_access_right.group_delete_order +msgid "Point of Sale - Delete Order" +msgstr "Точка продаж - Удаление заказа" + +#. module: pos_access_right +#: model:res.groups,name:pos_access_right.group_discount +msgid "Point of Sale - Discount" +msgstr "Точка продаж - Скидки" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_multi_order_id +#: model:res.groups,name:pos_access_right.group_multi_order +msgid "Point of Sale - Many Orders" +msgstr "Точка продаж - Более одного заказа" + +#. module: pos_access_right +#: model:res.groups,name:pos_access_right.group_negative_qty +msgid "Point of Sale - Negative Quantity" +msgstr "Точка продаж - Отрицательное количество" + +#. module: pos_access_right +#: model:ir.model.fields,field_description:pos_access_right.field_pos_config__group_payment_id +#: model:res.groups,name:pos_access_right.group_payment +#, fuzzy +#| msgid "Point of Sale - Discount" +msgid "Point of Sale - Payment" +msgstr "Точка продаж - Скидки" + +#. module: pos_access_right +#: model:res.groups,name:pos_access_right.group_change_unit_price +msgid "Point of Sale - Unit Price Change" +msgstr "Точка продаж - Изменение цены за штуку" + +#. module: pos_access_right +#: model:ir.model,name:pos_access_right.model_pos_config +msgid "Point of Sale Configuration" +msgstr "Настройки Точки продаж" + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_discount_id +msgid "" +"This field is there to pass the id of the 'PoS - Allow Discount' Group to " +"the Point of Sale Frontend." +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_negative_qty_id +msgid "" +"This field is there to pass the id of the 'PoS - Allow Negative Quantity' " +"Group to the Point of Sale Frontend." +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_change_unit_price_id +msgid "" +"This field is there to pass the id of the 'PoS - Allow Unit Price Change' " +"Group to the Point of Sale Frontend." +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_delete_order_id +msgid "" +"This field is there to pass the id of the 'PoS - Delete Order' Group to the " +"Point of Sale Frontend." +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_multi_order_id +msgid "" +"This field is there to pass the id of the 'PoS - Many Orders Group to the " +"Point of Sale Frontend." +msgstr "" + +#. module: pos_access_right +#: model:ir.model.fields,help:pos_access_right.field_pos_config__group_payment_id +msgid "" +"This field is there to pass the id of the 'PoS - Payment' Group to the Point " +"of Sale Frontend." +msgstr "" diff --git a/pos_access_right/models/__init__.py b/pos_access_right/models/__init__.py new file mode 100644 index 00000000..db8634ad --- /dev/null +++ b/pos_access_right/models/__init__.py @@ -0,0 +1 @@ +from . import pos_config diff --git a/pos_access_right/models/pos_config.py b/pos_access_right/models/pos_config.py new file mode 100644 index 00000000..ebb76e80 --- /dev/null +++ b/pos_access_right/models/pos_config.py @@ -0,0 +1,81 @@ +# Copyright (C) 2016-Today: La Louve () +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class PosConfig(models.Model): + _inherit = 'pos.config' + + group_negative_qty_id = fields.Many2one( + comodel_name='res.groups', + compute='_compute_group_negative_qty_id', + string='Point of Sale - Allow Negative Quantity', + help="This field is there to pass the id of the 'PoS - Allow Negative" + " Quantity' Group to the Point of Sale Frontend.") + + group_discount_id = fields.Many2one( + comodel_name='res.groups', + compute='_compute_group_discount_id', + string='Point of Sale - Allow Discount', + help="This field is there to pass the id of the 'PoS - Allow Discount'" + " Group to the Point of Sale Frontend.") + + group_change_unit_price_id = fields.Many2one( + comodel_name='res.groups', + compute='_compute_group_change_unit_price_id', + string='Point of Sale - Allow Unit Price Change', + help="This field is there to pass the id of the 'PoS - Allow Unit" + " Price Change' Group to the Point of Sale Frontend.") + + group_multi_order_id = fields.Many2one( + comodel_name='res.groups', + compute='_compute_group_multi_order_id', + string='Point of Sale - Many Orders', + help="This field is there to pass the id of the 'PoS - Many Orders" + " Group to the Point of Sale Frontend.") + + group_delete_order_id = fields.Many2one( + comodel_name='res.groups', + compute='_compute_group_delete_order_id', + string='Point of Sale - Delete Order', + help="This field is there to pass the id of the 'PoS - Delete Order'" + " Group to the Point of Sale Frontend.") + + group_payment_id = fields.Many2one( + comodel_name='res.groups', + compute='_compute_group_payment_id', + string='Point of Sale - Payment', + help="This field is there to pass the id of the 'PoS - Payment'" + " Group to the Point of Sale Frontend.") + + def _compute_group_negative_qty_id(self): + for config in self: + self.group_negative_qty_id = \ + self.env.ref('pos_access_right.group_negative_qty') + + def _compute_group_discount_id(self): + for config in self: + self.group_discount_id = \ + self.env.ref('pos_access_right.group_discount') + + def _compute_group_change_unit_price_id(self): + for config in self: + self.group_change_unit_price_id = \ + self.env.ref('pos_access_right.group_change_unit_price') + + def _compute_group_multi_order_id(self): + for config in self: + self.group_multi_order_id = \ + self.env.ref('pos_access_right.group_multi_order') + + def _compute_group_delete_order_id(self): + for config in self: + self.group_delete_order_id = \ + self.env.ref('pos_access_right.group_delete_order') + + def _compute_group_payment_id(self): + for config in self: + self.group_payment_id = \ + self.env.ref('pos_access_right.group_payment') diff --git a/pos_access_right/readme/CONFIGURE.rst b/pos_access_right/readme/CONFIGURE.rst new file mode 100644 index 00000000..ee6194f2 --- /dev/null +++ b/pos_access_right/readme/CONFIGURE.rst @@ -0,0 +1 @@ +Once installed, you have to give correct access right to your cashiers. diff --git a/pos_access_right/readme/CONTRIBUTORS.rst b/pos_access_right/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000..c52583e6 --- /dev/null +++ b/pos_access_right/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Sylvain LE GAL +* Ammmar Officewala diff --git a/pos_access_right/readme/DESCRIPTION.rst b/pos_access_right/readme/DESCRIPTION.rst new file mode 100644 index 00000000..f475ace9 --- /dev/null +++ b/pos_access_right/readme/DESCRIPTION.rst @@ -0,0 +1,7 @@ +This module extends Odoo Point Of Sale features, restricting possibility to cashier to make some actions in the Point of Sale. This module will add the following groups to Odoo: + +* **PoS - Negative Quantity**: The cashier can sell negative quantity in Point Of Sale (ie, can return products); +* **PoS - Discount**: The cashier can set Discount in Point Of Sale; +* **PoS - Change Unit Price**: The cashier can change the unit price of a product in Point Of Sale; +* **PoS - Many Orders**: The cashier can many orders at the same time; +* **PoS - Delete Order**: The cashier can not delete a full order; diff --git a/pos_access_right/readme/USAGE.rst b/pos_access_right/readme/USAGE.rst new file mode 100644 index 00000000..8471f7f9 --- /dev/null +++ b/pos_access_right/readme/USAGE.rst @@ -0,0 +1,3 @@ +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/184/9.0 diff --git a/pos_access_right/security/res_groups.xml b/pos_access_right/security/res_groups.xml new file mode 100644 index 00000000..865070f9 --- /dev/null +++ b/pos_access_right/security/res_groups.xml @@ -0,0 +1,39 @@ + + + + + + Point of Sale - Negative Quantity + + + + + Point of Sale - Discount + + + + + Point of Sale - Unit Price Change + + + + + Point of Sale - Many Orders + + + + + Point of Sale - Delete Order + + + + + Point of Sale - Payment + + + + diff --git a/pos_access_right/static/description/admin_numpad.png b/pos_access_right/static/description/admin_numpad.png new file mode 100644 index 00000000..08c889c2 Binary files /dev/null and b/pos_access_right/static/description/admin_numpad.png differ diff --git a/pos_access_right/static/description/demo_error.png b/pos_access_right/static/description/demo_error.png new file mode 100644 index 00000000..7c86cea2 Binary files /dev/null and b/pos_access_right/static/description/demo_error.png differ diff --git a/pos_access_right/static/description/demo_numpad.png b/pos_access_right/static/description/demo_numpad.png new file mode 100644 index 00000000..448dc2fb Binary files /dev/null and b/pos_access_right/static/description/demo_numpad.png differ diff --git a/pos_access_right/static/description/icon.png b/pos_access_right/static/description/icon.png new file mode 100644 index 00000000..2c83d710 Binary files /dev/null and b/pos_access_right/static/description/icon.png differ diff --git a/pos_access_right/static/description/index.html b/pos_access_right/static/description/index.html new file mode 100644 index 00000000..7d9cd50f --- /dev/null +++ b/pos_access_right/static/description/index.html @@ -0,0 +1,438 @@ + + + + + + +Point of Sale - Extra Access Right + + + +
+

Point of Sale - Extra Access Right

+ + +

Beta License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runbot

+

This module extends Odoo Point Of Sale features, restricting possibility to cashier to make some actions in the Point of Sale. This module will add the following groups to Odoo:

+
    +
  • PoS - Negative Quantity: The cashier can sell negative quantity in Point Of Sale (ie, can return products);
  • +
  • PoS - Discount: The cashier can set Discount in Point Of Sale;
  • +
  • PoS - Change Unit Price: The cashier can change the unit price of a product in Point Of Sale;
  • +
  • PoS - Many Orders: The cashier can many orders at the same time;
  • +
  • PoS - Delete Order: The cashier can not delete a full order;
  • +
+

Table of contents

+ +
+

Configuration

+

Once installed, you have to give correct access right to your cashiers.

+
+
+

Usage

+Try me on Runbot +
+
+

Bug Tracker

+

Bugs are tracked on GitHub 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.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • La Louve
  • +
  • GRAP
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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 project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/pos_access_right/static/description/new_groups.png b/pos_access_right/static/description/new_groups.png new file mode 100644 index 00000000..0d610e2e Binary files /dev/null and b/pos_access_right/static/description/new_groups.png differ diff --git a/pos_access_right/static/src/css/pos_access_right.css b/pos_access_right/static/src/css/pos_access_right.css new file mode 100644 index 00000000..e10fe1d7 --- /dev/null +++ b/pos_access_right/static/src/css/pos_access_right.css @@ -0,0 +1,13 @@ +/* + Copyright (C) 2016-Today: La Louve () + @author: Sylvain LE GAL (https://twitter.com/legalsylvain) + License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +*/ + +.pos-disabled-mode { + color: #bbb !important; + background-color: #d3d3d3 !important; +} +.pos-disabled-mode:hover { + background: #e2e2e2 !important; +} diff --git a/pos_access_right/static/src/js/pos_access_right.js b/pos_access_right/static/src/js/pos_access_right.js new file mode 100644 index 00000000..80d61f1d --- /dev/null +++ b/pos_access_right/static/src/js/pos_access_right.js @@ -0,0 +1,210 @@ +/* + Copyright (C) 2016-Today: La Louve () + @author: Sylvain LE GAL (https://twitter.com/legalsylvain) + License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +*/ + + +odoo.define('pos_access_right.pos_access_right', function (require) { + "use strict"; + + var screens = require('point_of_sale.screens'); + var chrome = require('point_of_sale.chrome'); + var models = require('point_of_sale.models'); + var gui = require('point_of_sale.gui'); + var core = require('web.core'); + var DB = require('point_of_sale.DB'); + var _t = core._t; + + + + // New function 'display_access_right' to display disabled functions + gui.Gui.prototype.get_user_groups = function (){ + var self = this; + if (this.pos.get_cashier() && this.pos.user && this.pos.get_cashier().user_id[0] == this.pos.user.id) { + return this.pos.user + }else{ + return _.find(this.pos.users, function(user_id){ + if (self.pos.get_cashier().user_id && self.pos.get_cashier().user_id[0] == user_id.id){ + return user_id + } + }) + } + }, + gui.Gui.prototype.display_access_right = function (user) { + if (!user.groups_id){ + user = this.get_user_groups(); + } + if (user.groups_id.indexOf( + this.pos.config.group_negative_qty_id[0]) === -1) { + $('.numpad-minus').addClass('pos-disabled-mode'); + } else { + $('.numpad-minus').removeClass('pos-disabled-mode'); + } + if (user.groups_id.indexOf( + this.pos.config.group_discount_id[0]) === -1) { + $(".mode-button[data-mode='discount']").addClass( + 'pos-disabled-mode'); + } else { + $(".mode-button[data-mode='discount']").removeClass( + 'pos-disabled-mode'); + } + if (user.groups_id.indexOf( + this.pos.config.group_change_unit_price_id[0]) === -1) { + $(".mode-button[data-mode='price']").addClass('pos-disabled-mode'); + } else { + $(".mode-button[data-mode='price']").removeClass( + 'pos-disabled-mode'); + } + if (user.groups_id.indexOf( + this.pos.config.group_payment_id[0]) === -1) { + $(".button.pay").addClass('pos-disabled-mode'); + } else { + $(".button.pay").removeClass('pos-disabled-mode'); + } + }; + + // Overload 'set_cashier' function to display correctly + // unauthorized function after cashier changed + var _set_cashier_ = models.PosModel.prototype.set_cashier; + models.PosModel.prototype.set_cashier = function (user) { + var user_groups = user + if (user.user_id && this.user && user.user_id[0] == this.user.id) { + user_groups = this.user + }else{ + user_groups = _.find(this.users, function(user_id){ + if (user.user_id && user.user_id[0] == user_id.id){ + return user_id + } + }) + } + if (user_groups) { + this.gui.display_access_right(user_groups); + } + _set_cashier_.call(this, user); + }; + chrome.OrderSelectorWidget.include({ + + /** + * Click new order + * @param {MouseEvent} event + * @param {HTMLElement | jQuery} $el + */ + neworder_click_handler: function (event, $el) { + var user = []; + var self = this + var user = this.gui.get_user_groups() + if (!user || !user.groups_id || user.groups_id.indexOf( + this.pos.config.group_multi_order_id[0]) === -1) { + this.gui.show_popup('error', { + 'title': _t('Many Orders - Unauthorized function'), + 'body': _t('Please ask your manager to do it.'), + }); + } else { + this._super(event, $el); + } + }, + + /** + * Click delete order + * @param {MouseEvent} event + * @param {HTMLElement | jQuery} $el + */ + deleteorder_click_handler: function (event, $el) { + var user = this.gui.get_user_groups() + if (!user || !user.groups_id || user.groups_id.indexOf( + this.pos.config.group_delete_order_id[0]) === -1) { + this.gui.show_popup('error', { + 'title': _t('Delete Order - Unauthorized function'), + 'body': _t('Please ask your manager to do it.'), + }); + } else { + this._super(event, $el); + } + }, + }); + + screens.NumpadWidget.include({ + + /** + * To display correctly unauthorized function at the beginning of the + session, based on current user + */ + start: function () { + this._super(); + this.gui.display_access_right(this.pos.get_cashier()); + }, + + /** + * Block '+/-' button if user doesn't belong to the correct group + * @returns {Object} + */ + clickSwitchSign: function () { + var user = this.gui.get_user_groups() + if (!user || !user.groups_id || user.groups_id.indexOf( + this.pos.config.group_negative_qty_id[0]) === -1) { + this.gui.show_popup('error', { + 'title': _t('Negative Quantity - Unauthorized function'), + 'body': _t('Please ask your manager to do it.'), + }); + } else { + return this._super(); + } + }, + + /** + * Block 'discount' or 'price' button if user doesn't belong to the + correct group + * @param {MouseEvent} event + * @returns {Object} + */ + clickChangeMode: function (event) { + var target = event.currentTarget.attributes['data-mode']; + var user = this.gui.get_user_groups() + if (target.nodeValue === 'discount' && + (!user || !user.groups_id || user.groups_id.indexOf( + this.pos.config.group_discount_id[0]) === -1)) { + this.gui.show_popup('error', { + 'title': _t('Discount - Unauthorized function'), + 'body': _t('Please ask your manager to do it.'), + }); + } else if (target.nodeValue === 'price' && (!user || !user.groups_id || + user.groups_id.indexOf( + this.pos.config.group_change_unit_price_id[0]) === -1)) { + this.gui.show_popup('error', { + 'title': _t('Change Unit Price - Unauthorized function'), + 'body': _t('Please ask your manager to do it.'), + }); + } else { + return this._super(event); + } + }, + }); + + screens.ActionpadWidget.include({ + + /** + * Block 'Payment' button if user doesn't belong to the correct group + */ + renderElement: function () { + var self = this; + this._super(); + this.gui.display_access_right(this.pos.get_cashier()); + var button_pay_click_handler = $._data( + this.$el.find(".button.pay")[0], "events").click[0].handler; + this.$('.pay').off('click').click(function () { + var user = self.gui.get_user_groups() + if (!user || !user.groups_id || user.groups_id.indexOf( + self.pos.config.group_payment_id[0]) === -1) { + self.gui.show_popup('error', { + 'title': _t('Payment - Unauthorized function'), + 'body': _t('Please ask your manager to do it.'), + }); + } else { + button_pay_click_handler(); + } + }); + }, + }); + +}); diff --git a/pos_access_right/static/src/xml/templates.xml b/pos_access_right/static/src/xml/templates.xml new file mode 100644 index 00000000..37422698 --- /dev/null +++ b/pos_access_right/static/src/xml/templates.xml @@ -0,0 +1,17 @@ + + + + +