Overslaan naar inhoud
Menu
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Deze vraag is gerapporteerd
2 Antwoorden
344 Weergaven

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

Avatar
Annuleer
Beste antwoord

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.

Avatar
Annuleer
Auteur

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?

Beste antwoord

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().

Avatar
Annuleer
Gerelateerde posts Antwoorden Weergaven Activiteit
0
mei 25
1208
1
apr. 25
1312
1
feb. 24
3148
0
okt. 24
4324
0
nov. 22
2523