コンテンツへスキップ
メニュー
この質問にフラグが付けられました
2 返信
8457 ビュー

This issue touches two Modules (maybe more but in my case and this specific example this relates to 2 Modules)

  1. hr_attendance
  2. hr_attendance_analysis

If we have a Sign In before 08:00:00 (timezone is UTC +8)

  1. the Attendance (Sign In) is not shown under the filter "Today" but it appears under the day before
  2. an "Attendance Analysis" lists the whole Attendance (Sign In - Sign Out) under the prior day

for example:

  • Sign In 2013-09-23 07:55:00
  • Sign Out 2013-09-23 18:00:00

As far as I know OE uses UTC timecode for all entries in the database. The time you see in the interface is always calculated based on the UTC time. For example you input a Sign in at 11:00:00 your database entry will be 11 am - 8 hrs (if you are in the UTC +8 timezone as we are) = 03:00:00

And I am pretty convinced that this is where the problem lies ... If we have a Sign In before 08:00:00 (in our UTC+8 timezone) the system regards this as prior 00:00:00 (which logically is yesterday). Contrary to this inner logic it is pretty messing up things in the real world though. For example an employee gets to see an Attendance analysis which shows wrong days when he or she has worked. Also this must lead to double Attendances at one day with no attendance on the next day

  • Monday Sign in 08:00 Sign out 16:00 Attendance Analysis = Mon 08:00 - 16:00
  • Tuesday Sign in 07:59 Sign out 15:59 Attendance Analysis = Mon 07:59 - 15:59

No Attendance will be shown for Tuesday

I regard this as a bug but not sure how to file that (and how to solve it until it might get fixed). In my case I might force anybody to sign in not earlier then 8 (which luckily is our scheduled working time) but that is not a real solution naturally)

アバター
破棄
著作者

seems we are not alone (how could we, it's a very basic issue that affects a lot of things I would imagine) http://help.openerp.com/question/17404/is-there-a-workaround-for-the-bug-where-timesheet-entries-use-incorrect-timezone/ with this UTC messup. I would imagine this is a rather simple fix because it is quite obvious there are missing some 'timezome translations' so to say ... is it?

最善の回答

Checkout new issue i created... can't send the url, cause not have enough "karma"?!?.


Issue 169592 on github / odoo / odoo / issues

アバター
破棄
最善の回答

Yes as of now openERP is using all entries based on UTC , it save date value as +/- UTC in database , but while showing in view it's again convert the value to +/- UTC value Eg:- Am in a time zone 'Asia/Dubai' which is UTC +4

Sign In 2013-09-23 07:55:00(in UI) --> 2013-09-23 03:55:00(in DB)

I guess following is quick solution to some specific date time related entries , all that you need to do is use openERP's special context timestamp method to convert the datetime as follows.

now = fields.datetime.context_timestamp(cr, uid, datetime.now(), context=context)

will give u the datetime of the moment to signin as per your time zone.

アバター
破棄

I have the same problem, if I use the previous line is it supposed that the DB value will change?

関連投稿 返信 ビュー 活動
0
4月 25
310
1
7月 24
3276
6
1月 23
15757
2
12月 22
4043
0
12月 17
3145