odoo-shivasakthi/addons/dine360_uber/views/sale_order_views.xml

88 lines
4.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- Add Uber Delivery buttons to the Sale Order form (website/backend orders) -->
<record id="view_sale_order_form_inherit_uber" model="ir.ui.view">
<field name="name">sale.order.form.inherit.uber</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<!-- Hidden Uber fields for visibility conditions -->
<xpath expr="//header" position="inside">
<field name="is_uber_order" invisible="1"/>
<field name="uber_delivery_id" invisible="1"/>
<field name="uber_tracking_url" invisible="1"/>
<field name="uber_status" invisible="1"/>
<field name="uber_alert_triggered" invisible="1"/>
<!-- Request Uber Delivery -->
<button name="action_request_uber_delivery"
string="🛵 Request Uber Delivery"
type="object"
invisible="(uber_delivery_id != False and uber_status not in ['cancelled', False]) or state == 'cancel'"
class="oe_highlight"/>
<!-- Track Driver -->
<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"/>
<!-- Sync Status -->
<button name="action_sync_uber_status"
string="🔄 Sync Uber Status"
type="object"
invisible="not uber_delivery_id or uber_status in ['delivered', 'cancelled']"
class="btn-secondary"/>
<!-- Cancel Uber -->
<button name="action_cancel_uber_delivery"
string="Cancel Uber Delivery"
type="object"
invisible="not uber_delivery_id or uber_status in ['delivered', 'cancelled']"
class="btn-danger"/>
</xpath>
<!-- Alert banners below header -->
<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 check Uber Dashboard.
</div>
<div class="alert alert-success m-0 p-2 text-center" role="alert"
invisible="uber_status != 'delivered'"
style="font-weight:bold;background-color:#d1e7dd;color:#0f5132;">
<i class="fa fa-check-circle me-2"/> ORDER DELIVERED SUCCESSFULLY BY UBER
</div>
</xpath>
<!-- Uber status ribbon -->
<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>
<!-- Uber info fields after order reference -->
<xpath expr="//field[@name='name']" position="after">
<field name="uber_status" readonly="1"
invisible="not is_uber_order"
decoration-info="uber_status == 'pending'"
decoration-warning="uber_status in ['pickup', 'delivering']"
decoration-success="uber_status == 'delivered'"
decoration-danger="uber_status == 'cancelled'"
widget="badge"/>
<field name="uber_delivery_id" readonly="1" invisible="not uber_delivery_id"/>
<field name="uber_eta" readonly="1" invisible="not uber_eta" string="Est. Delivery"/>
<field name="uber_delivery_fee" readonly="1" invisible="not uber_delivery_fee"
widget="monetary" options="{&quot;currency_field&quot;: &quot;currency_id&quot;}"/>
</xpath>
</field>
</record>
</data>
</odoo>