From c256d80677a0bfcd4b9cfea7d8a7700a3f94869e Mon Sep 17 00:00:00 2001 From: Alaguraj0361 Date: Thu, 9 Apr 2026 20:28:53 +0530 Subject: [PATCH] implement Uber delivery fee integration and update docker-compose container naming --- addons/dine360_uber/models/sale_order.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/addons/dine360_uber/models/sale_order.py b/addons/dine360_uber/models/sale_order.py index 2c7561d..6ba051d 100644 --- a/addons/dine360_uber/models/sale_order.py +++ b/addons/dine360_uber/models/sale_order.py @@ -40,28 +40,27 @@ class SaleOrder(models.Model): if carrier: # Force carrier to be published and global to avoid "No shipping method" error - carrier.write({ + carrier.sudo().write({ 'website_published': True, 'active': True, 'country_ids': [(6, 0, [])], 'state_ids': [(6, 0, [])], + 'zip_prefix_ids': [(6, 0, [])] if hasattr(Carrier, 'zip_prefix_ids') else False }) - - if carrier: + # 3. Use Odoo's standard method to set delivery - # This satisfies the requirement for website_sale's 'No shipping method' check _logger.info("Uber: Setting carrier %s with fee %s", carrier.name, amount) self.sudo().set_delivery_line(carrier, amount) - # Force the price again in case set_delivery_line used its own price + # Force the price and info again delivery_line = self.order_line.filtered(lambda l: l.is_delivery) if delivery_line: - delivery_line.write({ + delivery_line.sudo().write({ 'price_unit': amount, - 'name': 'Uber Delivery Fee (Distance Based)' + 'name': f"Uber Direct Delivery ({self.partner_id.city})" }) - self.write({'carrier_id': carrier.id}) + self.sudo().write({'carrier_id': carrier.id}) else: _logger.warning("Uber: No delivery carrier found to apply fee")