Browse Source
Port pos_customer_display to v10
Port pos_customer_display to v10
Remove the "Show total to customer" button, which is not need given the new user interface of the POS: the big "Payment" button has this role now. Add README.rstpull/174/head
Alexis de Lattre
8 years ago
committed by
Sylvain LE GAL
11 changed files with 156 additions and 157 deletions
-
90pos_customer_display/README.rst
-
4pos_customer_display/__init__.py
-
51pos_customer_display/__manifest__.py
-
6pos_customer_display/demo/pos_customer_display_demo.xml
-
3pos_customer_display/models/__init__.py
-
36pos_customer_display/models/pos_customer_display.py
-
15pos_customer_display/static/src/css/pos_customer_display.css
-
29pos_customer_display/static/src/js/customer_display.js
-
14pos_customer_display/static/src/xml/pos.xml
-
46pos_customer_display/views/customer_display_view.xml
-
19pos_customer_display/views/pos_customer_display.xml
@ -0,0 +1,90 @@ |
|||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg |
|||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html |
|||
:alt: License: AGPL-3 |
|||
|
|||
==================== |
|||
POS Customer Display |
|||
==================== |
|||
|
|||
This module adds support for Customer Display in the Point of Sale. As incredible as it may seem, the Odoo POS doesn't have native support for a customer display, even on Odoo 10. So, if the customer cannot see the screen of the cashier, he will not be able to check the price of each product scanned by the cashier, he won't be able to see the total amount, etc. This module provides a solution to this problem by adding support for good old POS LCDs, which are often made of 2 lines of 20 caracters. |
|||
|
|||
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. |
|||
|
|||
It has been tested with a Bixolon BCD-1100 |
|||
(http://www.bixolon.com/html/en/product/product_detail.xhtml?prod_id=61), |
|||
but should support most serial and USB-serial LCD 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>`_. |
|||
|
|||
This module has been developped during a POS code sprint at |
|||
`Akretion France <http://www.akretion.com/>`_ from July 7th to July 10th 2014. |
|||
|
|||
Configuration |
|||
============= |
|||
|
|||
To configure this module, go to the menu *Point of Sale > Configuration > Point |
|||
of Sale* and edit the point of sale for which you want to enable the LCD: |
|||
|
|||
* make sure you have configured the *IP address* and port of the POSbox or pywebdriver in the section *Hardware Proxy / PosBox*, |
|||
* activate the option *Customer Display*, |
|||
* configure the number of caracters on each line of your LCD (20 by default). |
|||
|
|||
At the end of the page, in the *Customer Display* section, you can customize the *Next customer* message and the *POS closed* message. |
|||
|
|||
Usage |
|||
===== |
|||
|
|||
Once everything is configured, just start the POS as usual. You will see messages on the LCD when: |
|||
|
|||
* you start the POS, |
|||
* you add or remove a product, |
|||
* you press the Payment button: the LCD will display the total amount, |
|||
* you enter the amount of cash you receive: the LCD will display the amount of the change to give back, |
|||
* you validate an order and go to the next customer, |
|||
* you close the POS. |
|||
|
|||
.. 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/10.0 |
|||
|
|||
Bug Tracker |
|||
=========== |
|||
|
|||
Bugs are tracked on `GitHub Issues |
|||
<https://github.com/OCA/pos/issues>`_. In case of trouble, please |
|||
check there if your issue has already been reported. If you spotted it first, |
|||
help us smashing it by providing a detailed and welcomed feedback. |
|||
|
|||
Credits |
|||
======= |
|||
|
|||
Contributors |
|||
------------ |
|||
|
|||
* Aurélien Dumaine |
|||
* Alexis de Lattre <alexis.delattre@akretion.com> |
|||
* Father Odilon (`Barroux Abbey <http://www.barroux.org/>`_) |
|||
* Daniel Kraft |
|||
|
|||
Maintainer |
|||
---------- |
|||
|
|||
.. image:: https://odoo-community.org/logo.png |
|||
:alt: Odoo Community Association |
|||
:target: https://odoo-community.org |
|||
|
|||
This module is maintained by the OCA. |
|||
|
|||
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. |
|||
|
|||
To contribute to this module, please visit https://odoo-community.org. |
@ -1 +1,3 @@ |
|||
from . import pos_customer_display |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from . import models |
@ -0,0 +1,3 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from . import pos_customer_display |
@ -1,15 +0,0 @@ |
|||
.pos .show-total-to-customer { |
|||
width: 220px; |
|||
height: 40px; |
|||
font-size: 16px; |
|||
cursor: pointer; |
|||
text-align: center; |
|||
box-sizing: border-box; |
|||
} |
|||
|
|||
.pos .show-total-to-customer-div { |
|||
float: left; |
|||
margin-right: 15px; |
|||
margin-left: 15px; |
|||
margin-top: 20px; |
|||
} |
@ -1,14 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<templates id="template" xml:space="preserve"> |
|||
<t t-extend="OrderWidget" > |
|||
<t t-jquery=".summary" t-operation="append"> |
|||
<t t-if="widget.pos.config.iface_customer_display"> |
|||
<div class="show-total-to-customer-div"> |
|||
<button class="show-total-to-customer"> |
|||
Display Total to Customer |
|||
</button> |
|||
</div> |
|||
</t> |
|||
</t> |
|||
</t> |
|||
</templates> |
@ -1,24 +1,26 @@ |
|||
<?xml version="1.0"?> |
|||
<openerp> |
|||
<data> |
|||
<record id="view_pos_config_form2" model="ir.ui.view"> |
|||
<field name="name">pos.config.form.view.inherit</field> |
|||
<field name="model">pos.config</field> |
|||
<field name="inherit_id" ref="point_of_sale.view_pos_config_form"/> |
|||
<field name="arch" type="xml"> |
|||
<field name="iface_cashdrawer" position="after"> |
|||
<field name="iface_customer_display"/> |
|||
<field name="customer_display_line_length"/> |
|||
</field> |
|||
<group name="receipt" position="after"> |
|||
<group name="customer_display" string="Customer Display"> |
|||
<field name="customer_display_msg_next_l1"/> |
|||
<field name="customer_display_msg_next_l2"/> |
|||
<field name="customer_display_msg_closed_l1"/> |
|||
<field name="customer_display_msg_closed_l2"/> |
|||
</group> |
|||
</group> |
|||
<odoo> |
|||
|
|||
<record id="view_pos_config_form" model="ir.ui.view"> |
|||
<field name="name">pos_customer_display.pos.config.form</field> |
|||
<field name="model">pos.config</field> |
|||
<field name="inherit_id" ref="point_of_sale.view_pos_config_form"/> |
|||
<field name="arch" type="xml"> |
|||
<field name="iface_cashdrawer" position="after"> |
|||
<field name="iface_customer_display"/> |
|||
<field name="customer_display_line_length"/> |
|||
</field> |
|||
</record> |
|||
</data> |
|||
</openerp> |
|||
<group name="receipt" position="after"> |
|||
<group name="customer_display" string="Customer Display"> |
|||
<label string="Next Customer Message" name="next_customer" colspan="2"/> |
|||
<field name="customer_display_msg_next_l1" string="Top Line"/> |
|||
<field name="customer_display_msg_next_l2" string="Bottom Line"/> |
|||
<label string="POS Closed Message" name="pos_closed" colspan="2"/> |
|||
<field name="customer_display_msg_closed_l1" string="Top Line"/> |
|||
<field name="customer_display_msg_closed_l2" string="Bottom Line"/> |
|||
</group> |
|||
</group> |
|||
</field> |
|||
</record> |
|||
|
|||
</odoo> |
@ -1,11 +1,10 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<openerp> |
|||
<data> |
|||
<template id="assets" name="pos_customer_display assets" inherit_id="point_of_sale.assets"> |
|||
<xpath expr="." position="inside"> |
|||
<script type="text/javascript" src="/pos_customer_display/static/src/js/customer_display.js"></script> |
|||
<link rel="stylesheet" href="/pos_customer_display/static/src/css/pos_customer_display.css" id="pos_customer_display-stylesheet"/> |
|||
</xpath> |
|||
</template> |
|||
</data> |
|||
</openerp> |
|||
<odoo> |
|||
|
|||
<template id="assets" name="pos_customer_display assets" inherit_id="point_of_sale.assets"> |
|||
<xpath expr="." position="inside"> |
|||
<script type="text/javascript" src="/pos_customer_display/static/src/js/customer_display.js"></script> |
|||
</xpath> |
|||
</template> |
|||
|
|||
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue