90 lines
5.1 KiB
XML

<odoo>
<data>
<record id="view_pos_order_form_inherit_uber" model="ir.ui.view">
<field name="name">pos.order.form.inherit.uber</field>
<field name="model">pos.order</field>
<field name="inherit_id" ref="point_of_sale.view_pos_pos_form"/>
<field name="arch" type="xml">
<xpath expr="//header" position="inside">
<field name="is_uber_order" invisible="1"/>
<field name="uber_tracking_url" invisible="1"/>
<field name="uber_status" invisible="1"/>
<field name="uber_alert_triggered" invisible="1"/>
<button name="action_request_uber_delivery"
string="Request Uber Delivery"
type="object"
invisible="is_uber_order == True or state != 'paid'"
class="oe_highlight"/>
<button name="action_view_uber_map"
string="📍 Track Driver"
type="object"
invisible="not uber_tracking_url or uber_status in ['delivered', 'cancelled']"
class="btn-primary"/>
<button name="action_sync_uber_status"
string="🔄 Sync Uber Status"
type="object"
invisible="is_uber_order == False or uber_status in ['delivered', 'cancelled']"
class="btn-secondary"/>
<button name="action_cancel_uber_delivery"
string="Cancel Uber Delivery"
type="object"
invisible="is_uber_order == False or uber_status in ['delivered', 'cancelled']"
class="btn-danger"/>
</xpath>
<xpath expr="//header" position="after">
<div class="alert alert-success m-0 p-2 text-center border-bottom-0 rounded-0" role="alert" invisible="uber_status != 'delivered'" style="font-weight: bold; background-color: #d1e7dd; color: #0f5132;">
<i class="fa fa-check-circle me-2"/> THE UBER DRIVER HAS SUCCESSFULLY DELIVERED THIS ORDER
</div>
</xpath>
<xpath expr="//sheet" position="inside">
<widget name="web_ribbon" title="Delivered" bg_color="text-bg-success" invisible="uber_status != 'delivered'"/>
<widget name="web_ribbon" title="Cancelled" bg_color="text-bg-danger" invisible="uber_status != 'cancelled'"/>
</xpath>
<xpath expr="//field[@name='pos_reference']" position="after">
<field name="is_uber_order" invisible="1"/>
<field name="uber_status" readonly="1" invisible="is_uber_order == False" decoration-info="uber_status == 'pending'" decoration-warning="uber_status == 'pickup'" decoration-success="uber_status == 'delivered'"/>
<field name="uber_eta" readonly="1" invisible="not uber_eta"/>
<field name="uber_delivery_fee" widget="monetary" invisible="not uber_delivery_fee"/>
</xpath>
<xpath expr="//header" position="after">
<div class="alert alert-danger mb-0" role="alert" invisible="not uber_alert_triggered or uber_status != 'pending'">
🚨 <strong>Attention!</strong> Driver not assigned for over 15 minutes. Please contact Uber support.
</div>
</xpath>
</field>
</record>
<!-- PERFORMANCE ANALYTICS DASHBOARD -->
<record id="view_pos_order_uber_graph" model="ir.ui.view">
<field name="name">pos.order.uber.graph</field>
<field name="model">pos.order</field>
<field name="arch" type="xml">
<graph string="Uber Performance" type="bar" sample="1">
<field name="date_order" interval="day"/>
<field name="uber_delivery_fee" type="measure"/>
<field name="amount_total" type="measure"/>
</graph>
</field>
</record>
<record id="action_uber_analytics" model="ir.actions.act_window">
<field name="name">Uber Performance Analytics</field>
<field name="res_model">pos.order</field>
<field name="view_mode">graph,tree</field>
<field name="domain">[('is_uber_order', '=', True)]</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
No Uber performance data yet!
</p>
<p>Track your delivery costs and order volume from Uber.</p>
</field>
</record>
<menuitem id="menu_uber_analytics"
name="Analytics Dashboard"
parent="dine360_uber.menu_uber_root"
action="action_uber_analytics"
sequence="20"/>
</data>
</odoo>