Hola, en este articulo quiero compartir el siguiente código que muestra la duración entre dos fechas, es útil cuando deseamos saber la duración en horas de un curso o practica, esta función la coloque en un modulo para llevar el control de horas en un curso de conducción, obviamente no es desarrollado por mi, gracias a introdoo y a sus vídeos que explican bastante bien los conceptos de desarrollo.
dentro del articulo dejare el link a su canal de youtube y el vídeo donde explica paso a paso como realizar la función, de todas maneras el código quedara acá para que ustedes puedan copiarlo y incorporarlo a su proyecto.
Primero hay que crear dos campo de fechas inicio y termino, luego un campo el cual llame duración donde se mostrara el tiempo en horas y donde se ejecuta la función.
Tres campos para realizar la duración:
date_start = fields.Datetime(string='Fecha Inicio') date_stop = fields.Datetime(string='Fecha Termino') duration = fields.Float(string='Duración', compute='_compute_duration', help='Duración en Horas')
Obviamente ustedes le colocan el nombre que deseen, esta es la función que utilice la cual funciona bien.
@api.depends("date_start", "date_stop")
def _compute_duration(self):
duration = 0.0
for rec in self:
if rec.date_start and rec.date_stop:
start = fields.Datetime.from_string(rec.date_start)
end = fields.Datetime.from_string(rec.date_stop)
delta = end - start
duration = delta.total_seconds() / 3600
rec.duration = duration
Les comparto el vídeo para que no vaya a buscarlo directamente a youtube, espero que sea de utilidad para ustedes así como lo fue para mi, mas códigos para odoo en el blog