summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaresh Shyara <hsh@odoo.com>2017-08-08 11:00:14 +0200
committerRichard Mathot <rim@odoo.com>2017-08-08 11:00:14 +0200
commit4e6d3132ac6a60f6604b6427a8cf4e61cae68ce6 (patch)
treebbcacff736cf0715e3fc0b828baae33df884ca83
parent2b7179380a06da1ee320f26ffbdf0602d820b856 (diff)
[IMP] point_of_sale: display session state on PoS dashboard
Avoid that users attempt to start a session on a PoS that is already open by showing visual badges on PoS dashboards
-rw-r--r--addons/point_of_sale/models/pos_config.py4
-rw-r--r--addons/point_of_sale/views/point_of_sale_dashboard.xml15
2 files changed, 16 insertions, 3 deletions
diff --git a/addons/point_of_sale/models/pos_config.py b/addons/point_of_sale/models/pos_config.py
index 65a082d9f65..2ebf1f0b79d 100644
--- a/addons/point_of_sale/models/pos_config.py
+++ b/addons/point_of_sale/models/pos_config.py
@@ -124,6 +124,7 @@ class PosConfig(models.Model):
last_session_closing_cash = fields.Float(compute='_compute_last_session')
last_session_closing_date = fields.Date(compute='_compute_last_session')
pos_session_username = fields.Char(compute='_compute_current_session_user')
+ pos_session_state = fields.Char(compute='_compute_current_session_user')
group_by = fields.Boolean(string='Group Journal Items', default=True,
help="Check this if you want to group the Journal Items by Product while closing a Session.")
pricelist_id = fields.Many2one('product.pricelist', string='Pricelist', required=True, default=_default_pricelist)
@@ -195,8 +196,9 @@ class PosConfig(models.Model):
@api.depends('session_ids')
def _compute_current_session_user(self):
for pos_config in self:
- session = pos_config.session_ids.filtered(lambda s: s.state == 'opened' and not s.rescue)
+ session = pos_config.session_ids.filtered(lambda s: s.state in ['opening_control', 'opened', 'closing_control'] and not s.rescue)
pos_config.pos_session_username = session and session[0].user_id.name or False
+ pos_config.pos_session_state = session and session[0].state or False
@api.constrains('company_id', 'stock_location_id')
def _check_company_location(self):
diff --git a/addons/point_of_sale/views/point_of_sale_dashboard.xml b/addons/point_of_sale/views/point_of_sale_dashboard.xml
index 740262212f5..54a75bac650 100644
--- a/addons/point_of_sale/views/point_of_sale_dashboard.xml
+++ b/addons/point_of_sale/views/point_of_sale_dashboard.xml
@@ -52,13 +52,25 @@
<field name="current_session_state"/>
<field name="last_session_closing_date"/>
<field name="pos_session_username"/>
+ <field name="pos_session_state"/>
<field name="currency_id"/>
<templates>
<t t-name="kanban-box">
<div>
<div class="o_kanban_card_header oe_kanban_color_1">
<div class="o_kanban_card_header_title">
- <div class="o_primary"><t t-esc="record.name.value"/></div>
+ <div class="o_primary">
+ <t t-esc="record.name.value"/>
+ <t t-if="record.pos_session_state.raw_value == 'opening_control'">
+ <div class="label label-info o_kanban_inline_block">Opening Control</div>
+ </t>
+ <t t-if="record.pos_session_state.raw_value == 'opened'">
+ <div class="label label-success o_kanban_inline_block">In Progress</div>
+ </t>
+ <t t-if="record.pos_session_state.raw_value == 'closing_control'">
+ <div class="label label-info o_kanban_inline_block">Closing Control</div>
+ </t>
+ </div>
<div class="o_secondary"><t t-esc="record.pos_session_username.value || 'Unused'"/></div>
</div>
<div class="o_kanban_manage_button_section">
@@ -76,7 +88,6 @@
<button t-if="!record.current_session_id.raw_value &amp;&amp; !record.pos_session_username.value" class="btn btn-primary" name="open_session_cb" type="object">New Session</button>
- <button t-if="!record.current_session_id.raw_value &amp;&amp; record.pos_session_username.value" class="btn btn-primary" name="open_session_cb" type="object">A session is already opened</button>
</div>
<div class="col-xs-6 o_kanban_primary_right">