diff --git a/pos_barcode_tare/README.rst b/pos_barcode_tare/README.rst deleted file mode 100644 index a94fcf99..00000000 --- a/pos_barcode_tare/README.rst +++ /dev/null @@ -1,127 +0,0 @@ -==================================================== -Point of Sale - Tare barecode labels for loose goods -==================================================== - -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! 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/9.0/pos_barcode_tare - :alt: OCA/pos -.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/pos-9-0/pos-9-0-pos_barcode_tare - :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/9.0 - :alt: Try me on Runbot - -|badge1| |badge2| |badge3| |badge4| |badge5| - -This add-on enables POS to read and print tare barcodes. We print a barcode tare label to sell loose goods in a Bring Your Own pot (BYOC) scheme. - -The BYOC scheme has five steps: - 1. The cashier weighs the pot and sticks the tare barcode onto the customer's pot. - 2. The customer go and put loose goods into the labeled pot. - 3. The cashier weighs the pot with loose goods inside. POS computes the price including the pot. - 4. The cashier scans the tare barcode. POS get the pot weight from the barcode. POS subtracts the pot weight from the weight of the latest product. POS sets the billable price for the loose goods. - 5. The customer pays. - -This add-on adds a news screen to POS to print (web) the tare barcode labels. This add-on enables POS to read a tare barcode. Reading a barcode makes POS adjust the weight of the latest article in the order list. The new weight is equal to the total weight minus the tare weight. The price is updated accordingly to the weight change. - -POS home screen is now: - -.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_barcode_tare/static/description/POS_with_button.png - -The label screen is: - -.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_barcode_tare/static/description/null_weight.png - -When we read a weight the impression button is enabled - -.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_barcode_tare/static/description/ready_to_print.png - -A barcode label looks like: - -.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_barcode_tare/static/description/label.png - -Zoom on the action widget: - -.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_barcode_tare/static/description/zoom_action_widget.png - -**Table of contents** - -.. contents:: - :local: - -Usage -===== - -Install this add-on and configure the point of sale where you want to be able to use the tare barecode. The label printing is done using web print. To streamline the label printing it is advised to use the silent printing mode (firefox) or the kiosk printing (chrome). - -The command line to start a chrome base browser in kiosk mode with silent printing looks like: - -``chromium-browser --use-system-default-printer --kiosk --kiosk-printing http://localhost:8069/`` - -Known issues / Roadmap -====================== - -- Merge with Sylvain LE GAL tare module that allows user to set tare on the scale screen. - -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 -~~~~~~~ - -* Le Nid - -Contributors -~~~~~~~~~~~~ - -- Le Nid -- Sylvain LE GAL -- CoopITEasy - - -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. - -.. |maintainer-fkawala| image:: https://github.com/fkawala.png?size=40px - :target: https://github.com/fkawala - :alt: fkawala - -Current `maintainer `__: - -|maintainer-fkawala| - -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_barcode_tare/__init__.py b/pos_barcode_tare/__init__.py deleted file mode 100644 index 0650744f..00000000 --- a/pos_barcode_tare/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import models diff --git a/pos_barcode_tare/__manifest__.py b/pos_barcode_tare/__manifest__.py deleted file mode 100644 index f1450117..00000000 --- a/pos_barcode_tare/__manifest__.py +++ /dev/null @@ -1,24 +0,0 @@ -# @author: François Kawala -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -{ - 'name': "Point of Sale - Tare barecode labels for loose goods", - 'version': '12.0.1.0.0', - 'category': 'Point of Sale', - 'summary': """Point of Sale - Print and scan tare \ - barecodes labels to sell loose goods.""", - 'author': "Le Nid, Odoo Community Association (OCA)", - 'website': "https://github.com/OCA/pos", - 'license': 'AGPL-3', - 'maintainers': ['fkawala'], - 'depends': ['point_of_sale'], - 'demo': ['demo/pos_barcode_tare_demo.xml'], - 'data': [ - 'pos_barcode_tare.xml', - 'views/pos_config_view.xml', - 'data/barcode_rule.xml', - ], - 'qweb': [ - 'static/src/xml/pos_barcode_tare.xml', - ], - 'installable': True, -} diff --git a/pos_barcode_tare/i18n/fr_CH.po b/pos_barcode_tare/i18n/fr_CH.po deleted file mode 100644 index aa6bc88a..00000000 --- a/pos_barcode_tare/i18n/fr_CH.po +++ /dev/null @@ -1,185 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * pos_barcode_tare -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 9.0c\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-14 06:44+0000\n" -"PO-Revision-Date: 2020-02-14 06:44+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_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:8 -#, python-format -msgid "Back" -msgstr "Retour" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:130 -#, python-format -msgid "Failed to read weight from scale." -msgstr "Echec lors de la lecture du poids depuis la balance" - -#. module: pos_barcode_tare -#: model:product.uom,name:pos_barcode_tare.product_uom_kgm_dbg -msgid "Kg" -msgstr "Kg" - -#. module: pos_barcode_tare -#: model:ir.ui.view,arch_db:pos_barcode_tare.view_pos_config_form -msgid "Loose good options" -msgstr "Options pour la vente en vrac" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:196 -#, python-format -msgid "Maximum tare weight is 99.999kg" -msgstr "Le poids mesuré est supérieur au poids maximum pour la tare: 99.999kg" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:18 -#, python-format -msgid "Print" -msgstr "Imprimer l'étiquette" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:11 -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:41 -#, python-format -msgid "Print a tare label" -msgstr "Imprimer une étiquette de tare" - -#. module: pos_barcode_tare -#: model:ir.model.fields,help:pos_barcode_tare.field_pos_config_iface_tare_label -msgid "Print tare labels with this POS" -msgstr "Utiliser ce POS pour imprimer les étiquettes de tare" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:15 -#, python-format -msgid "Set the pot on the scale and check the weight above" -msgstr "" -"Placez le récipient à tarer sur la balance puis vérifiez le poids ci-dessus" - -#. module: pos_barcode_tare -#: model:ir.model.fields,field_description:pos_barcode_tare.field_pos_config_iface_tare_label -msgid "Show tare label button" -msgstr "Utiliser ce POS pour imprimer les étiquettes de tare" - -#. module: pos_barcode_tare -#: code:addons/pos_barcode_tare/models/barcode_rule.py:13 -#, python-format -msgid "Tare" -msgstr "Tare" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:164 -#, python-format -msgid "" -"The scale sent a measure in %s unit. This unit of measure (UOM) in not found " -"in the point of sale. You may need to create a new UOM named %s. The UOM " -"name is case sensitive." -msgstr "" -"La balance à envoyé une mesure en %s. Cette unité de mesure (UOM) n'existe " -"pas. Vous devez probablement créer une UOM nommée %s. Le nom de l'UOM est " -"sensible à la casse." - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:288 -#, python-format -msgid "" -"The tare (%s) is already set for the product \"%s\". We can not re-apply a " -"tare to this product." -msgstr "" -"La tare (%s) est déjà mesurée pour le produit \"%s\". Nous ne pouvons plus " -"appliquer de tare à ce produit." - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:319 -#, python-format -msgid "" -"The tare weight is %s %s, it's greater or equal to the product weight %s. We " -"can not apply this tare." -msgstr "" -"Le poids de la tare est de %s %s, c'est plus que le poids du produit %s. " -"Nous ne pouvons pas appliquer cette tare." - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:74 -#, python-format -msgid "We can not apply this tare barcode." -msgstr "Impossible d'appliquer cette étiquette de tare." - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:33 -#, python-format -msgid "We can not cast a weight in %s into %s." -msgstr "Nous ne pouvons pas convertir un poids en %s en %s." - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:69 -#, python-format -msgid "With a" -msgstr "Avec un(e)" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:61 -#, python-format -msgid "at" -msgstr "à" - -#. module: pos_barcode_tare -#: model:ir.model,name:pos_barcode_tare.model_barcode_rule -msgid "barcode.rule" -msgstr "barcode.rule" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:71 -#, python-format -msgid "discount" -msgstr "remise" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:32 -#, python-format -msgid "kg" -msgstr "kg" - -#. module: pos_barcode_tare -#: model:ir.model,name:pos_barcode_tare.model_pos_config -msgid "pos.config" -msgstr "pos.config" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:32 -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:78 -#, python-format -msgid "tare =" -msgstr "tare =" - -#~ msgid "Weight" -#~ msgstr "Poids" diff --git a/pos_barcode_tare/i18n/pos_barcode_tare.pot b/pos_barcode_tare/i18n/pos_barcode_tare.pot deleted file mode 100644 index 5247ad25..00000000 --- a/pos_barcode_tare/i18n/pos_barcode_tare.pot +++ /dev/null @@ -1,165 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * pos_barcode_tare -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 9.0c\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_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:8 -#, python-format -msgid "Back" -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:130 -#, python-format -msgid "Failed to read weight from scale." -msgstr "" - -#. module: pos_barcode_tare -#: model:product.uom,name:pos_barcode_tare.product_uom_kgm_dbg -msgid "Kg" -msgstr "" - -#. module: pos_barcode_tare -#: model:ir.ui.view,arch_db:pos_barcode_tare.view_pos_config_form -msgid "Loose good options" -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:196 -#, python-format -msgid "Maximum tare weight is 99.999kg" -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:18 -#, python-format -msgid "Print" -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:11 -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:41 -#, python-format -msgid "Print a tare label" -msgstr "" - -#. module: pos_barcode_tare -#: model:ir.model.fields,help:pos_barcode_tare.field_pos_config_iface_tare_label -msgid "Print tare labels with this POS" -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:15 -#, python-format -msgid "Set the pot on the scale and check the weight above" -msgstr "" - -#. module: pos_barcode_tare -#: model:ir.model.fields,field_description:pos_barcode_tare.field_pos_config_iface_tare_label -msgid "Show tare label button" -msgstr "" - -#. module: pos_barcode_tare -#: code:addons/pos_barcode_tare/models/barcode_rule.py:13 -#, python-format -msgid "Tare" -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:164 -#, python-format -msgid "The scale sent a measure in %s unit. This unit of measure (UOM) in not found in the point of sale. You may need to create a new UOM named %s. The UOM name is case sensitive." -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:288 -#, python-format -msgid "The tare (%s) is already set for the product \"%s\". We can not re-apply a tare to this product." -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:319 -#, python-format -msgid "The tare weight is %s %s, it's greater or equal to the product weight %s. We can not apply this tare." -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:74 -#, python-format -msgid "We can not apply this tare barcode." -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/js/pos_barcode_tare.js:33 -#, python-format -msgid "We can not cast a weight in %s into %s." -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:69 -#, python-format -msgid "With a" -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:61 -#, python-format -msgid "at" -msgstr "" - -#. module: pos_barcode_tare -#: model:ir.model,name:pos_barcode_tare.model_barcode_rule -msgid "barcode.rule" -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:71 -#, python-format -msgid "discount" -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:32 -#, python-format -msgid "kg" -msgstr "" - -#. module: pos_barcode_tare -#: model:ir.model,name:pos_barcode_tare.model_pos_config -msgid "pos.config" -msgstr "" - -#. module: pos_barcode_tare -#. openerp-web -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:32 -#: code:addons/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml:78 -#, python-format -msgid "tare =" -msgstr "" - diff --git a/pos_barcode_tare/models/pos_config.py b/pos_barcode_tare/models/pos_config.py deleted file mode 100644 index 9cd6cd62..00000000 --- a/pos_barcode_tare/models/pos_config.py +++ /dev/null @@ -1,9 +0,0 @@ -from odoo import models, fields - - -class PosConfig(models.Model): - _inherit = 'pos.config' - iface_tare_label = fields.Boolean( - 'Show tare label button', - help="Print tare labels with this POS" - ) diff --git a/pos_barcode_tare/pos_barcode_tare.xml b/pos_barcode_tare/pos_barcode_tare.xml deleted file mode 100644 index da293016..00000000 --- a/pos_barcode_tare/pos_barcode_tare.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - diff --git a/pos_barcode_tare/readme/CONTRIBUTORS.rst b/pos_barcode_tare/readme/CONTRIBUTORS.rst deleted file mode 100644 index 2c281d6d..00000000 --- a/pos_barcode_tare/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,4 +0,0 @@ -- Le Nid -- Sylvain LE GAL -- CoopITEasy - diff --git a/pos_barcode_tare/readme/DESCRIPTION.rst b/pos_barcode_tare/readme/DESCRIPTION.rst deleted file mode 100644 index a3142610..00000000 --- a/pos_barcode_tare/readme/DESCRIPTION.rst +++ /dev/null @@ -1,30 +0,0 @@ -This add-on enables POS to read and print tare barcodes. We print a barcode tare label to sell loose goods in a Bring Your Own pot (BYOC) scheme. - -The BYOC scheme has five steps: - 1. The cashier weighs the pot and sticks the tare barcode onto the customer's pot. - 2. The customer go and put loose goods into the labeled pot. - 3. The cashier weighs the pot with loose goods inside. POS computes the price including the pot. - 4. The cashier scans the tare barcode. POS get the pot weight from the barcode. POS subtracts the pot weight from the weight of the latest product. POS sets the billable price for the loose goods. - 5. The customer pays. - -This add-on adds a news screen to POS to print (web) the tare barcode labels. This add-on enables POS to read a tare barcode. Reading a barcode makes POS adjust the weight of the latest article in the order list. The new weight is equal to the total weight minus the tare weight. The price is updated accordingly to the weight change. - -POS home screen is now: - -.. image:: ../static/description/POS_with_button.png - -The label screen is: - -.. image:: ../static/description/null_weight.png - -When we read a weight the impression button is enabled - -.. image:: ../static/description/ready_to_print.png - -A barcode label looks like: - -.. image:: ../static/description/label.png - -Zoom on the action widget: - -.. image:: ../static/description/zoom_action_widget.png diff --git a/pos_barcode_tare/readme/ROADMAP.rst b/pos_barcode_tare/readme/ROADMAP.rst deleted file mode 100644 index 3c43f1c0..00000000 --- a/pos_barcode_tare/readme/ROADMAP.rst +++ /dev/null @@ -1 +0,0 @@ -- Merge with Sylvain LE GAL tare module that allows user to set tare on the scale screen. diff --git a/pos_barcode_tare/static/description/icon.png b/pos_barcode_tare/static/description/icon.png deleted file mode 100644 index 3a0328b5..00000000 Binary files a/pos_barcode_tare/static/description/icon.png and /dev/null differ diff --git a/pos_barcode_tare/static/src/css/pos_barcode_tare.css b/pos_barcode_tare/static/src/css/pos_barcode_tare.css deleted file mode 100644 index 55f45827..00000000 --- a/pos_barcode_tare/static/src/css/pos_barcode_tare.css +++ /dev/null @@ -1,123 +0,0 @@ -.pos .print-label.disabled { - background: #e2e2e2; - border: solid 1px #BEBEBE; - opacity: 0.5; - cursor: default; - color: inherit; -} - -.pos .tare-screen .centered-content { - text-align:center; -} - -@media screen { - .pos .tare-screen .pos-tare-label-container { - width: 300px; - background-color: white; - margin: 20px; - padding: 15px; - font-size: 21px; - padding-bottom:30px; - font-family: "Inconsolata"; - border: solid 1px rgb(220,220,220); - border-radius: 3px; - overflow: hidden; - text-align: center; - display: inline-block; - justify-content: center; - align-items: center; - flex-wrap: wrap; - } - - .pos .tare-screen .pos-tare-label-container img { - width: 50mm; - height: 45mm; - } -} - -.pos .tare-screen .pos-tare-label-container .caption { - display: block; - text-overflow: ellipsis; - flex-basis: 100vw; -} - -.pos .tare-screen .pos-directions-for-user { - font-size: 25px; - margin: 8px; - text-align: center; - line-height: 2; -} - -.pos .tare-screen .pos-directions-for-user span { - width:100px; - height: 50px; - background-color: rgb(49,174,218); - color: white !important; - font-weight: bold; - border: solid 1px black; - border-radius: 90% 30%; - display: flex; - align-items: center; - overflow: hidden; - vertical-align:middle; - justify-content: center; - margin-left: auto; - margin-right: auto; -} - -.pos .tare-screen .centered-content .print-label { - text-align: center; - font-size: 32px; - background: rgb(110,200,155); - color: white; - border-radius: 3px; - padding: 16px; - margin: 16px; - cursor: pointer; -} - -@media print { - body { - position: relative !important; - } - - .pos .tare-screen header, - .pos .tare-screen .top-content, - .pos .tare-screen .print-label, - .pos .tare-screen .pos-directions-for-user { - display: none !important; - } - - .pos .tare-screen .screen-content { - max-width: unset !important; - } - - .pos .tare-screen .centered-content { - position: static; - text-align: center; - border: none; - width: 100vw; - height: 100vh; - margin: 0mm; - page-break-inside: avoid; - overflow: hidden; - padding: 0; - display: flex; - justify-content: center; - align-items: center; - flex-wrap: wrap; - left: unset !important; - right: unset !important; - } - - .pos .tare-screen .centered-content .pos-tare-label-container img { - width: 90vw; - height: 70vh; - } - - .pos .tare-screen .centered-content .pos-tare-label-container .caption { - text-overflow: ellipsis; - font-size: 5vh; - flex-basis: 100%; - } -} \ No newline at end of file diff --git a/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml b/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml deleted file mode 100644 index 0679472b..00000000 --- a/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - -
-
-
- - - Back - -

