diff --git a/pos_barcode_tare/README.rst b/pos_barcode_tare/README.rst new file mode 100644 index 00000000..289f1c55 --- /dev/null +++ b/pos_barcode_tare/README.rst @@ -0,0 +1,94 @@ +==================================================== +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 enable POS to read and print tare barcodes. A tare barcode is used to sell loose goods in a bring your own +container (BYOC) scheme. + +The BYOC scheme has four steps: + 1. The cashier weights the container and sticks the tare bar code onto the customer's container. + 2. The customer takes the desired quantity of the good s-he wants to buy. + 3. The cashier weights the filled container and good, POS gives the corresponding price. + 4. The cashier scans the tare bar code, POS removes the container's weight from the latest product of the order. + +This add-on adds a news screen to POS to (web) print the tare barcode labels. This add-on enables POS to read a tare +barecode. When such a barcode is read, POS adjusts 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. + +**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. +You can also select the label format in the point of sale configuration. 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). + +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 +- 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. + +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 index 7c68785e..f5ba686b 100644 --- a/pos_barcode_tare/__init__.py +++ b/pos_barcode_tare/__init__.py @@ -1 +1,2 @@ -# -*- coding: utf-8 -*- \ No newline at end of file +# -*- coding: utf-8 -*- +from . import models \ No newline at end of file diff --git a/pos_barcode_tare/__openerp__.py b/pos_barcode_tare/__openerp__.py index fe92aeca..84dd548b 100644 --- a/pos_barcode_tare/__openerp__.py +++ b/pos_barcode_tare/__openerp__.py @@ -1,36 +1,21 @@ # -*- coding: utf-8 -*- +# @author: François Kawala +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { - 'name': "pos_barecode_tare", - - 'summary': """ - Allows to scan a barcode to tare the latest product. - """, - - 'description': """ - This add-on enable POS to read and print tare bar codes. A tare bar code is used to sell unpackaged goods in a - BYOC (bring your own container) scheme. This scheme has four steps: - 1. The cashier weights the container and sticks the tare bar code onto the customer's container. - 2. The customer takes the desired quantity of whatever good s-he wants. - 3. The cashier weights the filled container and good, POS gives the corresponding price. - 4. The cashier scans the tare bar code, POS removes the container's weight from the latest product of the order. - """, - - 'author': "Le Nid", - 'website': "http://www.lenid.ch", - + 'name': "Point of Sale - Tare barecode labels for loose goods", + 'version': '9.0.0.0.1', 'category': 'Point of Sale', - 'version': '0.1', - - # any module necessary for this one to work correctly + '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', 'depends': ['point_of_sale'], - - # always loaded 'data': [ - 'views/templates.xml', + 'views/pos_config_view.xml', + 'views/pos_barcode_tare.xml', ], 'qweb': [ - 'static/src/xml/tare_screen.xml', - 'static/src/xml/open_tare_screen_button.xml', - + 'static/src/xml/pos_barcode_tare.xml', ], -} + 'installable': True, +} \ No newline at end of file diff --git a/pos_barcode_tare/models/__init__.py b/pos_barcode_tare/models/__init__.py new file mode 100644 index 00000000..f7dd4ebc --- /dev/null +++ b/pos_barcode_tare/models/__init__.py @@ -0,0 +1 @@ +from . import pos_config \ No newline at end of file diff --git a/pos_barcode_tare/models/pos_config.py b/pos_barcode_tare/models/pos_config.py new file mode 100644 index 00000000..ba7e0500 --- /dev/null +++ b/pos_barcode_tare/models/pos_config.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- + +from openerp import models, fields + + +class PosConfig(models.Model): + _inherit = 'pos.config' + tare_label_button = fields.Boolean('Show tare label button', help="Print tare labels with this POS") diff --git a/pos_barcode_tare/readme/CONTRIBUTORS.rst b/pos_barcode_tare/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000..250f9dd1 --- /dev/null +++ b/pos_barcode_tare/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +- Le Nid +- CoopITEasy diff --git a/pos_barcode_tare/readme/DESCRIPTION.rst b/pos_barcode_tare/readme/DESCRIPTION.rst new file mode 100644 index 00000000..bf20ae90 --- /dev/null +++ b/pos_barcode_tare/readme/DESCRIPTION.rst @@ -0,0 +1,12 @@ +This add-on enable POS to read and print tare barcodes. A tare barcode is used to sell loose goods in a bring your own container (BYOC) scheme. + +The BYOC scheme has four steps: + 1. The cashier weights the container and sticks the tare bar code onto the customer's container. + 2. The customer takes the desired quantity of the good s-he wants to buy. + 3. The cashier weights the filled container and good, POS gives the corresponding price. + 4. The cashier scans the tare bar code, POS removes the container's weight from the latest product of the order. + +This add-on adds a news screen to POS to (web) print the tare barcode labels. This add-on enables POS to read a tare +barecode. When such a barcode is read, POS adjusts 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. diff --git a/pos_barcode_tare/readme/USAGE.rst b/pos_barcode_tare/readme/USAGE.rst new file mode 100644 index 00000000..df35dfd6 --- /dev/null +++ b/pos_barcode_tare/readme/USAGE.rst @@ -0,0 +1 @@ +Install this add-on and configure the point of sale where you want to be able to use the tare barecode. You can also select the label format in the point of sale configuration. 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). diff --git a/pos_barcode_tare/static/description/icon.png b/pos_barcode_tare/static/description/icon.png index 3e885187..3a0328b5 100644 Binary files a/pos_barcode_tare/static/description/icon.png and b/pos_barcode_tare/static/description/icon.png differ diff --git a/pos_barcode_tare/static/description/index.html b/pos_barcode_tare/static/description/index.html new file mode 100644 index 00000000..e6e54593 --- /dev/null +++ b/pos_barcode_tare/static/description/index.html @@ -0,0 +1,443 @@ + + + + + + +Point of Sale - Tare barecode labels for loose goods + + + +
+

