feat: add state field and reporting filters to KDS analysis views
This commit is contained in:
parent
6c6b0b3940
commit
f64b3d9571
@ -13,6 +13,13 @@ class PosKdsReportLine(models.Model):
|
||||
pos_config_id = fields.Many2one('pos.config', string='POS Shop', compute='_compute_pos_config', store=True)
|
||||
prep_display_id = fields.Many2one('pos.prep.display', string='Preparation Display', required=True)
|
||||
|
||||
state = fields.Selection([
|
||||
('in_prep', 'In Preparation'),
|
||||
('ready', 'Ready'),
|
||||
('done', 'Completed'),
|
||||
('cancelled', 'Cancelled')
|
||||
], string='Status', default='done')
|
||||
|
||||
preparation_time = fields.Integer('Preparation Time (s)', help="Seconds taken to prepare")
|
||||
service_time = fields.Integer('Service Time (s)', help="Seconds taken to serve")
|
||||
completion_time = fields.Integer('Completion Time (s)', help="Total seconds taken to complete (prep + service)")
|
||||
@ -45,6 +52,15 @@ class PosKdsReportOrder(models.Model):
|
||||
pos_config_id = fields.Many2one('pos.config', string='POS Shop', compute='_compute_pos_config', store=True)
|
||||
prep_display_id = fields.Many2one('pos.prep.display', string='Preparation Display', required=True)
|
||||
|
||||
state = fields.Selection([
|
||||
('in_prep', 'In Preparation'),
|
||||
('ready', 'Ready'),
|
||||
('done', 'Completed'),
|
||||
('cancelled', 'Cancelled')
|
||||
], string='Status', default='done')
|
||||
|
||||
preparation_time = fields.Integer('Preparation Time (s)', help="Max preparation time across lines")
|
||||
service_time = fields.Integer('Service Time (s)', help="Max service time across lines")
|
||||
completion_time = fields.Integer('Completion Time (s)', help="Max completion time across all lines of the order on this display")
|
||||
completion_datetime = fields.Datetime('Completion Date', default=fields.Datetime.now)
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
<pivot string="KDS Product Analysis" display_quantity="1" sample="1">
|
||||
<field name="pos_category_id" type="row"/>
|
||||
<field name="product_id" type="row"/>
|
||||
<field name="state" type="col"/>
|
||||
<field name="completion_time" type="measure" operator="avg"/>
|
||||
<field name="preparation_time" type="measure" operator="avg"/>
|
||||
<field name="service_time" type="measure" operator="avg"/>
|
||||
@ -39,10 +40,15 @@
|
||||
<field name="pos_category_id"/>
|
||||
<field name="prep_display_id"/>
|
||||
<field name="pos_config_id"/>
|
||||
<field name="state"/>
|
||||
|
||||
<filter string="Completed" name="done" domain="[('state', '=', 'done')]"/>
|
||||
<filter string="In Preparation" name="in_prep" domain="[('state', '=', 'in_prep')]"/>
|
||||
<filter string="Ready" name="ready" domain="[('state', '=', 'ready')]"/>
|
||||
<filter string="My KDS Displays" name="my_kds" domain="[('prep_display_id', '!=', False)]"/>
|
||||
|
||||
<group>
|
||||
<filter string="Status" name="group_by_state" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Date" name="group_by_date" domain="[]" context="{'group_by':'completion_datetime:day'}"/>
|
||||
<filter string="Product Category" name="group_by_category" domain="[]" context="{'group_by':'pos_category_id'}"/>
|
||||
<filter string="Product" name="group_by_product" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
@ -71,7 +77,10 @@
|
||||
<pivot string="KDS Order Analysis" display_quantity="1" sample="1">
|
||||
<field name="completion_datetime" type="row" interval="day"/>
|
||||
<field name="prep_display_id" type="row"/>
|
||||
<field name="state" type="col"/>
|
||||
<field name="completion_time" type="measure" operator="avg"/>
|
||||
<field name="preparation_time" type="measure" operator="avg"/>
|
||||
<field name="service_time" type="measure" operator="avg"/>
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
@ -95,8 +104,14 @@
|
||||
<field name="pos_order_id"/>
|
||||
<field name="prep_display_id"/>
|
||||
<field name="pos_config_id"/>
|
||||
<field name="state"/>
|
||||
|
||||
<filter string="Completed" name="done" domain="[('state', '=', 'done')]"/>
|
||||
<filter string="In Preparation" name="in_prep" domain="[('state', '=', 'in_prep')]"/>
|
||||
<filter string="Ready" name="ready" domain="[('state', '=', 'ready')]"/>
|
||||
|
||||
<group>
|
||||
<filter string="Status" name="group_by_state" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Date" name="group_by_date" domain="[]" context="{'group_by':'completion_datetime:day'}"/>
|
||||
<filter string="KDS Display" name="group_by_kds" domain="[]" context="{'group_by':'prep_display_id'}"/>
|
||||
<filter string="POS Shop" name="group_by_pos" domain="[]" context="{'group_by':'pos_config_id'}"/>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user