Skip to Content
Menu
This question has been flagged
2 Replies
339 Rodiniai

I have a custom datetime columns on the Account Analytic Line for Start_Time and End_Time that I need with updated date and time when the start and stop button is pressed for the timesheet line. The fields are working but I cant seem to find out where to go to customize the functionality of that specific button to extend Odoo's standard functionality to update my custom fields.

This is because Odoo doesn't track the Exact Start and End time for Timesheets, Tickets and Field Service. I need to track this for our customers reporting.


I am Using Version 18.0

Portretas
Atmesti
Best Answer

Hi,

The Timesheet timer is implemented in the module hr_timesheet. The Start/Stop buttons call methods on the model account.analytic.line:action_timer_start() → starts the timer.action_timer_stop() → stops the timer and calculates duration. Those are the methods you need to inherit/extend.


Code:


from odoo import models, fields, api

from datetime import datetime



class AccountAnalyticLine(models.Model):

    _inherit = "account.analytic.line"


    start_time = fields.Datetime("Start Time")

    end_time = fields.Datetime("End Time")


    def action_timer_start(self):

        """Extend standard start timer to log exact start time"""

        res = super().action_timer_start()

        for line in self:

            line.start_time = fields.Datetime.now()

            line.end_time = False  # reset until stopped

        return res


    def action_timer_stop(self):

        """Extend standard stop timer to log exact end time"""

        res = super().action_timer_stop()

        for line in self:

            line.end_time = fields.Datetime.now()

        return res


Hope it helps.

Portretas
Atmesti
Autorius

I got this to work for the Timesheet timer but why wouldn't this work for the Helpdesk and Field Service/Project Timer? how would those models be different?

Best Answer

You seem to be looking for the timer.mixin AbstractModel.

In there, next to others, you'll find methods for action_timer_start()action_timer_stop()action_timer_pause() and action_timer_resume().

Portretas
Atmesti
Related Posts Replies Rodiniai Veikla
0
geg. 25
1206
1
bal. 25
1306
1
vas. 24
3144
0
spal. 24
4319
0
lapkr. 22
2510