summaryrefslogtreecommitdiff
path: root/addons/point_of_sale/views/point_of_sale_dashboard.xml
blob: 76609abe69ca71186428f2c5f7d67bb7a4511942 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<?xml version="1.0" encoding="utf-8"?>
<odoo>

    <record id="action_pos_session_filtered" model="ir.actions.act_window">
        <field name="name">Sessions</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">pos.session</field>
        <field name="view_mode">tree,form</field>
        <field name="search_view_id" ref="view_pos_session_search" />
        <field name="context">{
            'search_default_config_id': [active_id],
            'default_config_id': active_id}
        </field>
    </record>

    <record id="action_pos_order_filtered" model="ir.actions.act_window">
        <field name="name">Orders</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">pos.order</field>
        <field name="view_mode">tree,form</field>
        <field name="search_view_id" ref="view_pos_order_search"/>
        <field name="context">{
            'search_default_config_id': [active_id],
            'default_config_id': active_id}
        </field>
    </record>

    <record id="action_report_pos_order_all_filtered" model="ir.actions.act_window">
        <field name="name">Orders Analysis</field>
        <field name="res_model">report.pos.order</field>
        <field name="view_mode">graph,pivot</field>
        <field name="search_view_id" ref="view_report_pos_order_search"/>
        <field name="context">{
            'search_default_config_id': [active_id],
            'default_config_id': active_id}
        </field>
        <field name="help" type="html">
            <p class="o_view_nocontent_smiling_face">
                No data yet!
            </p><p>
                Create a new POS order
            </p>
        </field>
    </record>

    <!-- Dashboard -->

    <record id="view_pos_config_kanban" model="ir.ui.view">
        <field name="name">pos.config.kanban.view</field>
        <field name="model">pos.config</field>
        <field name="arch" type="xml">
            <kanban create="false" class="o_kanban_dashboard o_pos_kanban">
                <field name="current_user_id" invisible="1" />
                <field name="cash_control" invisible="1"/>
                <field name="name"/>
                <field name="current_session_id"/>
                <field name="current_session_state"/>
                <field name="last_session_closing_date"/>
                <field name="pos_session_username"/>
                <field name="pos_session_state"/>
                <field name="pos_session_duration"/>
                <field name="currency_id"/>
                <templates>
                    <t t-name="kanban-box">
                        <div>
                            <div class="o_kanban_card_header">
                                <div class="o_kanban_card_header_title mb16">
                                    <div class="o_primary">
                                        <t t-esc="record.name.value"/>
                                    </div>
                                    <t t-if="!record.current_session_id.raw_value &amp;&amp; record.pos_session_username.value">
                                        <div class="badge badge-info o_kanban_inline_block">Opened by <t t-esc="record.pos_session_username.value"/></div>
                                    </t>
                                    <t t-if="record.pos_session_state.raw_value == 'opening_control'">
                                        <div class="badge badge-info o_kanban_inline_block">Opening Control</div>
                                    </t>
                                    <t t-if="record.pos_session_state.raw_value == 'closing_control'">
                                        <div class="badge badge-info o_kanban_inline_block">Closing Control</div>
                                    </t>
                                    <t t-if="record.pos_session_state.raw_value == 'opened' and record.pos_session_duration.raw_value > 1">
                                        <div t-attf-class="badge badge-#{record.pos_session_duration.raw_value > 3 and 'danger' or 'warning'} o_kanban_inline_block"
                                             title="The session has been opened for an unusually long period. Please consider closing.">
                                             To Close
                                        </div>
                                    </t>
                                </div>
                                <div class="o_kanban_manage_button_section">
                                    <a class="o_kanban_manage_toggle_button" href="#"><i class="fa fa-ellipsis-v" role="img" aria-label="Manage" title="Manage"/></a>
                                </div>
                            </div>
                            <div class="container o_kanban_card_content">
                                <div class="row">
                                    <div class="col-6 o_kanban_primary_left">
                                        <button t-if="record.current_session_state.raw_value === 'opened'" class="btn btn-primary" name="open_ui" type="object">Resume</button>

                                        <button t-if="record.current_session_state.raw_value === 'new_session' || record.current_session_state.raw_value === 'opening_control'" class="btn btn-primary" name="open_existing_session_cb" type="object">Open Session</button>

                                        <button t-if="_.contains(['opened', 'closing_control'], record.current_session_state.raw_value)" class="btn btn-secondary" name="open_existing_session_cb" type="object">Close</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">New Session</button>

                                    </div>
                                    <div class="col-6 o_kanban_primary_right">

                                        <div t-if="record.last_session_closing_date.value" class="row">
                                            <div class="col-6">
                                                <span>Last Closing Date</span>
                                            </div>
                                            <div class="col-6">
                                                <span><t t-esc="record.last_session_closing_date.value"/></span>
                                            </div>
                                        </div>

                                        <div t-if="record.last_session_closing_date.value" attrs='{"invisible": [("cash_control","=",False)]}' class="row">
                                            <div class="col-6">
                                                <span>Cash Balance</span>
                                            </div>
                                            <div class="col-6">
                                                <span><field name="last_session_closing_cash" widget="monetary"/></span>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                <div style="text-align:right;">
                                    <field name="current_user_id" widget="many2one_avatar_user"/>
                                </div>
                            </div><div class="container o_kanban_card_manage_pane dropdown-menu" role="menu">
                                <div class="row">
                                    <div class="col-6 o_kanban_card_manage_section o_kanban_manage_view">
                                        <div role="menuitem" class="o_kanban_card_manage_title">
                                            <span>View</span>
                                        </div>
                                        <div role="menuitem">
                                            <a name="%(action_pos_order_filtered)d" type="action">Orders</a>
                                        </div>
                                        <div role="menuitem">
                                            <a name="%(action_pos_session_filtered)d" type="action">Sessions</a>
                                        </div>
                                    </div>
                                    <div class="col-6 o_kanban_card_manage_section o_kanban_manage_new">
                                        <div role="menuitem" class="o_kanban_card_manage_title">
                                            <span>Reporting</span>
                                        </div>
                                        <div role="menuitem">
                                            <a name="%(action_report_pos_order_all_filtered)d" type="action">Orders</a>
                                        </div>
                                    </div>
                                </div>

                                <div t-if="widget.editable" class="o_kanban_card_manage_settings row" groups="point_of_sale.group_pos_manager">
                                    <div role="menuitem" class="col-12">
                                        <a type="edit">Settings</a>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </t>
                </templates>
            </kanban>
        </field>
    </record>

</odoo>