[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
This commit is contained in:
Haresh Shyara
2017-08-08 11:00:14 +02:00
committed by Richard Mathot
parent 2b7179380a
commit 4e6d3132ac
2 changed files with 16 additions and 3 deletions
+3 -1
View File
@@ -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):
@@ -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">