Skip to Content

Contributors

Re: Overtime calculation in Odoo 15 and OCA

Hi Florian,

I wouldn't call most of the overtime behavior bugs, but differences in 
expectation between Odoo SA's legislation and ours and possibly the use case.


> Is currently somebody else working on it and can share information or

> experience with overtime in Odoo 15.0 onwards?

indeed. For a German customer I've simply replaced Odoo core's overtime 
calculation with the results of
https://github.com/OCA/hr-attendance/tree/15.0/
hr_attendance_report_theoretical_time
which according to the customer gives the correct results. This is pending 
testing and a couple of recalculations on changing things like the work 
calendar or vacations, but with the existing code you already can do sums on 
the overtime table and get the results you'd expect.

As the customer is eager to contribute to OCA, you can expect a PR on hr-
attendance for a module doing this in at most a few weeks :-)

If the customer agrees to share the work done up to now here, I'll happily 
follow up with a link, there we can also discuss further collaboration if 
you're interested.

Best regards,
Holger


-- 
Your partner for the hard Odoo problems
https://hunki-enterprises.com

by Holger Brunn - 03:01 - 28 Jul 2023

Reference

  • Overtime calculation in Odoo 15 and OCA

    Hello community,

    we are currently looking on overtime calculation in Odoo 15.0. Odoo 15.0 introduced a new model (hr.attendance.overtime) and mechanisms for an overtime calculation. First I want to share our knowledge with digging into it. There are currently some core bugs with the overtime calculation:

    • The resource.calendar from hr.contract is not used for overtime calculation as you would expect if hr_attendance and hr_contract is installed. Causes wrong calculations if you edit attendance before a resource calendar (e.g. somebody forgot to logout and you are validating the attendance)
    • Overtime ignores dates without attendance completly despite it's an actual working day. E.g. if you have to work for 8h and login for 1min you have -7:59h overtime. If you don't login it's +/-0h. This isn't fully consistent.

    We are currently trying to develop fixes for these core bugs. The bugs are present from 15.0 to master. We can share the PRs when they are ready.

    Following are additional observations regarding the state of the OCA modules in regard to overtime and attendance:

    •  hr_attendance_sheet and hr_attendance_validation: (up to 14.0)
      •  There is a big intersection in the feature sets of both modules. Both are creating a kind of sheet and a multiple step process to verify/approve attendances. They also add features like overtime calculation etc. based on the sheets.
      • A simple migration PR[1] is maybe not worth it because of the core changes in the overtime calculation. E.g. if an approval process is needed shouldn't only approved attendances count towards your overtime?
    • hr_holidays_public: (already 15.0)
      • This module works fine especially the automatic holiday generation with the modules built on top. The module has problems in the overtime calculation. The holidays reduce the days when you request additional holidays. But such a holiday is getting ignored for the overtime calculation. E.g. if you work on a holiday for 9h instead of the regular 8h you get 1h overtime with OCA holiday but 9h for core holiday. It's also not possible to use half holidays (e.g. the 24.12. or 31.12. in Germany). The module also ignores the holidays of the Odoo core. Are there any reasons to stick to the extra model we are not seeing?
      • In 15.0 Odoo core has a own model for public holidays. So just going on we community solution might result in a growing divergence from the core. The feature to generate public holidays is still very comfortable. A new approach could be to rebuild this to create entries of Odoo core model.
    • hr_attendance_report_theoretical_time
      • Here a intersection to the Odoo core overtime calculation in Odoo 15.0 exists, since it comes with some reports (pivot tables).


    Is currently somebody else working on it and can share information or experience with overtime in Odoo 15.0 onwards?

    Best Regards,

    Florian

    [1] https://github.com/OCA/hr-attendance/pull/114

    -- 
    Mit freundlichen Grüßen
    
    Florian Kantelberg
    Softwareentwickler
    
    initOS GmbH
    Innungsstraße 7
    21244 Buchholz i.d.N.
    
    Tel.: +49 (0) 4181 1350344
    Fax: +49 (0) 4181 1350310
    
    Email: florian.kantelberg@initos.com
    Internet: https://www.initos.com
    
    Geschäftsführung:
    Dr.-Ing. Frederik Kramer & Dipl.-Ing. (FH) Torsten Francke
    
    Sitz der Gesellschaft: Buchholz i.d.N.
    Amtsgericht: Tostedt, HRB 205226
    USt-IdNr: DE 815580155
    Steuer-Nr: 15/200/53247

    by Florian Kantelberg - 01:50 - 28 Jul 2023