Browse Source
Merge pull request #437 from legalsylvain/12.0-mig-pos_customer_display
Merge pull request #437 from legalsylvain/12.0-mig-pos_customer_display
[MIG][12.0] mig pos_customer_displaypull/496/head
Alexis de Lattre
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 1946 additions and 0 deletions
-
8pos_customer_display/README.rst
-
1pos_customer_display/__init__.py
-
19pos_customer_display/__manifest__.py
-
9pos_customer_display/demo/pos_config.xml
-
157pos_customer_display/i18n/de.po
-
168pos_customer_display/i18n/es.po
-
175pos_customer_display/i18n/fr.po
-
159pos_customer_display/i18n/hr_HR.po
-
157pos_customer_display/i18n/it.po
-
157pos_customer_display/i18n/nl.po
-
158pos_customer_display/i18n/nl_NL.po
-
173pos_customer_display/i18n/pos_customer_display.pot
-
1pos_customer_display/models/__init__.py
-
102pos_customer_display/models/pos_config.py
-
8pos_customer_display/readme/CONFIGURE.rst
-
5pos_customer_display/readme/CONTRIBUTORS.rst
-
10pos_customer_display/readme/DESCRIPTION.rst
-
7pos_customer_display/readme/INSTALL.rst
-
1pos_customer_display/readme/ROADMAP.rst
-
9pos_customer_display/readme/USAGE.rst
-
BINpos_customer_display/static/description/icon.png
-
111pos_customer_display/static/src/js/customer_display_2_20.js
-
88pos_customer_display/static/src/js/devices.js
-
24pos_customer_display/static/src/js/gui.js
-
128pos_customer_display/static/src/js/models.js
-
51pos_customer_display/static/src/js/screens.js
-
14pos_customer_display/views/assets.xml
-
46pos_customer_display/views/view_pos_config.xml
@ -0,0 +1,8 @@ |
|||
==================================== |
|||
Point of Sale - LCD Customer Display |
|||
==================================== |
|||
|
|||
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|||
!! This file is generated by oca-gen-addon-readme !! |
|||
!! changes will be overwritten. !! |
|||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
@ -0,0 +1 @@ |
|||
from . import models |
@ -0,0 +1,19 @@ |
|||
# © 2014-2016 Aurélien DUMAINE |
|||
# © 2014-2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
{ |
|||
"name": "Point of Sale - LED Customer Display", |
|||
"version": "12.0.1.0.0", |
|||
"category": "Point Of Sale", |
|||
"summary": "Manage LED Customer Display device from POS front end", |
|||
"author": "Aurélien DUMAINE,GRAP,Akretion,Odoo Community Association (OCA)", |
|||
"license": "AGPL-3", |
|||
"depends": ["point_of_sale"], |
|||
"data": [ |
|||
"views/assets.xml", |
|||
"views/view_pos_config.xml", |
|||
], |
|||
"demo": ["demo/pos_config.xml"], |
|||
"installable": True, |
|||
} |
@ -0,0 +1,9 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
|
|||
<odoo noupdate="1"> |
|||
|
|||
<record id="point_of_sale.pos_config_main" model="pos.config"> |
|||
<field name="iface_customer_display" eval="True"/> |
|||
</record> |
|||
|
|||
</odoo> |
@ -0,0 +1,157 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_customer_display |
|||
# |
|||
# Translators: |
|||
# OCA Transbot <transbot@odoo-community.org>, 2017 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 10.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2017-04-25 02:39+0000\n" |
|||
"PO-Revision-Date: 2017-04-25 02:39+0000\n" |
|||
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n" |
|||
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" |
|||
"Language: de\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Bottom Line" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_next_l2 |
|||
msgid "" |
|||
"Bottom line of the message on the customer display which is displayed after " |
|||
"starting POS and also after validation of an order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_closed_l2 |
|||
msgid "" |
|||
"Bottom line of the message on the customer display which is displayed when " |
|||
"POS is closed" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:74 |
|||
#, python-format |
|||
msgid "Cancel Payment" |
|||
msgstr "Zahlung stornieren" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_iface_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Customer Display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:59 |
|||
#, python-format |
|||
msgid "Delete Item" |
|||
msgstr "Artikel loeschen" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_iface_customer_display |
|||
msgid "Display data on the customer display" |
|||
msgstr "Daten auf dem Kunden-Display anzeigen" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_line_length |
|||
msgid "Length of the LEDs lines of the customer display" |
|||
msgstr "Länge der LED-Zeilen auf dem Kunden-Display" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_line_length |
|||
msgid "Line Length of the Customer Display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:46 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_next_l2 |
|||
#, python-format |
|||
msgid "Next Customer (bottom line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:44 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_next_l1 |
|||
#, python-format |
|||
msgid "Next Customer (top line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Next Customer Message" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:50 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_closed_l2 |
|||
#, python-format |
|||
msgid "POS Closed (bottom line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:48 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_closed_l1 |
|||
#, python-format |
|||
msgid "POS Closed (top line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "POS Closed Message" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:66 |
|||
#, python-format |
|||
msgid "TOTAL: " |
|||
msgstr "SUMME: " |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:55 |
|||
#, python-format |
|||
msgid "" |
|||
"The message for customer display '%s' is too long: it has %d chars whereas " |
|||
"the maximum is %d chars." |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Top Line" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_next_l1 |
|||
msgid "" |
|||
"Top line of the message on the customer display which is displayed after " |
|||
"starting POS and also after validation of an order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_closed_l1 |
|||
msgid "" |
|||
"Top line of the message on the customer display which is displayed when POS " |
|||
"is closed" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:81 |
|||
#, python-format |
|||
msgid "Your Change:" |
|||
msgstr "Rueckgeld:" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model,name:pos_customer_display.model_pos_config |
|||
msgid "pos.config" |
|||
msgstr "" |
@ -0,0 +1,168 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_customer_display |
|||
# |
|||
# Translators: |
|||
# enjolras <yo@miguelrevilla.com>, 2017 |
|||
# OCA Transbot <transbot@odoo-community.org>, 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: OCA Transbot <transbot@odoo-community.org>, 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_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Bottom Line" |
|||
msgstr "Línea inferior" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_next_l2 |
|||
msgid "" |
|||
"Bottom line of the message on the customer display which is displayed after " |
|||
"starting POS and also after validation of an order" |
|||
msgstr "" |
|||
"Línea inferior del mensaje en la pantalla del cliente que se mostrará " |
|||
"después de iniciar el TPV y también después de la validación de una venta" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_closed_l2 |
|||
msgid "" |
|||
"Bottom line of the message on the customer display which is displayed when " |
|||
"POS is closed" |
|||
msgstr "" |
|||
"Línea inferior del mensaje en la pantalla del cliente que se mostrará cuando " |
|||
"se cierre el TPV" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:74 |
|||
#, python-format |
|||
msgid "Cancel Payment" |
|||
msgstr "Cancelar pago" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_iface_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Customer Display" |
|||
msgstr "Pantalla del cliente" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:59 |
|||
#, python-format |
|||
msgid "Delete Item" |
|||
msgstr "Eliminar elemento" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_iface_customer_display |
|||
msgid "Display data on the customer display" |
|||
msgstr "Mostrar información en la pantalla del cliente" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_line_length |
|||
msgid "Length of the LEDs lines of the customer display" |
|||
msgstr "Longitud de las líneas LED en la pantalla del cliente" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_line_length |
|||
msgid "Line Length of the Customer Display" |
|||
msgstr "Longitud de la línea en la pantalla del cliente" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:46 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_next_l2 |
|||
#, python-format |
|||
msgid "Next Customer (bottom line)" |
|||
msgstr "Cliente siguiente (línea inferior)" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:44 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_next_l1 |
|||
#, python-format |
|||
msgid "Next Customer (top line)" |
|||
msgstr "Cliente siguiente (línea superior)" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Next Customer Message" |
|||
msgstr "Mensaje del cliente siguiente" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:50 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_closed_l2 |
|||
#, python-format |
|||
msgid "POS Closed (bottom line)" |
|||
msgstr "TPV cerrado (línea inferior)" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:48 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_closed_l1 |
|||
#, python-format |
|||
msgid "POS Closed (top line)" |
|||
msgstr "TPV cerrado (línea superior)" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "POS Closed Message" |
|||
msgstr "Mensaje de TPV cerrado" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:66 |
|||
#, python-format |
|||
msgid "TOTAL: " |
|||
msgstr "TOTAL: " |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:55 |
|||
#, python-format |
|||
msgid "" |
|||
"The message for customer display '%s' is too long: it has %d chars whereas " |
|||
"the maximum is %d chars." |
|||
msgstr "" |
|||
"El mensaje para la pantalla del cliente '%s' es demasiado largo: tiene %d " |
|||
"caracteres, siendo el máximo de %d." |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Top Line" |
|||
msgstr "Línea superior" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_next_l1 |
|||
msgid "" |
|||
"Top line of the message on the customer display which is displayed after " |
|||
"starting POS and also after validation of an order" |
|||
msgstr "" |
|||
"Línea superior del mensaje en la pantalla del cliente que se mostrará " |
|||
"después de iniciar el TPV y también después de la validación de una venta" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_closed_l1 |
|||
msgid "" |
|||
"Top line of the message on the customer display which is displayed when POS " |
|||
"is closed" |
|||
msgstr "" |
|||
"Línea superior del mensaje en la pantalla del cliente que se mostrará cuando " |
|||
"se cierre el TPV" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:81 |
|||
#, python-format |
|||
msgid "Your Change:" |
|||
msgstr "Cambio: " |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model,name:pos_customer_display.model_pos_config |
|||
msgid "pos.config" |
|||
msgstr "pos.config" |
@ -0,0 +1,175 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_customer_display |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 12.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2020-01-11 23:50+0000\n" |
|||
"PO-Revision-Date: 2020-01-11 23:50+0000\n" |
|||
"Last-Translator: <>\n" |
|||
"Language-Team: \n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: \n" |
|||
|
|||
#. module: pos_customer_display |
|||
#: selection:pos.config,customer_display_format:0 |
|||
msgid "2 Lines of 20 Characters" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display_2_20.js:94 |
|||
#, python-format |
|||
msgid "Customer Account" |
|||
msgstr "Compte client" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__customer_display_format |
|||
#: model_terms:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Customer Display Format" |
|||
msgstr "Format de l'afficheur client" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display_2_20.js:61 |
|||
#, python-format |
|||
msgid "Deleting Line ..." |
|||
msgstr "Suppression ligne" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config__iface_customer_display |
|||
msgid "Display data on the customer display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config__customer_display_msg_next_l1 |
|||
msgid "First line of the message on the customer display which is displayed after starting POS and also after validation of an order" |
|||
msgstr "Première ligne du message de l'afficheur client qui est affiché après le " |
|||
"démarrage de la caisse et également après validation d'une commande client" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config__customer_display_msg_closed_l1 |
|||
msgid "First line of the message on the customer display which is displayed when POS is closed" |
|||
msgstr "Première ligne du message de l'afficheur client qui est affiché quand la " |
|||
"caisse est fermée" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__iface_customer_display |
|||
#: model_terms:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "LED Customer Display" |
|||
msgstr "Afficheur client LED" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config__customer_display_line_length |
|||
msgid "Length of the LEDs lines of the customer display" |
|||
msgstr "Longueur des lignes de l'afficheur client (nombre de caractères)" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__customer_display_line_length |
|||
#: model_terms:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Line Length" |
|||
msgstr "Longueur des lignes" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__customer_display_msg_next_l1 |
|||
#: model_terms:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Next Customer (Line 1)" |
|||
msgstr "Client suivant (ligne 1)" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__customer_display_msg_next_l2 |
|||
#: model_terms:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Next Customer (Line 2)" |
|||
msgstr "Client suivant (ligne 2)" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display_2_20.js:99 |
|||
#, python-format |
|||
msgid "No Customer Account" |
|||
msgstr "Client non défini" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__customer_display_msg_closed_l1 |
|||
#: model_terms:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "PoS Closed (Line 1)" |
|||
msgstr "Caisse fermée (Ligne 1)" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__customer_display_msg_closed_l2 |
|||
#: model_terms:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "PoS Closed (Line 2)" |
|||
msgstr "Caisse fermée (Ligne 2)" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_config.py:64 |
|||
#, python-format |
|||
msgid "Point of Sale Closed" |
|||
msgstr "Caisse fermée" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model,name:pos_customer_display.model_pos_config |
|||
msgid "Point of Sale Configuration" |
|||
msgstr "Paramétrage du point de vente" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_config.py:60 |
|||
#, python-format |
|||
msgid "Point of Sale Open" |
|||
msgstr "Caisse ouverte" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display_2_20.js:81 |
|||
#, python-format |
|||
msgid "Returned: " |
|||
msgstr "A rendre : " |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config__customer_display_msg_next_l2 |
|||
msgid "Second line of the message on the customer display which is displayed after starting POS and also after validation of an order" |
|||
msgstr "Deuxième ligne du message de l'afficheur client qui est affiché après le " |
|||
"démarrage de la caisse et également après validation d'une commande client" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config__customer_display_msg_closed_l2 |
|||
msgid "Second line of the message on the customer display which is displayed when POS is closed" |
|||
msgstr "Deuxième ligne du message de l'afficheur client qui est affiché quand la " |
|||
"caisse est fermée" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_config.py:66 |
|||
#, python-format |
|||
msgid "See you soon!" |
|||
msgstr "Au revoir !" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_config.py:93 |
|||
#, python-format |
|||
msgid "The message for customer display '%s' is too long: it has %d chars whereas the maximum is %d chars." |
|||
msgstr "Le message de l'afficheur client '%s' est trop long : il contient %d " |
|||
"caractères alors que le maximum est de %d caractères." |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display_2_20.js:79 |
|||
#, python-format |
|||
msgid "To Pay: " |
|||
msgstr "A payer : " |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display_2_20.js:86 |
|||
#, python-format |
|||
msgid "Total" |
|||
msgstr "Total" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_config.py:62 |
|||
#, python-format |
|||
msgid "Welcome!" |
|||
msgstr "Bienvenue !" |
@ -0,0 +1,159 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_customer_display |
|||
# |
|||
# 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-04-25 02:39+0000\n" |
|||
"PO-Revision-Date: 2017-04-25 02:39+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_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Bottom Line" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_next_l2 |
|||
msgid "" |
|||
"Bottom line of the message on the customer display which is displayed after " |
|||
"starting POS and also after validation of an order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_closed_l2 |
|||
msgid "" |
|||
"Bottom line of the message on the customer display which is displayed when " |
|||
"POS is closed" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:74 |
|||
#, python-format |
|||
msgid "Cancel Payment" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_iface_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Customer Display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:59 |
|||
#, python-format |
|||
msgid "Delete Item" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_iface_customer_display |
|||
msgid "Display data on the customer display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_line_length |
|||
msgid "Length of the LEDs lines of the customer display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_line_length |
|||
msgid "Line Length of the Customer Display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:46 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_next_l2 |
|||
#, python-format |
|||
msgid "Next Customer (bottom line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:44 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_next_l1 |
|||
#, python-format |
|||
msgid "Next Customer (top line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Next Customer Message" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:50 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_closed_l2 |
|||
#, python-format |
|||
msgid "POS Closed (bottom line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:48 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_closed_l1 |
|||
#, python-format |
|||
msgid "POS Closed (top line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "POS Closed Message" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:66 |
|||
#, python-format |
|||
msgid "TOTAL: " |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:55 |
|||
#, python-format |
|||
msgid "" |
|||
"The message for customer display '%s' is too long: it has %d chars whereas " |
|||
"the maximum is %d chars." |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Top Line" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_next_l1 |
|||
msgid "" |
|||
"Top line of the message on the customer display which is displayed after " |
|||
"starting POS and also after validation of an order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_closed_l1 |
|||
msgid "" |
|||
"Top line of the message on the customer display which is displayed when POS " |
|||
"is closed" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:81 |
|||
#, python-format |
|||
msgid "Your Change:" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model,name:pos_customer_display.model_pos_config |
|||
msgid "pos.config" |
|||
msgstr "pos.config" |
@ -0,0 +1,157 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_customer_display |
|||
# |
|||
# 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_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Bottom Line" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_next_l2 |
|||
msgid "" |
|||
"Bottom line of the message on the customer display which is displayed after " |
|||
"starting POS and also after validation of an order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_closed_l2 |
|||
msgid "" |
|||
"Bottom line of the message on the customer display which is displayed when " |
|||
"POS is closed" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:74 |
|||
#, python-format |
|||
msgid "Cancel Payment" |
|||
msgstr "Cancella pagamento" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_iface_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Customer Display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:59 |
|||
#, python-format |
|||
msgid "Delete Item" |
|||
msgstr "Elimina articolo" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_iface_customer_display |
|||
msgid "Display data on the customer display" |
|||
msgstr "Mostra la data sullo schermo del cliente" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_line_length |
|||
msgid "Length of the LEDs lines of the customer display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_line_length |
|||
msgid "Line Length of the Customer Display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:46 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_next_l2 |
|||
#, python-format |
|||
msgid "Next Customer (bottom line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:44 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_next_l1 |
|||
#, python-format |
|||
msgid "Next Customer (top line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Next Customer Message" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:50 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_closed_l2 |
|||
#, python-format |
|||
msgid "POS Closed (bottom line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:48 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_closed_l1 |
|||
#, python-format |
|||
msgid "POS Closed (top line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "POS Closed Message" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:66 |
|||
#, python-format |
|||
msgid "TOTAL: " |
|||
msgstr "TOTALE:" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:55 |
|||
#, python-format |
|||
msgid "" |
|||
"The message for customer display '%s' is too long: it has %d chars whereas " |
|||
"the maximum is %d chars." |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Top Line" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_next_l1 |
|||
msgid "" |
|||
"Top line of the message on the customer display which is displayed after " |
|||
"starting POS and also after validation of an order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_closed_l1 |
|||
msgid "" |
|||
"Top line of the message on the customer display which is displayed when POS " |
|||
"is closed" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:81 |
|||
#, python-format |
|||
msgid "Your Change:" |
|||
msgstr "Resto: " |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model,name:pos_customer_display.model_pos_config |
|||
msgid "pos.config" |
|||
msgstr "pos.config" |
@ -0,0 +1,157 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_customer_display |
|||
# |
|||
# Translators: |
|||
# OCA Transbot <transbot@odoo-community.org>, 2017 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 10.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2017-04-25 02:39+0000\n" |
|||
"PO-Revision-Date: 2017-04-25 02:39+0000\n" |
|||
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n" |
|||
"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n" |
|||
"Language: 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_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Bottom Line" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_next_l2 |
|||
msgid "" |
|||
"Bottom line of the message on the customer display which is displayed after " |
|||
"starting POS and also after validation of an order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_closed_l2 |
|||
msgid "" |
|||
"Bottom line of the message on the customer display which is displayed when " |
|||
"POS is closed" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:74 |
|||
#, python-format |
|||
msgid "Cancel Payment" |
|||
msgstr "Annuleren Betaling" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_iface_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Customer Display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:59 |
|||
#, python-format |
|||
msgid "Delete Item" |
|||
msgstr "Verwijderen Item" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_iface_customer_display |
|||
msgid "Display data on the customer display" |
|||
msgstr "Weergeven gegevens op het klant scherm" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_line_length |
|||
msgid "Length of the LEDs lines of the customer display" |
|||
msgstr "Lengte van de LED lijnen van het klant scherm" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_line_length |
|||
msgid "Line Length of the Customer Display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:46 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_next_l2 |
|||
#, python-format |
|||
msgid "Next Customer (bottom line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:44 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_next_l1 |
|||
#, python-format |
|||
msgid "Next Customer (top line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Next Customer Message" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:50 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_closed_l2 |
|||
#, python-format |
|||
msgid "POS Closed (bottom line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:48 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_closed_l1 |
|||
#, python-format |
|||
msgid "POS Closed (top line)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "POS Closed Message" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:66 |
|||
#, python-format |
|||
msgid "TOTAL: " |
|||
msgstr "TOTAAL:" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:55 |
|||
#, python-format |
|||
msgid "" |
|||
"The message for customer display '%s' is too long: it has %d chars whereas " |
|||
"the maximum is %d chars." |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Top Line" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_next_l1 |
|||
msgid "" |
|||
"Top line of the message on the customer display which is displayed after " |
|||
"starting POS and also after validation of an order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_closed_l1 |
|||
msgid "" |
|||
"Top line of the message on the customer display which is displayed when POS " |
|||
"is closed" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:81 |
|||
#, python-format |
|||
msgid "Your Change:" |
|||
msgstr "Wisselgeld:" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model,name:pos_customer_display.model_pos_config |
|||
msgid "pos.config" |
|||
msgstr "" |
@ -0,0 +1,158 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_customer_display |
|||
# |
|||
# 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-05-30 02:44+0000\n" |
|||
"PO-Revision-Date: 2017-05-30 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_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Bottom Line" |
|||
msgstr "Onderste regel" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_next_l2 |
|||
msgid "" |
|||
"Bottom line of the message on the customer display which is displayed after " |
|||
"starting POS and also after validation of an order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_closed_l2 |
|||
msgid "" |
|||
"Bottom line of the message on the customer display which is displayed when " |
|||
"POS is closed" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:74 |
|||
#, python-format |
|||
msgid "Cancel Payment" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_iface_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Customer Display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:59 |
|||
#, python-format |
|||
msgid "Delete Item" |
|||
msgstr "Verwijder Item" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_iface_customer_display |
|||
msgid "Display data on the customer display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_line_length |
|||
msgid "Length of the LEDs lines of the customer display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_line_length |
|||
msgid "Line Length of the Customer Display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:46 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_next_l2 |
|||
#, python-format |
|||
msgid "Next Customer (bottom line)" |
|||
msgstr "Volgende Klant (onderste regel)" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:44 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_next_l1 |
|||
#, python-format |
|||
msgid "Next Customer (top line)" |
|||
msgstr "Volgende Klant (bovenste regel)" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Next Customer Message" |
|||
msgstr "Volgende klant bericht" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:50 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_closed_l2 |
|||
#, python-format |
|||
msgid "POS Closed (bottom line)" |
|||
msgstr "Kassa gesloten (onderste regel)" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:48 |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config_customer_display_msg_closed_l1 |
|||
#, python-format |
|||
msgid "POS Closed (top line)" |
|||
msgstr "Kassa Gesloten (bovenste regel)" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "POS Closed Message" |
|||
msgstr "Kassa Gesloten Bericht" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:66 |
|||
#, python-format |
|||
msgid "TOTAL: " |
|||
msgstr "Totaal:" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_customer_display.py:55 |
|||
#, python-format |
|||
msgid "" |
|||
"The message for customer display '%s' is too long: it has %d chars whereas " |
|||
"the maximum is %d chars." |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Top Line" |
|||
msgstr "Bovenste regel" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_next_l1 |
|||
msgid "" |
|||
"Top line of the message on the customer display which is displayed after " |
|||
"starting POS and also after validation of an order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config_customer_display_msg_closed_l1 |
|||
msgid "" |
|||
"Top line of the message on the customer display which is displayed when POS " |
|||
"is closed" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display.js:81 |
|||
#, python-format |
|||
msgid "Your Change:" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model,name:pos_customer_display.model_pos_config |
|||
msgid "pos.config" |
|||
msgstr "pos.config" |
@ -0,0 +1,173 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * pos_customer_display |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 12.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2020-01-11 23:37+0000\n" |
|||
"PO-Revision-Date: 2020-01-11 23:37+0000\n" |
|||
"Last-Translator: <>\n" |
|||
"Language-Team: \n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: \n" |
|||
|
|||
#. module: pos_customer_display |
|||
#: selection:pos.config,customer_display_format:0 |
|||
msgid "2 Lines of 20 Characters" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display_2_20.js:94 |
|||
#, python-format |
|||
msgid "Customer Account" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__customer_display_format |
|||
msgid "Customer Display Format" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display_2_20.js:61 |
|||
#, python-format |
|||
msgid "Deleting Line ..." |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config__iface_customer_display |
|||
msgid "Display data on the customer display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config__customer_display_msg_next_l1 |
|||
msgid "First line of the message on the customer display which is displayed after starting POS and also after validation of an order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config__customer_display_msg_closed_l1 |
|||
msgid "First line of the message on the customer display which is displayed when POS is closed" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__iface_customer_display |
|||
#: model_terms:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "LED Customer Display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config__customer_display_line_length |
|||
msgid "Length of the LEDs lines of the customer display" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__customer_display_line_length |
|||
#: model_terms:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Line Length" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__customer_display_msg_next_l1 |
|||
#: model_terms:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Next Customer (Line 1)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__customer_display_msg_next_l2 |
|||
#: model_terms:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Next Customer (Line 2)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display_2_20.js:99 |
|||
#, python-format |
|||
msgid "No Customer Account" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__customer_display_msg_closed_l1 |
|||
#: model_terms:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "PoS Closed (Line 1)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,field_description:pos_customer_display.field_pos_config__customer_display_msg_closed_l2 |
|||
msgid "PoS Closed (Line 2)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_config.py:64 |
|||
#, python-format |
|||
msgid "Point of Sale Closed" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model,name:pos_customer_display.model_pos_config |
|||
msgid "Point of Sale Configuration" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_config.py:60 |
|||
#, python-format |
|||
msgid "Point of Sale Open" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model_terms:ir.ui.view,arch_db:pos_customer_display.view_pos_config_form |
|||
msgid "Pos Closed (Line 2)" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display_2_20.js:81 |
|||
#, python-format |
|||
msgid "Returned: " |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config__customer_display_msg_next_l2 |
|||
msgid "Second line of the message on the customer display which is displayed after starting POS and also after validation of an order" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: model:ir.model.fields,help:pos_customer_display.field_pos_config__customer_display_msg_closed_l2 |
|||
msgid "Second line of the message on the customer display which is displayed when POS is closed" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_config.py:66 |
|||
#, python-format |
|||
msgid "See you soon!" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_config.py:93 |
|||
#, python-format |
|||
msgid "The message for customer display '%s' is too long: it has %d chars whereas the maximum is %d chars." |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display_2_20.js:79 |
|||
#, python-format |
|||
msgid "To Pay: " |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#. openerp-web |
|||
#: code:addons/pos_customer_display/static/src/js/customer_display_2_20.js:86 |
|||
#, python-format |
|||
msgid "Total" |
|||
msgstr "" |
|||
|
|||
#. module: pos_customer_display |
|||
#: code:addons/pos_customer_display/models/pos_config.py:62 |
|||
#, python-format |
|||
msgid "Welcome!" |
|||
msgstr "" |
@ -0,0 +1 @@ |
|||
from . import pos_config |
@ -0,0 +1,102 @@ |
|||
# © 2014-2016 Aurélien DUMAINE |
|||
# © 2015-2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
from odoo import _, api, fields, models |
|||
from odoo.exceptions import ValidationError |
|||
|
|||
|
|||
class PosConfig(models.Model): |
|||
_inherit = "pos.config" |
|||
|
|||
_CUSTOMER_DISPLAY_FORMAT_SELECTION = [ |
|||
("2_20", "2 Lines of 20 Characters"), |
|||
] |
|||
|
|||
iface_customer_display = fields.Boolean( |
|||
string="LED Customer Display", |
|||
help="Display data on the customer display" |
|||
) |
|||
|
|||
customer_display_format = fields.Selection( |
|||
selection=_CUSTOMER_DISPLAY_FORMAT_SELECTION, |
|||
string="Customer Display Format", |
|||
default="2_20", required=True) |
|||
|
|||
customer_display_line_length = fields.Integer( |
|||
string="Line Length", |
|||
compute="_compute_customer_display_line_length", |
|||
store=True, |
|||
help="Length of the LEDs lines of the customer display", |
|||
) |
|||
customer_display_msg_next_l1 = fields.Char( |
|||
string="Next Customer (Line 1)", |
|||
default=lambda x: x._default_customer_display_msg("next_l1"), |
|||
help="First line of the message on the customer display which is " |
|||
"displayed after starting POS and also after validation of an order", |
|||
) |
|||
customer_display_msg_next_l2 = fields.Char( |
|||
string="Next Customer (Line 2)", |
|||
default=lambda x: x._default_customer_display_msg("next_l2"), |
|||
help="Second line of the message on the customer display which is " |
|||
"displayed after starting POS and also after validation of an order", |
|||
) |
|||
customer_display_msg_closed_l1 = fields.Char( |
|||
string="PoS Closed (Line 1)", |
|||
default=lambda x: x._default_customer_display_msg("closed_l1"), |
|||
help="First line of the message on the customer display which " |
|||
"is displayed when POS is closed", |
|||
) |
|||
customer_display_msg_closed_l2 = fields.Char( |
|||
string="PoS Closed (Line 2)", |
|||
default=lambda x: x._default_customer_display_msg("closed_l1"), |
|||
help="Second line of the message on the customer display which " |
|||
"is displayed when POS is closed", |
|||
) |
|||
|
|||
@api.model |
|||
def _default_customer_display_msg(self, line): |
|||
if line == "next_l1": |
|||
return _("Point of Sale Open") |
|||
elif line == "next_l2": |
|||
return _("Welcome!") |
|||
elif line == "closed_l1": |
|||
return _("Point of Sale Closed") |
|||
elif line == "closed_l2": |
|||
return _("See you soon!") |
|||
|
|||
@api.depends("customer_display_format") |
|||
def _compute_customer_display_line_length(self): |
|||
for config in self: |
|||
config.customer_display_line_length = int( |
|||
config.customer_display_format.split("_")[1]) |
|||
|
|||
@api.constrains( |
|||
"iface_customer_display", |
|||
"customer_display_format", |
|||
"customer_display_msg_next_l1", |
|||
"customer_display_msg_next_l2", |
|||
"customer_display_msg_closed_l1", |
|||
"customer_display_msg_closed_l2", |
|||
) |
|||
def _check_customer_display_length(self): |
|||
for config in self.filtered(lambda x: x.customer_display_line_length): |
|||
maxsize = config.customer_display_line_length |
|||
fields_to_check = [ |
|||
x for x in self._fields.keys() |
|||
if 'customer_display_msg_' in x |
|||
] |
|||
for field_name in fields_to_check: |
|||
value = getattr(config, field_name) |
|||
if value and len(value) > maxsize: |
|||
raise ValidationError( |
|||
_( |
|||
"The message for customer display '%s' is too " |
|||
"long: it has %d chars whereas the maximum " |
|||
"is %d chars." |
|||
) |
|||
% ( |
|||
self._fields[field_name].string, |
|||
len(value), |
|||
maxsize) |
|||
) |
@ -0,0 +1,8 @@ |
|||
To configure this module, |
|||
* go to the menu Point of Sale > Configuration > Point of Sale |
|||
* edit the point of sale for which you want to enable the LED: |
|||
|
|||
* In the IotBox section, activate the option *LED Customer Display*, |
|||
* configure the format of your LED screen. (2 lines of 20 characters, by default) |
|||
|
|||
* optionaly, you can customize the *Next customer* message and the *POS closed* message |
@ -0,0 +1,5 @@ |
|||
* Aurélien Dumaine |
|||
* Alexis de Lattre <alexis.delattre@akretion.com> |
|||
* Father Odilon (`Barroux Abbey <http://www.barroux.org/>`_) |
|||
* Daniel Kraft |
|||
* Sylvain LE GAL ((https://twitter.com/legalsylvain)) |
@ -0,0 +1,10 @@ |
|||
This module adds support for LED Customer Display in the Point of Sale. |
|||
|
|||
It has been tested with |
|||
|
|||
* Bixolon BCD-1100 (http://www.bixolon.com/html/en/product/product_detail.xhtml?prod_id=61), |
|||
* Aures OCD 300 (https://www.aures.com/point-de-vente-equipment-solutions-systemes/ecrans-tactiles-afficheurs/ocd-300-350-afficheur-client-graphique) |
|||
|
|||
But it should support most serial and USB-serial LED displays out-of-the-box or with minor adaptations in the source code |
|||
* of the module *hw_customer_display* if you use the POSbox, |
|||
* or of the Python lib `pyposdisplay <https://github.com/akretion/pyposdisplay>`__ if you use `pywebdriver <https://github.com/akretion/pywebdriver>`__. |
@ -0,0 +1,7 @@ |
|||
This module is designed to be installed on the *main Odoo server*. On the |
|||
*POSbox*, you should install the module *hw_customer_display*. But you will certainly prefer to use `pywebdriver <https://github.com/akretion/pywebdriver>`__ instead of the POSbox. Compared to the POSbox, Pywebdriver has several advantages: |
|||
|
|||
* smaller footprint: no need to have a full-blown Odoo with PostgreSQL on the computer of the cashier (or his small Linux-based PC connected to the hardware, like the RaspberryPi for the POSbox), |
|||
* availability of an Ubuntu package, for easier deployment, |
|||
* native support for the customer display, payment terminal, etc. |
|||
* nice test/diagnosis Web interface. |
@ -0,0 +1 @@ |
|||
* Support other format, for exemple, 4 lines of 30 characters, for the Bixolon BDC-2000. |
@ -0,0 +1,9 @@ |
|||
Once everything is configured, just start the POS as usual. You will see messages on the device when: |
|||
|
|||
* you start the POS, |
|||
* you add or remove a product, |
|||
* you select or deselect a customer, |
|||
* you press the Payment button: the device will display the total amount, |
|||
* you enter the amount of cash you receive: the device will display the amount of the change to give back, |
|||
* you validate an order and go to the next customer, |
|||
* you close the POS. |
After Width: 200 | Height: 200 | Size: 18 KiB |
@ -0,0 +1,111 @@ |
|||
/* |
|||
Copyright (C) 2015-Today GRAP (http://www.grap.coop)
|
|||
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
|
|||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|||
*/ |
|||
|
|||
|
|||
odoo.define('pos_customer_display.customer_display_2_20', function (require) { |
|||
"use strict"; |
|||
|
|||
var core = require('web.core'); |
|||
var _t = core._t; |
|||
|
|||
var CustomerDisplay_2_20 = function(proxy_device){ |
|||
this.pos = proxy_device.pos; |
|||
this._prepare_line = proxy_device._prepare_line; |
|||
|
|||
this._prepare_message_welcome = function(){ |
|||
return new Array( |
|||
this._prepare_line(this.pos.config.customer_display_msg_next_l1, ""), |
|||
this._prepare_line(this.pos.config.customer_display_msg_next_l2, ""), |
|||
); |
|||
}; |
|||
|
|||
this._prepare_message_close = function(){ |
|||
return new Array( |
|||
this._prepare_line(this.pos.config.customer_display_msg_closed_l1, ""), |
|||
this._prepare_line(this.pos.config.customer_display_msg_closed_l2, ""), |
|||
); |
|||
}; |
|||
|
|||
this._prepare_message_orderline = function(order_line, action){ |
|||
var currency_rounding = this.pos.currency.decimals; |
|||
|
|||
var product_name = order_line.product.display_name; |
|||
var unit_price_str = order_line.get_unit_price().toFixed(currency_rounding); |
|||
var total_amount_str = order_line.get_display_price().toFixed(currency_rounding); |
|||
var qty = order_line.get_quantity(); |
|||
// only display decimals when qty is not an integer
|
|||
if (qty.toFixed(0) == qty) { |
|||
qty = qty.toFixed(0); |
|||
} |
|||
var discount = order_line.get_discount(); |
|||
var discount_str = ""; |
|||
if ([ |
|||
'add_line', |
|||
'update_quantity', |
|||
'update_unit_price', |
|||
'update_discount', |
|||
].indexOf(action) !== -1){ |
|||
var second_line = String(qty) + " * " + unit_price_str; |
|||
if (discount){ |
|||
discount_str = " -" + String(discount) + "%"; |
|||
} |
|||
return new Array( |
|||
this._prepare_line(product_name, discount_str), |
|||
this._prepare_line(second_line, total_amount_str), |
|||
); |
|||
} else if (action === 'delete_line'){ |
|||
return new Array( |
|||
this._prepare_line(_t("Deleting Line ..."), ""), |
|||
this._prepare_line(order_line.product.display_name, ""), |
|||
); |
|||
} |
|||
}; |
|||
|
|||
this._prepare_message_payment = function(action){ |
|||
var currency_rounding = this.pos.currency.decimals; |
|||
var order = this.pos.get_order() |
|||
var total = order.get_total_with_tax().toFixed(currency_rounding); |
|||
var total_paid = order.get_total_paid().toFixed(currency_rounding); |
|||
var total_change = order.get_due().toFixed(currency_rounding); |
|||
var total_to_pay = (total - total_paid).toFixed(currency_rounding); |
|||
|
|||
var remaining_operation_str = ""; |
|||
|
|||
if (total_paid != 0) { |
|||
if (total_to_pay > 0) { |
|||
remaining_operation_str = _t("To Pay: ") + String(total_to_pay); |
|||
} else if (total_change < 0) { |
|||
remaining_operation_str = _t("Returned: ") + String(- total_change); |
|||
} |
|||
} |
|||
|
|||
return new Array( |
|||
this._prepare_line(_t("Total"), String(total)), |
|||
this._prepare_line(remaining_operation_str, ""), |
|||
); |
|||
}; |
|||
|
|||
this._prepare_message_client = function(client){ |
|||
if ( client ) { |
|||
return new Array( |
|||
this._prepare_line(_t("Customer Account"), ""), |
|||
this._prepare_line(client.name, ""), |
|||
); |
|||
} else { |
|||
return new Array( |
|||
this._prepare_line(_t("No Customer Account"), ""), |
|||
this._prepare_line("", ""), |
|||
); |
|||
} |
|||
}; |
|||
|
|||
}; |
|||
|
|||
return { |
|||
CustomerDisplay_2_20: CustomerDisplay_2_20, |
|||
}; |
|||
|
|||
}); |
@ -0,0 +1,88 @@ |
|||
/* |
|||
Copyright (C) 2015-Today GRAP (http://www.grap.coop)
|
|||
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
|
|||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|||
*/ |
|||
|
|||
|
|||
odoo.define('pos_customer_display.devices', function (require) { |
|||
"use strict"; |
|||
|
|||
var devices = require('point_of_sale.devices'); |
|||
|
|||
var customer_display_2_20 = require('pos_customer_display.customer_display_2_20'); |
|||
|
|||
var ProxyDeviceSuper = devices.ProxyDevice; |
|||
|
|||
devices.ProxyDevice = devices.ProxyDevice.extend({ |
|||
|
|||
|
|||
init: function(parent, options){ |
|||
var res = ProxyDeviceSuper.prototype.init.call(this, parent, options); |
|||
this.customer_display_proxy = false; |
|||
return res; |
|||
}, |
|||
|
|||
load_customer_display_format_file: function(){ |
|||
if (this.pos.config.customer_display_format == "2_20") { |
|||
this.customer_display_proxy = new customer_display_2_20.CustomerDisplay_2_20(this); |
|||
} else { |
|||
console.warn("No Javascript file found for the Customer Display format" + this.config.customer_display_format); |
|||
} |
|||
}, |
|||
|
|||
send_text_customer_display: function(data){ |
|||
if (this.customer_display_proxy) { |
|||
return this.message( |
|||
'send_text_customer_display', |
|||
{'text_to_display' : JSON.stringify(data)} |
|||
); |
|||
} |
|||
}, |
|||
|
|||
_prepare_line: function(left_part, right_part){ |
|||
var line_length = this.pos.config.customer_display_line_length; |
|||
var max_left_length = line_length; |
|||
if (right_part.length !== 0) { |
|||
max_left_length -= right_part.length; |
|||
} |
|||
var result = left_part.substring(0, max_left_length - 1); |
|||
result = result.padEnd(max_left_length); |
|||
if (right_part.length !== 0) { |
|||
result += right_part.padStart(line_length - result.length); |
|||
} |
|||
return result; |
|||
}, |
|||
|
|||
prepare_message_orderline: function(order_line, action){ |
|||
if (this.customer_display_proxy) { |
|||
return this.customer_display_proxy._prepare_message_orderline(order_line, action); |
|||
} |
|||
}, |
|||
|
|||
prepare_message_payment: function(action){ |
|||
if (this.customer_display_proxy) { |
|||
return this.customer_display_proxy._prepare_message_payment(action); |
|||
} |
|||
}, |
|||
|
|||
prepare_message_welcome: function(){ |
|||
if (this.customer_display_proxy) { |
|||
return this.customer_display_proxy._prepare_message_welcome(); |
|||
} |
|||
}, |
|||
|
|||
prepare_message_close: function(){ |
|||
if (this.customer_display_proxy) { |
|||
return this.customer_display_proxy._prepare_message_close(); |
|||
} |
|||
}, |
|||
|
|||
prepare_message_client: function(client){ |
|||
if (this.customer_display_proxy) { |
|||
return this.customer_display_proxy._prepare_message_client(client); |
|||
} |
|||
} |
|||
|
|||
}); |
|||
}); |
@ -0,0 +1,24 @@ |
|||
/* |
|||
Copyright (C) 2020-Today GRAP (http://www.grap.coop)
|
|||
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
|
|||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|||
*/ |
|||
|
|||
|
|||
odoo.define('pos_customer_display.gui', function (require) { |
|||
"use strict"; |
|||
|
|||
var gui = require('point_of_sale.gui'); |
|||
|
|||
gui.Gui.include({ |
|||
|
|||
close: function(){ |
|||
this.pos.proxy.send_text_customer_display( |
|||
this.pos.proxy.prepare_message_closed() |
|||
); |
|||
return this._super(); |
|||
}, |
|||
|
|||
}); |
|||
|
|||
}); |
@ -0,0 +1,128 @@ |
|||
/* |
|||
Copyright (C) 2015-Today GRAP (http://www.grap.coop)
|
|||
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
|
|||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|||
*/ |
|||
|
|||
odoo.define('pos_customer_display.models', function (require) { |
|||
"use strict"; |
|||
|
|||
var models = require('point_of_sale.models'); |
|||
var OrderSuper = models.Order; |
|||
var OrderlineSuper = models.Orderline; |
|||
var PosModelSuper = models.PosModel; |
|||
|
|||
// //////////////////////////////////
|
|||
// Overload models.PosModel
|
|||
// //////////////////////////////////
|
|||
models.PosModel = models.PosModel.extend({ |
|||
|
|||
initialize: function(session, attributes) { |
|||
var res = PosModelSuper.prototype.initialize.call(this, session, attributes); |
|||
// send_message_customer_display is a variable that allow
|
|||
// to disable the send of the message to the customer display
|
|||
// This desing is due to the current design of Odoo PoS.
|
|||
// 1) during the call_of_init_from_JSON, a call to
|
|||
// add_product and remove_orderline is done.
|
|||
// 2) during the call of add_product, a call
|
|||
// to set_price, set_discount, set_quantity is done.
|
|||
// To avoid multiple useless messages sends.
|
|||
// it fixed this @via-alexis comment:
|
|||
// https://github.com/OCA/pos/blob/10.0/pos_customer_display/
|
|||
// static/src/js/customer_display.js#L198
|
|||
this.send_message_customer_display = true; |
|||
return res; |
|||
}, |
|||
|
|||
after_load_server_data: function(){ |
|||
this.proxy.load_customer_display_format_file(); |
|||
return PosModelSuper.prototype.after_load_server_data.call(this); |
|||
}, |
|||
}); |
|||
|
|||
|
|||
// //////////////////////////////////
|
|||
// Overload models.Order
|
|||
// //////////////////////////////////
|
|||
models.Order = models.Order.extend({ |
|||
|
|||
init_from_JSON: function(json) { |
|||
this.pos.send_message_customer_display = false; |
|||
var res = OrderSuper.prototype.init_from_JSON.call(this, json); |
|||
this.pos.send_message_customer_display = true; |
|||
return res; |
|||
}, |
|||
|
|||
add_product: function(product, options){ |
|||
var send_message = this.pos.send_message_customer_display; |
|||
this.pos.send_message_customer_display = false; |
|||
var res = OrderSuper.prototype.add_product.call(this, product, options); |
|||
if (send_message){ |
|||
this.pos.proxy.send_text_customer_display( |
|||
this.pos.proxy.prepare_message_orderline( |
|||
this.get_last_orderline(), 'add_line')); |
|||
this.pos.send_message_customer_display = true; |
|||
} |
|||
return res; |
|||
}, |
|||
|
|||
}); |
|||
|
|||
//////////////////////////////////
|
|||
// Overload models.Orderline
|
|||
//////////////////////////////////
|
|||
models.Orderline = models.Orderline.extend({ |
|||
|
|||
set_quantity: function(quantity, keep_price){ |
|||
var send_message = this.pos.send_message_customer_display; |
|||
var message; |
|||
this.pos.send_message_customer_display = false; |
|||
|
|||
// In the current Odoo design, set_quantity is call to remove line
|
|||
// so we prepare the message before because after the call
|
|||
// of super, the line is delete.
|
|||
if (send_message){ |
|||
if (quantity === 'remove') { |
|||
message = this.pos.proxy.prepare_message_orderline(this, 'delete_line'); |
|||
} |
|||
} |
|||
var res = OrderlineSuper.prototype.set_quantity.call(this, quantity, keep_price); |
|||
if (send_message) { |
|||
if (quantity !== 'remove'){ |
|||
message = this.pos.proxy.prepare_message_orderline(this, 'update_quantity'); |
|||
} |
|||
this.pos.send_message_customer_display = true; |
|||
this.pos.proxy.send_text_customer_display(message); |
|||
} |
|||
return res; |
|||
}, |
|||
|
|||
set_discount: function(discount){ |
|||
var send_message = this.pos.send_message_customer_display; |
|||
this.pos.send_message_customer_display = false; |
|||
|
|||
var res = OrderlineSuper.prototype.set_discount.call(this, discount); |
|||
if (send_message) { |
|||
this.pos.send_message_customer_display = true; |
|||
this.pos.proxy.send_text_customer_display( |
|||
this.pos.proxy.prepare_message_orderline(this, 'update_discount')); |
|||
} |
|||
return res; |
|||
}, |
|||
|
|||
set_unit_price: function(price){ |
|||
var send_message = this.pos.send_message_customer_display; |
|||
this.pos.send_message_customer_display = false; |
|||
|
|||
var res = OrderlineSuper.prototype.set_unit_price.call(this, price); |
|||
if (send_message) { |
|||
this.pos.send_message_customer_display = true; |
|||
this.pos.proxy.send_text_customer_display( |
|||
this.pos.proxy.prepare_message_orderline(this, 'update_unit_price')); |
|||
} |
|||
return res; |
|||
}, |
|||
|
|||
}); |
|||
|
|||
}); |
@ -0,0 +1,51 @@ |
|||
/* |
|||
Copyright (C) 2015-Today GRAP (http://www.grap.coop)
|
|||
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
|
|||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|||
*/ |
|||
|
|||
odoo.define('pos_customer_display.screens', function (require) { |
|||
"use strict"; |
|||
|
|||
var screens = require('point_of_sale.screens'); |
|||
|
|||
screens.PaymentScreenWidget.include({ |
|||
|
|||
render_paymentlines: function() { |
|||
if (this.pos.get_order().get_total_with_tax() === 0) { |
|||
// Render payment is called each time a new order is created
|
|||
// (and so when lauching the PoS)
|
|||
// in that case, we display the welcome message
|
|||
this.pos.proxy.send_text_customer_display( |
|||
this.pos.proxy.prepare_message_welcome() |
|||
); |
|||
} else { |
|||
this.pos.proxy.send_text_customer_display( |
|||
this.pos.proxy.prepare_message_payment() |
|||
); |
|||
} |
|||
return this._super(); |
|||
}, |
|||
|
|||
}); |
|||
|
|||
screens.ClientListScreenWidget.include({ |
|||
|
|||
save_changes: function(){ |
|||
if(this.has_client_changed()){ |
|||
this.pos.proxy.send_text_customer_display( |
|||
this.pos.proxy.prepare_message_client(this.new_client) |
|||
); |
|||
} |
|||
// we disable the send of message, during the call of _super()
|
|||
// because when selecting customer, all lines are recomputed
|
|||
// and so a message is sent for each lines
|
|||
// causing useless flashes
|
|||
this.pos.send_message_customer_display = false; |
|||
var res = this._super(); |
|||
this.pos.send_message_customer_display = true; |
|||
return res; |
|||
}, |
|||
}); |
|||
|
|||
}); |
@ -0,0 +1,14 @@ |
|||
<?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_customer_display/static/src/js/models.js" /> |
|||
<script type="text/javascript" src="/pos_customer_display/static/src/js/screens.js" /> |
|||
<script type="text/javascript" src="/pos_customer_display/static/src/js/gui.js" /> |
|||
<script type="text/javascript" src="/pos_customer_display/static/src/js/devices.js" /> |
|||
<script type="text/javascript" src="/pos_customer_display/static/src/js/customer_display_2_20.js" /> |
|||
</xpath> |
|||
</template> |
|||
|
|||
</odoo> |
@ -0,0 +1,46 @@ |
|||
<?xml version="1.0"?> |
|||
<odoo> |
|||
|
|||
<record id="view_pos_config_form" model="ir.ui.view"> |
|||
<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="//field[@name='iface_cashdrawer']/.." position="after"> |
|||
<div class="row"> |
|||
<label string="LED Customer Display" for="iface_customer_display" class="col-lg-3 o_light_label"/> |
|||
<field name="iface_customer_display"/> |
|||
</div> |
|||
|
|||
<div class="row" attrs="{'invisible': [('iface_customer_display', '=', False)]}"> |
|||
<label string="Customer Display Format" for="customer_display_format" class="col-lg-3 o_light_label"/> |
|||
<field name="customer_display_format"/> |
|||
</div> |
|||
|
|||
<div class="row" attrs="{'invisible': [('iface_customer_display', '=', False)]}"> |
|||
<label string="Line Length" for="customer_display_line_length" class="col-lg-3 o_light_label"/> |
|||
<field name="customer_display_line_length"/> |
|||
</div> |
|||
|
|||
<div class="row" attrs="{'invisible': [('iface_customer_display', '=', False)]}"> |
|||
<label string="Next Customer (Line 1)" for="customer_display_msg_next_l1" class="col-lg-3 o_light_label"/> |
|||
<field name="customer_display_msg_next_l1"/> |
|||
</div> |
|||
<div class="row" attrs="{'invisible': [('iface_customer_display', '=', False)]}"> |
|||
<label string="Next Customer (Line 2)" for="customer_display_msg_next_l2" class="col-lg-3 o_light_label"/> |
|||
<field name="customer_display_msg_next_l2"/> |
|||
</div> |
|||
|
|||
<div class="row" attrs="{'invisible': [('iface_customer_display', '=', False)]}"> |
|||
<label string="PoS Closed (Line 1)" for="customer_display_msg_closed_l1" class="col-lg-3 o_light_label"/> |
|||
<field name="customer_display_msg_closed_l1"/> |
|||
</div> |
|||
<div class="row" attrs="{'invisible': [('iface_customer_display', '=', False)]}"> |
|||
<label string="PoS Closed (Line 2)" for="customer_display_msg_closed_l2" class="col-lg-3 o_light_label"/> |
|||
<field name="customer_display_msg_closed_l2"/> |
|||
</div> |
|||
|
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue