implement Uber delivery fee integration in sale orders and update docker-compose container naming
This commit is contained in:
parent
d95e1235d2
commit
375101a50f
@ -56,18 +56,24 @@ class SaleOrder(models.Model):
|
|||||||
|
|
||||||
# 3. Use Odoo's standard method to set delivery
|
# 3. Use Odoo's standard method to set delivery
|
||||||
_logger.info("Uber: Setting carrier %s with fee %s", carrier.name, amount)
|
_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)
|
delivery_line = self.order_line.filtered(lambda l: l.is_delivery)
|
||||||
if delivery_line:
|
if delivery_line:
|
||||||
delivery_line.sudo().write({
|
delivery_line.sudo().write({
|
||||||
'price_unit': amount,
|
'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:
|
else:
|
||||||
_logger.warning("Uber: No delivery carrier found to apply fee")
|
_logger.warning("Uber: No delivery carrier found to apply fee")
|
||||||
|
|
||||||
|
# Save everything to DB immediately
|
||||||
|
self.env.cr.commit()
|
||||||
return True
|
return True
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user