Print a tare label

-
-
-
-
- Set the pot on the scale and check the weight above -
- -
-
-
-
- - -
-
-
- - tare = kg -
-
-
-
- - - - - - Print a tare label - - - - - -
  • - - - - - - -
      - -
    • - - - - - at - - / - -
    • -
      - -
    • - With a - - % - - discount -
    • -
      - -
    • - tare = -
    • -
      -
    -
  • -
    - -
    diff --git a/pos_barcode_tare/views/pos_config_view.xml b/pos_barcode_tare/views/pos_config_view.xml deleted file mode 100644 index 3c2415eb..00000000 --- a/pos_barcode_tare/views/pos_config_view.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - view.pos.config.form - pos.config - - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    diff --git a/pos_tare/README.rst b/pos_tare/README.rst index 76c89664..a94fcf99 100644 --- a/pos_tare/README.rst +++ b/pos_tare/README.rst @@ -1,8 +1,127 @@ -==================== -Point Of Sale - Tare -==================== +==================================================== +Point of Sale - Tare barecode labels for loose goods +==================================================== .. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! 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/9.0/pos_barcode_tare + :alt: OCA/pos +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/pos-9-0/pos-9-0-pos_barcode_tare + :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/9.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This add-on enables POS to read and print tare barcodes. We print a barcode tare label to sell loose goods in a Bring Your Own pot (BYOC) scheme. + +The BYOC scheme has five steps: + 1. The cashier weighs the pot and sticks the tare barcode onto the customer's pot. + 2. The customer go and put loose goods into the labeled pot. + 3. The cashier weighs the pot with loose goods inside. POS computes the price including the pot. + 4. The cashier scans the tare barcode. POS get the pot weight from the barcode. POS subtracts the pot weight from the weight of the latest product. POS sets the billable price for the loose goods. + 5. The customer pays. + +This add-on adds a news screen to POS to print (web) the tare barcode labels. This add-on enables POS to read a tare barcode. Reading a barcode makes POS adjust the weight of the latest article in the order list. The new weight is equal to the total weight minus the tare weight. The price is updated accordingly to the weight change. + +POS home screen is now: + +.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_barcode_tare/static/description/POS_with_button.png + +The label screen is: + +.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_barcode_tare/static/description/null_weight.png + +When we read a weight the impression button is enabled + +.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_barcode_tare/static/description/ready_to_print.png + +A barcode label looks like: + +.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_barcode_tare/static/description/label.png + +Zoom on the action widget: + +.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_barcode_tare/static/description/zoom_action_widget.png + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +Install this add-on and configure the point of sale where you want to be able to use the tare barecode. The label printing is done using web print. To streamline the label printing it is advised to use the silent printing mode (firefox) or the kiosk printing (chrome). + +The command line to start a chrome base browser in kiosk mode with silent printing looks like: + +``chromium-browser --use-system-default-printer --kiosk --kiosk-printing http://localhost:8069/`` + +Known issues / Roadmap +====================== + +- Merge with Sylvain LE GAL tare module that allows user to set tare on the scale screen. + +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 +~~~~~~~ + +* Le Nid + +Contributors +~~~~~~~~~~~~ + +- Le Nid +- Sylvain LE GAL +- CoopITEasy + + +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. + +.. |maintainer-fkawala| image:: https://github.com/fkawala.png?size=40px + :target: https://github.com/fkawala + :alt: fkawala + +Current `maintainer `__: + +|maintainer-fkawala| + +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_tare/__init__.py b/pos_tare/__init__.py index e69de29b..0650744f 100644 --- a/pos_tare/__init__.py +++ b/pos_tare/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/pos_tare/__manifest__.py b/pos_tare/__manifest__.py index 6c6d86bf..db4b055a 100644 --- a/pos_tare/__manifest__.py +++ b/pos_tare/__manifest__.py @@ -1,20 +1,24 @@ -# Copyright (C) 2015-Today GRAP (http://www.grap.coop) -# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# @author: François Kawala # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - { - "name": "Point Of Sale - Tare", - "summary": "Manage Tare in Point Of Sale module", - "version": "12.0.1.0.0", - "category": "Point Of Sale", - "author": "GRAP, " - "Odoo Community Association (OCA)", - "maintainers": ["legalsylvain"], - "website": "https://www.github.com/OCA/pos", - "license": "AGPL-3", - "depends": ["point_of_sale"], - "data": ["views/assets.xml"], - "qweb": ["static/src/xml/pos_tare.xml"], - "installable": True, - "images": ["static/description/pos_tare.png"], + 'name': "Point of Sale - Tare barecode labels for loose goods", + 'version': '12.0.1.0.0', + 'category': 'Point of Sale', + 'summary': """Point of Sale - Print and scan tare \ + barecodes labels to sell loose goods.""", + 'author': "Le Nid, Odoo Community Association (OCA)", + 'website': "https://github.com/OCA/pos", + 'license': 'AGPL-3', + 'maintainers': ['fkawala'], + 'depends': ['point_of_sale'], + 'demo': ['demo/pos_tare_demo.xml'], + 'data': [ + 'pos_tare.xml', + 'views/pos_config_view.xml', + 'data/barcode_rule.xml', + ], + 'qweb': [ + 'static/src/xml/pos_tare.xml', + ], + 'installable': True, } diff --git a/pos_barcode_tare/data/barcode_rule.xml b/pos_tare/data/barcode_rule.xml similarity index 100% rename from pos_barcode_tare/data/barcode_rule.xml rename to pos_tare/data/barcode_rule.xml diff --git a/pos_barcode_tare/demo/pos_barcode_tare_demo.xml b/pos_tare/demo/pos_tare_demo.xml similarity index 100% rename from pos_barcode_tare/demo/pos_barcode_tare_demo.xml rename to pos_tare/demo/pos_tare_demo.xml diff --git a/pos_tare/i18n/fr.po b/pos_tare/i18n/fr.po deleted file mode 100644 index 58c64ac3..00000000 --- a/pos_tare/i18n/fr.po +++ /dev/null @@ -1,51 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * pos_tare -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-01-08 15:03+0000\n" -"PO-Revision-Date: 2020-01-08 15:03+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_tare -#. openerp-web -#: code:addons/pos_tare/static/src/xml/pos_tare.xml:11 -#, python-format -msgid "Gross Weight" -msgstr "Poids Brut" - -#. module: pos_tare -#. openerp-web -#: code:addons/pos_tare/static/src/js/screens.js:49 -#, python-format -msgid "Incorrect Tare Value" -msgstr "Valeur de tare incorrecte" - -#. module: pos_tare -#. openerp-web -#: code:addons/pos_tare/static/src/xml/pos_tare.xml:19 -#, python-format -msgid "Kg" -msgstr "Kg" - -#. module: pos_tare -#. openerp-web -#: code:addons/pos_tare/static/src/js/screens.js:50 -#, python-format -msgid "Please set a numeric value in the tare field, or let empty." -msgstr "Veuillez saisir une valeur numérique dans le champ 'tare', ou le laisser vide." - -#. module: pos_tare -#. openerp-web -#: code:addons/pos_tare/static/src/xml/pos_tare.xml:15 -#, python-format -msgid "Tare" -msgstr "Tare" diff --git a/pos_barcode_tare/models/__init__.py b/pos_tare/models/__init__.py similarity index 100% rename from pos_barcode_tare/models/__init__.py rename to pos_tare/models/__init__.py diff --git a/pos_barcode_tare/models/barcode_rule.py b/pos_tare/models/barcode_rule.py similarity index 100% rename from pos_barcode_tare/models/barcode_rule.py rename to pos_tare/models/barcode_rule.py diff --git a/pos_tare/models/pos_config.py b/pos_tare/models/pos_config.py new file mode 100644 index 00000000..d507120a --- /dev/null +++ b/pos_tare/models/pos_config.py @@ -0,0 +1,18 @@ +from odoo import models, fields + + +class PosConfig(models.Model): + _inherit = 'pos.config' + + iface_tare_method = fields.Selection([ + ('Manual', 'Input the tare manually'), + ('Barcode', 'Scan a barcode to set the tare'), + ('Both', 'Manual input and barcode'), + ], + string='Tare input method', + default='Both', + help="Select tare method:\n" + "* 'Manual (the scale screen has an extra tare input field)';\n" + "* 'Barecode (scan a barcode to tare the selected order line)';\n" + "* 'Both manual input and barcode methods are enabled';", + ) diff --git a/pos_tare/pos_tare.xml b/pos_tare/pos_tare.xml new file mode 100644 index 00000000..062f2a94 --- /dev/null +++ b/pos_tare/pos_tare.xml @@ -0,0 +1,8 @@ + + + diff --git a/pos_tare/readme/CONFIGURE.rst b/pos_tare/readme/CONFIGURE.rst deleted file mode 100644 index fcc6833e..00000000 --- a/pos_tare/readme/CONFIGURE.rst +++ /dev/null @@ -1,2 +0,0 @@ -To enable this feature, you should enable "IoT Box" on your Point of Sale, -and check the box "Electronic Scale" diff --git a/pos_tare/readme/CONTRIBUTORS.rst b/pos_tare/readme/CONTRIBUTORS.rst index e1525ce0..2c281d6d 100644 --- a/pos_tare/readme/CONTRIBUTORS.rst +++ b/pos_tare/readme/CONTRIBUTORS.rst @@ -1 +1,4 @@ -* Sylvain LE GAL (https://www.twitter.com/legalsylvain) +- Le Nid +- Sylvain LE GAL +- CoopITEasy + diff --git a/pos_tare/readme/DESCRIPTION.rst b/pos_tare/readme/DESCRIPTION.rst index 6d173e68..a3142610 100644 --- a/pos_tare/readme/DESCRIPTION.rst +++ b/pos_tare/readme/DESCRIPTION.rst @@ -1,6 +1,30 @@ -Give the possibility to the user to enter a Tare weight, when weighting -products in the Point of Sale. -This will compute automatically net weight and set it to the current -selected order +This add-on enables POS to read and print tare barcodes. We print a barcode tare label to sell loose goods in a Bring Your Own pot (BYOC) scheme. -.. figure:: ../static/description/pos_tare.png +The BYOC scheme has five steps: + 1. The cashier weighs the pot and sticks the tare barcode onto the customer's pot. + 2. The customer go and put loose goods into the labeled pot. + 3. The cashier weighs the pot with loose goods inside. POS computes the price including the pot. + 4. The cashier scans the tare barcode. POS get the pot weight from the barcode. POS subtracts the pot weight from the weight of the latest product. POS sets the billable price for the loose goods. + 5. The customer pays. + +This add-on adds a news screen to POS to print (web) the tare barcode labels. This add-on enables POS to read a tare barcode. Reading a barcode makes POS adjust the weight of the latest article in the order list. The new weight is equal to the total weight minus the tare weight. The price is updated accordingly to the weight change. + +POS home screen is now: + +.. image:: ../static/description/POS_with_button.png + +The label screen is: + +.. image:: ../static/description/null_weight.png + +When we read a weight the impression button is enabled + +.. image:: ../static/description/ready_to_print.png + +A barcode label looks like: + +.. image:: ../static/description/label.png + +Zoom on the action widget: + +.. image:: ../static/description/zoom_action_widget.png diff --git a/pos_tare/readme/ROADMAP.rst b/pos_tare/readme/ROADMAP.rst index bfa91b69..3c43f1c0 100644 --- a/pos_tare/readme/ROADMAP.rst +++ b/pos_tare/readme/ROADMAP.rst @@ -1,2 +1 @@ -* Display the gross weight and the tare on each order line, on the screen - and on the receipt. +- Merge with Sylvain LE GAL tare module that allows user to set tare on the scale screen. diff --git a/pos_barcode_tare/readme/USAGE.rst b/pos_tare/readme/USAGE.rst similarity index 100% rename from pos_barcode_tare/readme/USAGE.rst rename to pos_tare/readme/USAGE.rst diff --git a/pos_barcode_tare/static/description/POS_with_button.png b/pos_tare/static/description/POS_with_button.png similarity index 100% rename from pos_barcode_tare/static/description/POS_with_button.png rename to pos_tare/static/description/POS_with_button.png diff --git a/pos_tare/static/description/icon.png b/pos_tare/static/description/icon.png index 821c4b3b..3a0328b5 100644 Binary files a/pos_tare/static/description/icon.png and b/pos_tare/static/description/icon.png differ diff --git a/pos_barcode_tare/static/description/index.html b/pos_tare/static/description/index.html similarity index 100% rename from pos_barcode_tare/static/description/index.html rename to pos_tare/static/description/index.html diff --git a/pos_barcode_tare/static/description/label.png b/pos_tare/static/description/label.png similarity index 100% rename from pos_barcode_tare/static/description/label.png rename to pos_tare/static/description/label.png diff --git a/pos_barcode_tare/static/description/null_weight.png b/pos_tare/static/description/null_weight.png similarity index 100% rename from pos_barcode_tare/static/description/null_weight.png rename to pos_tare/static/description/null_weight.png diff --git a/pos_tare/static/description/pos_tare.png b/pos_tare/static/description/pos_tare.png deleted file mode 100644 index 2738e6f0..00000000 Binary files a/pos_tare/static/description/pos_tare.png and /dev/null differ diff --git a/pos_barcode_tare/static/description/ready_to_print.png b/pos_tare/static/description/ready_to_print.png similarity index 100% rename from pos_barcode_tare/static/description/ready_to_print.png rename to pos_tare/static/description/ready_to_print.png diff --git a/pos_barcode_tare/static/description/zoom_action_widget.png b/pos_tare/static/description/zoom_action_widget.png similarity index 100% rename from pos_barcode_tare/static/description/zoom_action_widget.png rename to pos_tare/static/description/zoom_action_widget.png diff --git a/pos_barcode_tare/static/src/js/pos_barcode_tare.js b/pos_tare/static/src/js/pos_tare.js similarity index 51% rename from pos_barcode_tare/static/src/js/pos_barcode_tare.js rename to pos_tare/static/src/js/pos_tare.js index 66f251af..e7ffaf26 100644 --- a/pos_barcode_tare/static/src/js/pos_barcode_tare.js +++ b/pos_tare/static/src/js/pos_tare.js @@ -88,10 +88,16 @@ odoo.define('pos_barcode_tare.screens', function (require) { }, // Setup the callback action for the "weight" barcodes. show: function () { + + console.log("okok"); this._super(); - this.pos.barcode_reader.set_action_callback( - 'tare', - _.bind(this.barcode_tare_action, this)); + if (this.pos.config.iface_tare_method !== 'Manual') { + + console.log("okokokok"); + this.pos.barcode_reader.set_action_callback( + 'tare', + _.bind(this.barcode_tare_action, this)); + } }, }); @@ -105,181 +111,92 @@ odoo.define('pos_barcode_tare.screens', function (require) { }, }); - screens.define_action_button({ - 'name': 'tareScreenButton', - 'widget': TareScreenButton, - }); + screens.ScaleScreenWidget.include({ - // This is a new screen that reads weight from the electronic scale and - // create a barcode label encoding the weight. The screen shows a preview - // of the label. The user is expected to check if the preview matches what's - // measured on the scale. The barcode image is generated by the report - // module. - var TareScreenWidget = screens.ScreenWidget.extend({ - template: 'TareScreenWidget', - next_screen: 'products', - previous_screen: 'products', - default_tare_value: 0.0, - weight_barcode_prefix: null, + // ///////////////////////////// + // Overload Section + // ///////////////////////////// - show: function () { + // Overload show function + // add an handler on the + show: function(){ this._super(); - // Fetch the unit of measure used to save the tare - this.kg_unit = get_unit(this.pos, "kg"); - // Fetch the barcode prefix from POS barcode parser rules. - this.weight_barcode_prefix = this.get_barcode_prefix(); - // Setup the proxy - var queue = this.pos.proxy_queue; - // The pooling of the scale starts here. + this.tare = 0.0; var self = this; - queue.schedule(function () { - return self.pos.proxy.scale_read().then(function (weight) { - try { - self.set_weight(weight); - } catch (error) { - var title = _t("Failed to read weight from scale."); - var popup = {title: title, body: error.message}; - self.gui.show_popup('error', popup); - } - }); - }, {duration:150, repeat: true}); - // Shows a barcode whose weight might be zero, but this is preferred - // for UI/UX reasons. - this.render_receipt(); - this.lock_screen(true); - }, - get_barcode_prefix: function () { - var barcode_pattern = this.get_barcode_pattern(); - return barcode_pattern.substr(0, 2); - }, - get_barcode_pattern: function () { - var rules = this.get_barcode_rules(); - var rule = rules.filter( - function (r) { - // We select the first (smallest sequence ID) barcode rule - // with the expected type. - return r.type === tare_barcode_type; - })[0]; - return rule.pattern; - }, - get_barcode_rules: function () { - return this.pos.barcode_reader.barcode_parser.nomenclature.rules; + this.$('#input_weight_tare').keyup(function(event){ + self.onchange_tare(event); + }); + this.$('#input_weight_tare').focus() }, - set_weight: function (scale_measure) { - var weight = scale_measure.weight; - var unit = get_unit(this.pos, scale_measure.unit); - if (typeof unit === 'undefined') { - throw new Error(_.str.sprintf( - _t("The scale sent a measure in %s unit. This unit of "+ - "measure (UOM) in not found in the point of sale. You " + - "may need to create a new UOM named %s. The UOM name is "+ - "case sensitive."), scale_measure.unit, - scale_measure.unit)); - } + // Overload set_weight function + // We assume that the argument is now the gross weight + // we compute the net weight, depending on the tare and the gross weight + // then we call super, with the net weight + set_weight: function(gross_weight){ + this.gross_weight = gross_weight; + var net_weight = gross_weight - (this.tare || 0); + this.$('#container_weight_gross').text(this.get_product_gross_weight_string()); + this._super(net_weight); + }, - if (weight > 0) { - this.weight_in_kg = convert_mass(weight, unit, this.kg_unit); - this.render_receipt(); - this.lock_screen(false); + order_product: function(){ + // TODO Set a warning, if the value is incorrect; + if (this.tare === undefined) { + this.gui.show_popup('error',{ + 'title': _t('Incorrect Tare Value'), + 'body': _t('Please set a numeric value in the tare field, or let empty.'), + }); } - }, - get_weight: function () { - if (typeof this.weight_in_kg === 'undefined') { - return this.default_tare_value; + else { + this._super(); + if (this.tare > 0.0) { + var order = this.pos.get_order(); + var orderline = order.get_last_orderline(); + orderline.set_tare(this.tare); + } } - return this.weight_in_kg; }, - barcode_data: function (weight) { - // We use EAN13 barcode, it looks like 07 00000 12345 x. First there - // is the prefix, here 07, that is used to decide which type of - // barcode we're dealing with. A weight barcode has then two groups - // of five digits. The first group encodes the product id. Here the - // product id is 00000. The second group encodes the weight in - // grams. Here the weight is 12.345kg. The last digit of the barcode - // is a checksum, here symbolized by x. - var padding_size = 5; - var void_product_id = '0'.repeat(padding_size); - var weight_in_gram = weight * 1e3; - if (weight_in_gram >= Math.pow(10, padding_size)) { - throw new RangeError(_t("Maximum tare weight is 99.999kg")); + // ///////////////////////////// + // Custom Section + // ///////////////////////////// + get_product_gross_weight_string: function(){ + var product = this.get_product(); + var defaultstr = (this.gross_weight || 0).toFixed(3) + ' Kg'; + if(!product || !this.pos){ + return defaultstr; } - - // Weight has to be padded with zeros. - var weight_with_padding = '0'.repeat(padding_size) + weight_in_gram; - var padded_weight = weight_with_padding.substr( - weight_with_padding.length - padding_size); - // Builds the barcode using a placeholder checksum. - var barcode = this.weight_barcode_prefix - .concat(void_product_id, padded_weight) - .concat(0); - // Compute checksum - var barcode_parser = this.pos.barcode_reader.barcode_parser; - var checksum = barcode_parser.ean_checksum(barcode); - // Replace checksum placeholder by the actual checksum. - return barcode.substr(0, 12).concat(checksum); - }, - get_barcode_data: function () { - return this.barcode_data(this.get_weight()); - }, - lock_screen: function (locked) { - this._locked = locked; - if (locked) { - this.$('.print-label').addClass('disabled'); - } else { - this.$('.print-label').removeClass('disabled'); + var unit_id = product.uom_id; + if(!unit_id){ + return defaultstr; } + var unit = this.pos.units_by_id[unit_id[0]]; + var weight = round_pr(this.gross_weight || 0, unit.rounding); + var weightstr = weight.toFixed(Math.ceil(Math.log(1.0/unit.rounding) / Math.log(10) )); + weightstr += ' ' + unit.name; + return weightstr; }, - print_web: function () { - window.print(); - // TODO check this - this.pos.get_order()._printed = true; - }, - print: function () { - // See comment in print function of ReceiptScreenWidget - this.lock_screen(true); - var self = this; - setTimeout(function () { - self.lock_screen(false); - }, 1000); - this.print_web(); - this.click_back(); - }, - click_back: function () { - this.close(); - this.gui.show_screen(this.previous_screen); - }, - renderElement: function () { - this._super(); - var self = this; - this.$('.back').click(function () { - self.click_back(); - }); - this.$('.print-label').click(function () { - if (!self._locked) { - self.print(); - } - }); - }, - render_receipt: function () { - this.$('.pos-tare-label-container').html( - QWeb.render('PosTareLabel', {widget:this})); + onchange_tare: function(event){ + this.tare = this.check_sanitize_value('#input_weight_tare');; + this.set_weight(this.gross_weight); }, - close: function () { - this._super(); - delete this.weight; - this.pos.proxy_queue.clear(); - }, - get_tare_str: function () { - return format_tare(this.pos, this.get_weight(), - get_unit(this.pos, "kg")); - }, - }); - gui.define_screen({name:'tare', widget: TareScreenWidget}); + check_sanitize_value: function (input_name){ + var res = this.$(input_name)[0].value.replace(',', '.').trim(); + if (isNaN(res)){ + this.$(input_name).css("background-color", "#F66"); + return undefined; + } + else{ + this.$(input_name).css("background-color", "#FFF"); + return parseFloat(res, 10); + } + }, + }); + // Update Orderline model var _super_ = models.Orderline.prototype; var OrderLineWithTare = models.Orderline.extend({ @@ -360,7 +277,6 @@ odoo.define('pos_barcode_tare.screens', function (require) { models.Orderline = OrderLineWithTare; - return {TareScreenWidget: TareScreenWidget, - OrderLineWithTare: OrderLineWithTare, + return {OrderLineWithTare: OrderLineWithTare, get_unit: get_unit}; }); diff --git a/pos_tare/static/src/js/screens.js b/pos_tare/static/src/js/screens.js deleted file mode 100644 index 6ee161b5..00000000 --- a/pos_tare/static/src/js/screens.js +++ /dev/null @@ -1,97 +0,0 @@ -/* -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_tare.screens', function (require) { - "use strict"; - - var screens = require('point_of_sale.screens'); - var utils = require('web.utils'); - var round_pr = utils.round_precision; - - - screens.ScaleScreenWidget.include({ - - // ///////////////////////////// - // Overload Section - // ///////////////////////////// - - // Overload show function - // add an handler on the - show: function(){ - this._super(); - this.tare = 0.0; - var self = this; - this.$('#input_weight_tare').keyup(function(event){ - self.onchange_tare(event); - }); - this.$('#input_weight_tare').focus() - }, - - // Overload set_weight function - // We assume that the argument is now the gross weight - // we compute the net weight, depending on the tare and the gross weight - // then we call super, with the net weight - set_weight: function(gross_weight){ - this.gross_weight = gross_weight; - var net_weight = gross_weight - (this.tare || 0); - this.$('#container_weight_gross').text(this.get_product_gross_weight_string()); - this._super(net_weight); - }, - - order_product: function(){ - // TODO Set a warning, if the value is incorrect; - if (this.tare === undefined) { - this.gui.show_popup('error',{ - 'title': _t('Incorrect Tare Value'), - 'body': _t('Please set a numeric value in the tare field, or let empty.'), - }); - } - else { - this._super(); - } - }, - - // ///////////////////////////// - // Custom Section - // ///////////////////////////// - get_product_gross_weight_string: function(){ - var product = this.get_product(); - var defaultstr = (this.gross_weight || 0).toFixed(3) + ' Kg'; - if(!product || !this.pos){ - return defaultstr; - } - var unit_id = product.uom_id; - if(!unit_id){ - return defaultstr; - } - var unit = this.pos.units_by_id[unit_id[0]]; - var weight = round_pr(this.gross_weight || 0, unit.rounding); - var weightstr = weight.toFixed(Math.ceil(Math.log(1.0/unit.rounding) / Math.log(10) )); - weightstr += ' ' + unit.name; - return weightstr; - }, - - onchange_tare: function(event){ - this.tare = this.check_sanitize_value('#input_weight_tare');; - this.set_weight(this.gross_weight); - }, - - check_sanitize_value: function (input_name){ - var res = this.$(input_name)[0].value.replace(',', '.').trim(); - if (isNaN(res)){ - this.$(input_name).css("background-color", "#F66"); - return undefined; - } - else{ - this.$(input_name).css("background-color", "#FFF"); - return parseFloat(res, 10); - } - }, - - }); - -}); diff --git a/pos_tare/static/src/xml/pos_tare.xml b/pos_tare/static/src/xml/pos_tare.xml index 14d2e74d..eaf21f56 100644 --- a/pos_tare/static/src/xml/pos_tare.xml +++ b/pos_tare/static/src/xml/pos_tare.xml @@ -1,24 +1,60 @@ - + -
    - Gross Weight -
    -
    -
    - Tare -
    -
    - Kg -
    + +
    + Gross Weight +
    +
    +
    + Tare +
    +
    + Kg +
    + + +
  • + + + + + + +
      + +
    • + + + + + at + + / + +
    • +
      + +
    • + With a + + % + + discount +
    • +
      + +
    • + tare = +
    • +
      +
    +
  • +
    diff --git a/pos_tare/views/assets.xml b/pos_tare/views/assets.xml deleted file mode 100644 index 9b5d4764..00000000 --- a/pos_tare/views/assets.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - -