From 375101a50f8b7657cded75d8375753d64314018c Mon Sep 17 00:00:00 2001 From: Alaguraj0361 Date: Thu, 9 Apr 2026 22:58:14 +0530 Subject: [PATCH] implement Uber delivery fee integration in sale orders and update docker-compose container naming --- addons/dine360_uber/models/sale_order.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/addons/dine360_uber/models/sale_order.py b/addons/dine360_uber/models/sale_order.py index 158bc77..4161fb3 100644 --- a/addons/dine360_uber/models/sale_order.py +++ b/addons/dine360_uber/models/sale_order.py @@ -56,18 +56,24 @@ class SaleOrder(models.Model): # 3. Use Odoo's standard method to set delivery _logger.info("Uber: Setting carrier %s with fee %s", carrier.name, amount) - self.sudo().set_delivery_line(carrier, amount) - # Force the price and info again + # Lock the price on the carrier record itself temporarily (SUDO) to satisfy Odoo's check_carrier + carrier.sudo().write({'fixed_price': amount}) + + # Apply to order + self.sudo().set_delivery_line(carrier, amount) + self.sudo().write({'carrier_id': carrier.id}) + + # Force the line name and price one more time to be sure delivery_line = self.order_line.filtered(lambda l: l.is_delivery) if delivery_line: delivery_line.sudo().write({ 'price_unit': amount, - 'name': f"Uber Direct Delivery ({self.partner_id.city})" + 'name': f"Uber Direct Delivery ({self.partner_id.city or 'Local'})" }) - - self.sudo().write({'carrier_id': carrier.id}) else: _logger.warning("Uber: No delivery carrier found to apply fee") + # Save everything to DB immediately + self.env.cr.commit() return True