Point of Sale - Tare barecode labels for loose goods

+ + +

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

+

This add-on enable POS to read and print tare barcodes. A tare barcode is used to sell loose goods in a bring your own +container (BYOC) scheme.

+
+
The BYOC scheme has four steps:
+
    +
  1. The cashier weights the container and sticks the tare bar code onto the customer’s container.
  2. +
  3. The customer takes the desired quantity of the good s-he wants to buy.
  4. +
  5. The cashier weights the filled container and good, POS gives the corresponding price.
  6. +
  7. The cashier scans the tare bar code, POS removes the container’s weight from the latest product of the order.
  8. +
+
+
+

This add-on adds a news screen to POS to (web) print the tare barcode labels. This add-on enables POS to read a tare +barecode. When such a barcode is read, POS adjusts 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.

+

Table of contents

+ +
+

Usage

+

Install this add-on and configure the point of sale where you want to be able to use the tare barecode. +You can also select the label format in the point of sale configuration. 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).

+
+
+

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
  • +
  • CoopITEasy
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/pos project on GitHub.

+

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

+
+
+
+ + diff --git a/pos_barcode_tare/static/src/css/tare_screen.css b/pos_barcode_tare/static/src/css/pos_barcode_tare.css similarity index 87% rename from pos_barcode_tare/static/src/css/tare_screen.css rename to pos_barcode_tare/static/src/css/pos_barcode_tare.css index cefa72eb..2e12a1a0 100644 --- a/pos_barcode_tare/static/src/css/tare_screen.css +++ b/pos_barcode_tare/static/src/css/pos_barcode_tare.css @@ -20,6 +20,10 @@ overflow: hidden; } +.pos .pos-tare-label .caption { + display: block; +} + .pos .tare-screen .pos-directions-for-user { font-size: 25px; margin: 8px; @@ -45,8 +49,8 @@ } .pos .pos-tare-label img { - width: 50mm; - height: 45mm; + width: 50mm; + height: 45mm; } .pos .tare-screen .print-label { @@ -73,13 +77,16 @@ border: none; } + .pos .pos-tare-label .caption { + display: block; + } + .pos .pos-tare-paper { margin: 0; margin-left: 0 !important; margin-right: 0 !important; - width: 42mm !important; - height: 29mm !important; - background: white; + width: 99% !important; + height: 99% !important; display: block; position: fixed; display: flex !important; @@ -87,10 +94,10 @@ align-items: center !important; } - .pos-tare-label img { - width: 30mm !important; - height: 25mm !important; + width: 27mm !important; + height: 21mm !important; + display: run-in; } .pos .pos-tare-label { @@ -100,6 +107,5 @@ position: fixed !important; border: none !important; font-size: 10px !important; - } } \ No newline at end of file diff --git a/pos_barcode_tare/static/src/js/barcode.js b/pos_barcode_tare/static/src/js/barcode.js deleted file mode 100644 index 200f1acc..00000000 --- a/pos_barcode_tare/static/src/js/barcode.js +++ /dev/null @@ -1,36 +0,0 @@ -odoo.define('barcode_tare',function(require) { - "use strict"; - var screens = require('point_of_sale.screens'); - var gui = require('point_of_sale.gui'); - var core = require('web.core'); - var _t = core._t; - - screens.ScreenWidget.include( - { - barcode_weight_action: function(code){ - var self = this; - var order = this.pos.get_order(); - var last_order_line = order.get_last_orderline(); - var total_weight = last_order_line.get_quantity(); - var tare = code.value; - var paid_weight = total_weight - tare; - - if (paid_weight <= 0) { - this.gui.show_popup('confirm', { - 'title': _t('Poids négatif'), - 'body': _t('Le poids à payer est négatif. Avez-vous scanné le bon code bare ?'), - confirm: function(){ - last_order_line.set_quantity(paid_weight) - }}); - } else { - last_order_line.set_quantity(paid_weight) - } - }, - - show: function(){ - var self = this; - this._super() - this.pos.barcode_reader.set_action_callback('weight', _.bind(self.barcode_weight_action, self)) - }, - }); -}); diff --git a/pos_barcode_tare/static/src/js/open_tare_screen_button.js b/pos_barcode_tare/static/src/js/open_tare_screen_button.js deleted file mode 100644 index 1ac00e57..00000000 --- a/pos_barcode_tare/static/src/js/open_tare_screen_button.js +++ /dev/null @@ -1,20 +0,0 @@ -odoo.define('tare-screen-button.button', function (require) { - "use strict"; - var core = require('web.core'); - var screens = require('point_of_sale.screens'); - var gui = require('point_of_sale.gui'); - - var TareScreenButton = screens.ActionButtonWidget.extend({ - template: 'TareScreenButton', - - button_click: function(){ - var self = this; - this.gui.show_screen('tare'); - } - }); - - screens.define_action_button({ - 'name': 'tareScreenButton', - 'widget': TareScreenButton, - }); -}); diff --git a/pos_barcode_tare/static/src/js/pos_barcode_tare.js b/pos_barcode_tare/static/src/js/pos_barcode_tare.js new file mode 100644 index 00000000..4c30c183 --- /dev/null +++ b/pos_barcode_tare/static/src/js/pos_barcode_tare.js @@ -0,0 +1,199 @@ +odoo.define('barcode_tare', function (require) { + "use strict"; + var screens = require('point_of_sale.screens'); + var gui = require('point_of_sale.gui'); + var core = require('web.core'); + var _t = core._t; + + screens.ScreenWidget.include( + { + barcode_weight_action: function (code) { + var self = this; + var order = this.pos.get_order(); + var last_order_line = order.get_last_orderline(); + var total_weight = last_order_line.get_quantity(); + var tare = code.value; + var paid_weight = total_weight - tare; + + if (paid_weight <= 0) { + self.gui.show_popup('confirm', + {'title': _t('Negative weight'), + 'body': _t('The calculated weight is negative. ' + + 'Did you scan the correct tare label?'), + confirm: function () { + last_order_line.set_quantity(paid_weight); + }}); + } else { + last_order_line.set_quantity(paid_weight); + } + }, + + show: function () { + var self = this; + this._super(); + this.pos.barcode_reader.set_action_callback( + 'weight', + _.bind(self.barcode_weight_action, self)); + }, + }); +}); + +odoo.define('tare-screen-button.button', function (require) { + "use strict"; + var core = require('web.core'); + var screens = require('point_of_sale.screens'); + var gui = require('point_of_sale.gui'); + + var TareScreenButton = screens.ActionButtonWidget.extend({ + template: 'TareScreenButton', + + button_click: function () { + var self = this; + this.gui.show_screen('tare'); + }, + }); + + screens.define_action_button({ + 'name': 'tareScreenButton', + 'widget': TareScreenButton, + }); +}); + +odoo.define('tare-screen.screen', function (require) { + "use strict"; + var chrome = require('point_of_sale.chrome'); + var core = require('web.core'); + var devices = require('point_of_sale.devices'); + var gui = require('point_of_sale.gui'); + var models = require('point_of_sale.models'); + var screens = require('point_of_sale.screens'); + var QWeb = core.qweb; + + var TareScreenWidget = screens.ScreenWidget.extend({ + template: 'TareScreenWidget', + next_screen: 'products', + previous_screen: 'products', + default_tare_value_kg: 0.0, + + show: function () { + this._super(); + var self = this; + var queue = this.pos.proxy_queue; + + queue.schedule(function () { + return self.pos.proxy.scale_read().then(function (weight) { + self.set_weight(weight.weight); + }); + }, {duration:150, repeat: true}); + + this.render_receipt(); + this.lock_screen(true); + }, + set_weight: function (weight) { + if (weight > 0) { + this.weight = weight; + this.render_receipt(); + this.lock_screen(false); + } + }, + get_weight: function () { + if (typeof this.weight === 'undefined') { + return this.default_tare_value_kg; + } + return this.weight; + }, + ean13_checksum: function (s) { + var result = 0; + for (var counter = s.length-1; counter >=0; counter--) { + var counterCheckSum = counter % 2; + counterCheckSum *= 2; + counterCheckSum += 1; + result += parseInt(s.charAt(counter), 10) * counterCheckSum; + } + var checksum = 10; + checksum -= result % 10; + return checksum % 10; + }, + barcode_data: function (weight) { + var padding_size = 5; + var default_weight_prefix_id = "21"; + var void_product_id = '0'.repeat(padding_size); + var weight_in_gram = weight * 10e2; + var weight_with_padding = '0'.repeat(padding_size) + weight_in_gram; + var padded_weight = weight_with_padding.substr( + weight_with_padding.length - padding_size); + var barcode_data = default_weight_prefix_id.concat(void_product_id, + padded_weight); + var checksum = this.ean13_checksum(barcode_data); + var barcode = barcode_data.concat(checksum); + + console.log(barcode); + return barcode; + }, + get_barcode_data: function () { + return this.barcode_data(this.get_weight()); + }, + should_auto_print: function () { + return this.pos.config.iface_print_auto && + !this.pos.get_order()._printed; + }, + should_close_immediately: function () { + return this.pos.config.iface_print_via_proxy && + this.pos.config.iface_print_skip_screen; + }, + lock_screen: function (locked) { + this._locked = locked; + if (locked) { + this.$('.print-label').addClass('disabled'); + } else { + this.$('.print-label').removeClass('disabled'); + } + }, + print_web: function () { + window.print(); + this.pos.get_order()._printed = true; + }, + print: function () { + var self = this; + + // See comment in print function of ReceiptScreenWidget + + this.lock_screen(true); + + 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 () { + var self = this; + this._super(); + 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})); + }, + close: function () { + this._super(); + delete this.weight; + this.pos.proxy_queue.clear(); + }, + }); + + gui.define_screen({name:'tare', widget: TareScreenWidget}); + +}); diff --git a/pos_barcode_tare/static/src/js/tare_screen.js b/pos_barcode_tare/static/src/js/tare_screen.js deleted file mode 100644 index f6fe0e1b..00000000 --- a/pos_barcode_tare/static/src/js/tare_screen.js +++ /dev/null @@ -1,139 +0,0 @@ -odoo.define('tare-screen.screen', function (require) { - "use strict"; - var chrome = require('point_of_sale.chrome'); - var core = require('web.core'); - var devices = require('point_of_sale.devices'); - var gui = require('point_of_sale.gui'); - var models = require('point_of_sale.models'); - var screens = require('point_of_sale.screens'); - var QWeb = core.qweb; - - var TareScreenWidget = screens.ScreenWidget.extend({ - template: 'TareScreenWidget', - next_screen: 'products', - previous_screen: 'products', - default_tare_value_kg: 0.0, - - show: function(){ - this._super(); - var self = this; - var queue = this.pos.proxy_queue; - - queue.schedule(function(){ - return self.pos.proxy.scale_read().then(function(weight){ - self.set_weight(weight.weight); - }); - },{duration:150, repeat: true}); - - this.render_receipt(); - this.lock_screen(true); - }, - set_weight: function(weight){ - if (weight > 0){ - this.weight = weight; - this.render_receipt(); - this.lock_screen(false); - } - }, - get_weight: function(){ - if (typeof this.weight === 'undefined') { - return this.default_tare_value_kg; - } - return this.weight; - }, - ean13_checksum: function(s){ - var result = 0; - for (let counter = s.length-1; counter >=0; counter--){ - result = result + parseInt(s.charAt(counter)) * (1+(2*(counter % 2))); - } - return (10 - (result % 10)) % 10; - }, - barcode_data: function(weight, weight_prefix_id=21){ - var padding_size = 5; - var void_product_id = '0'.repeat(padding_size); - var weight_in_gram = weight * 10e2; - var weight_with_padding = '0'.repeat(padding_size) + weight_in_gram; - var padded_weight = weight_with_padding.substr(weight_with_padding.length - padding_size); - var barcode_data = `${weight_prefix_id}${void_product_id}${padded_weight}`; - var checksum = this.ean13_checksum(barcode_data); - console.log(`${barcode_data}${checksum}`); - return `${barcode_data}${checksum}`; - }, - get_barcode_data: function(){ - return this.barcode_data(this.get_weight()); - }, - should_auto_print: function() { - return this.pos.config.iface_print_auto && !this.pos.get_order()._printed; - }, - should_close_immediately: function() { - return this.pos.config.iface_print_via_proxy && this.pos.config.iface_print_skip_screen; - }, - lock_screen: function(locked) { - this._locked = locked; - if (locked) { - this.$('.print-label').addClass('disabled'); - } else { - this.$('.print-label').removeClass('disabled'); - } - }, - print_web: function() { - window.print(); - this.pos.get_order()._printed = true; - }, - print: function() { - var self = this; - - // The problem is that in chrome the print() is asynchronous and doesn't - // execute until all rpc are finished. So it conflicts with the rpc used - // to send the orders to the backend, and the user is able to go to the next - // screen before the printing dialog is opened. The problem is that what's - // printed is whatever is in the page when the dialog is opened and not when it's called, - // and so you end up printing the product list instead of the receipt... - // - // Fixing this would need a re-architecturing - // of the code to postpone sending of orders after printing. - // - // But since the print dialog also blocks the other asynchronous calls, the - // button enabling in the setTimeout() is blocked until the printing dialog is - // closed. But the timeout has to be big enough or else it doesn't work - // 1 seconds is the same as the default timeout for sending orders and so the dialog - // should have appeared before the timeout... so yeah that's not ultra reliable. - - this.lock_screen(true); - - 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() { - var self = this; - this._super(); - 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})); - }, - close: function(){ - this._super(); - delete this.weight; - this.pos.proxy_queue.clear(); - }, - }); - - gui.define_screen({name:'tare', widget: TareScreenWidget}); - - }); \ No newline at end of file diff --git a/pos_barcode_tare/static/src/xml/open_tare_screen_button.xml b/pos_barcode_tare/static/src/xml/open_tare_screen_button.xml deleted file mode 100644 index a96a652e..00000000 --- a/pos_barcode_tare/static/src/xml/open_tare_screen_button.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - Créer une étiquette de tare - - - diff --git a/pos_barcode_tare/static/src/xml/tare_screen.xml b/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml similarity index 69% rename from pos_barcode_tare/static/src/xml/tare_screen.xml rename to pos_barcode_tare/static/src/xml/pos_barcode_tare.xml index 996191c4..29a0c89c 100644 --- a/pos_barcode_tare/static/src/xml/tare_screen.xml +++ b/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml @@ -8,15 +8,15 @@ Back -

Création d'une étiquette de tare

+

Print a tare label

- Appuyez sur la touche print puis vérifiez le poids ci-dessus. + Set the pot on the scale and check the weight above
@@ -29,10 +29,19 @@
-
- tare = kg + tare = kg
- \ No newline at end of file + + + + + + Print a tare label + + + + + diff --git a/pos_barcode_tare/views/pos_barcode_tare.xml b/pos_barcode_tare/views/pos_barcode_tare.xml new file mode 100644 index 00000000..da293016 --- /dev/null +++ b/pos_barcode_tare/views/pos_barcode_tare.xml @@ -0,0 +1,8 @@ + + + diff --git a/pos_barcode_tare/views/pos_config_view.xml b/pos_barcode_tare/views/pos_config_view.xml new file mode 100644 index 00000000..22f59bad --- /dev/null +++ b/pos_barcode_tare/views/pos_config_view.xml @@ -0,0 +1,16 @@ + + + + + pos.config + + + + + + + + + + + diff --git a/pos_barcode_tare/views/templates.xml b/pos_barcode_tare/views/templates.xml deleted file mode 100644 index 29894343..00000000 --- a/pos_barcode_tare/views/templates.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - -