Hola,
Tengo este cogido para obtener edad que me funcionó hasta Odoo 16, no logro que funcione en Odoo 18. Si alguime me puede mostrar el error. El campo de fecha de nacimiento es x_dob, el campo donde retorna la edad es x_studio_age_1. Esto es para implementar con Odoo Studio. el codigo esta en el campo calculado x_studio_age_1.
Este código lo tome de un forum anterior, no tengo el hilo.
for record in self:
if record.x_dob:
today = datetime.date.today()
born = record.x_dob
# Calcular años
years = today.year - born.year - ((today.month, today.day) < (born.month, born.day))
# Calcular meses
months = today.month - born.month
if today.day < born.day:
months -= 1
if months < 0:
months += 12
# Calcular días
if today.day >= born.day:
days = today.day - born.day
else:
previous_month = (today.replace(day=1) - timedelta(days=1)).day
previous_month = today.month - 1
record['x_studio_age_1'] = f"{years} años, {months} meses, {days} días"
else:
record['x_studio_age_1'] = "Sin fecha de nacimiento"