Skip to content
Closed
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion pos_barcode_tare/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
# -*- coding: utf-8 -*-
from . import models
1 change: 1 addition & 0 deletions pos_barcode_tare/static/src/css/pos_barcode_tare.css
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
}

.pos .pos-tare-label .caption {
text-overflow: ellipsis;
display: block;
}

Expand Down
16 changes: 10 additions & 6 deletions pos_barcode_tare/static/src/js/pos_barcode_tare.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
odoo.define('pos_barcode_tare.screens', 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');
Expand Down Expand Up @@ -67,9 +65,9 @@ odoo.define('pos_barcode_tare.screens', function (require) {
barcode_tare_action: function (code) {
try {
var order = this.pos.get_order();
var last_order_line = order.get_last_orderline();
var selected_order_line = order.get_selected_orderline();
var tare_weight = code.value;
last_order_line.set_tare(tare_weight);
selected_order_line.set_tare(tare_weight);
} catch (error) {
var title = _t("We can not apply this tare barcode.");
var popup = {title: title, body: error.message};
Expand Down Expand Up @@ -223,6 +221,7 @@ odoo.define('pos_barcode_tare.screens', function (require) {
},
print_web: function () {
window.print();
// TODO check this
this.pos.get_order()._printed = true;
},
print: function () {
Expand Down Expand Up @@ -267,8 +266,7 @@ odoo.define('pos_barcode_tare.screens', function (require) {

// Update Orderline model
var _super_ = models.Orderline.prototype;

models.Orderline = models.Orderline.extend({
var OrderLineWithTare = models.Orderline.extend({
initialize: function (session, attributes) {
this.tareQuantity = 0;
this.tareQuantityStr = '0';
Expand Down Expand Up @@ -356,4 +354,10 @@ odoo.define('pos_barcode_tare.screens', function (require) {
return result;
},
});

models.Orderline = OrderLineWithTare;

return {TareScreenWidget: TareScreenWidget,
OrderLineWithTare: OrderLineWithTare,
get_unit: get_unit};
});
121 changes: 121 additions & 0 deletions pos_self_weighting/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
===============================
Point of Sale - Self weighting
===============================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! 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_self_weighting
: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_self_weighting
: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 allows you to run a grocery in a Bring Your Own Container (BYOC) schema. With this add-on your customers will be able to buy loose goods using their own reusable container. This add-on also enables customers to weight their vegetables and fruits before they checkout. To weight fruit and vegetable before checkout will speed up the checkout and make your customer happier.

The *self service* BYOC scheme has six steps:
1. The customer weighs her-his pot and sticks the tare barcode onto the pot.
2. The customer puts loose goods into the labeled pot.
3. The customer scans the tare barcode. POS saves the tare value.
4. The customer weighs the pot with loose goods inside. POS computes the price to pay from gross weight and tare weight.
5. The customer gets a price barcode label indicating the price to pay.
6. During checkout, the cashier swiftly scans the price barcode label.


This add-on requires you to have a barcode label printer and an electronic scale. Your customers are expected to use this add-on in a self-service way. This add-on adds multiple news screens that are displayed only on the selected POS.

This add-on displays only the products that are meant to be weighted with a scale.

Home screen of the selected POS is:

.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_self_weighting/static/description/default_screen.png

To click on "tare a container" shows:

.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_self_weighting/static/description/tare_screen.png

To click on "weight a product in a container" shows:

.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_self_weighting/static/description/tare_scan_screen.png

To click on "weight a product" shows:

.. image:: https://raw.githubusercontent.com/OCA/pos/9.0/pos_self_weighting/static/description/product_screen.png

**Table of contents**

.. contents::
:local:

Usage
=====

Install this add-on and configure the point of sale where you want to use a self service weighting station. 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/``

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 <https://github.com/OCA/pos/issues/new?body=module:%20pos_self_weighting%0Aversion:%209.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Credits
=======

Authors
~~~~~~~

* Le Nid

Contributors
~~~~~~~~~~~~

- Le Nid
- SPP Meyrin
- Icons made by Freepik from flaticon.com

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 <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-fkawala|

This module is part of the `OCA/pos <https://github.com/OCA/pos/tree/9.0/pos_self_weighting>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions pos_self_weighting/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
24 changes: 24 additions & 0 deletions pos_self_weighting/__openerp__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
# @author: François Kawala
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': "Point of Sale - Self weighting ",
'version': '9.0.0.0.1',
'category': 'Point of Sale',
'summary': """Point of Sale - Self service weighting station for loose\
goods.""",
'author': "Le Nid, Odoo Community Association (OCA)",
'website': "https://github.com/OCA/pos",
'license': 'AGPL-3',
'maintainers': ['fkawala'],
'depends': ['point_of_sale', 'pos_barcode_tare'],
'demo': ['demo/pos_self_weighting_demo.xml'],
'data': [
'pos_self_weighting.xml',
'views/pos_config_view.xml'
],
'qweb': [
'static/src/xml/pos_self_weighting.xml',
],
'installable': True,
}
16 changes: 16 additions & 0 deletions pos_self_weighting/demo/pos_self_weighting_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="product_uom_kgm_dbg" model="product.uom">
<field name="category_id" ref="product.product_uom_categ_kgm"/>
<field name="name">Kg</field>
<field name="factor" eval="1"/>
<field name="rounding" eval="0.001"/>
</record>
<record id="product_price_to_weight_barcode" model="product.product">
<field name="name">Apples (with weight barcode)</field>
<field name="barcode">2112345000008</field>
<field name="list_price">1.50</field>
<field name="uom_id" ref="product_uom_kgm_dbg"/>
<field name="uom_po_id" ref="product_uom_kgm_dbg"/>
</record>
</odoo>
1 change: 1 addition & 0 deletions pos_self_weighting/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import pos_config
9 changes: 9 additions & 0 deletions pos_self_weighting/models/pos_config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
from openerp import models, fields


class PosConfig(models.Model):
_inherit = 'pos.config'
iface_self_weight = fields.Boolean(
'Use that POS as self weighting station'
)
8 changes: 8 additions & 0 deletions pos_self_weighting/pos_self_weighting.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<odoo>
<template id="assets_backend" name="pos_barcode_tare" inherit_id="point_of_sale.assets">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/pos_self_weighting/static/src/css/pos_self_weighting.css"/>
<script type="text/javascript" src="/pos_self_weighting/static/src/js/pos_self_weighting.js"></script>
</xpath>
</template>
</odoo>
3 changes: 3 additions & 0 deletions pos_self_weighting/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Le Nid
- SPP Meyrin
- Icons made by Freepik from flaticon.com
30 changes: 30 additions & 0 deletions pos_self_weighting/readme/DESCRIPTION.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
This add-on allows you to run a grocery in a Bring Your Own Container (BYOC) schema. With this add-on your customers will be able to buy loose goods using their own reusable container. This add-on also enables customers to weight their vegetables and fruits before they checkout. To weight fruit and vegetable before checkout will speed up the checkout and make your customer happier.

The *self service* BYOC scheme has six steps:
1. The customer weighs her-his pot and sticks the tare barcode onto the pot.
2. The customer puts loose goods into the labeled pot.
3. The customer scans the tare barcode. POS saves the tare value.
4. The customer weighs the pot with loose goods inside. POS computes the price to pay from gross weight and tare weight.
5. The customer gets a price barcode label indicating the price to pay.
6. During checkout, the cashier swiftly scans the price barcode label.


This add-on requires you to have a barcode label printer and an electronic scale. Your customers are expected to use this add-on in a self-service way. This add-on adds multiple news screens that are displayed only on the selected POS.

This add-on displays only the products that are meant to be weighted with a scale.

Home screen of the selected POS is:

.. image:: ../static/description/default_screen.png

To click on "tare a container" shows:

.. image:: ../static/description/tare_screen.png

To click on "weight a product in a container" shows:

.. image:: ../static/description/tare_scan_screen.png

To click on "weight a product" shows:

.. image:: ../static/description/product_screen.png
5 changes: 5 additions & 0 deletions pos_self_weighting/readme/USAGE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Install this add-on and configure the point of sale where you want to use a self service weighting station. 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/``
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pos_self_weighting/static/description/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading