Steps to reproduce:
- create OpenERP 6.1 database with mrp, mrp_operations modules installed with demo data
- client timezone UTC +0200
- create a manufacturing order with a workorder for the Assembly Workshop
- the Assembly Workshop has a Working Time of 45 hrs/week (monday-friday 2 shifts: morning 08:00-12:00, evening 13:00-18:00)
- set workorder Nbr of hours to 03:00
- set workorder Scheduled Date to start at 08:00 on a weekday
Observed behaviour:
- End Date (planned) = 11:00 (08:00 for morning start time + 03:00 production hours)
Expected behaviour:
- End Date (planned) = 13:00
Suspected cause:
The planned end date is calculated by the interval_get_multi method of the resource_calendar object. This method calculates uses the planned start date in UTC and the Working Time to calculate a planned end date. This returned planned end date is still in UTC. When presenting the planned end date on screen the planned end date is converted to UTC +0200. The bug is caused by the assumption that the Working Time is in UTC. This is not the case. The Working Time is in localtime, which for me is UTC +0200. I think the interval_get_multi method of the resource_calendar object should somehow consider the local timezone in the scheduled end date calculations.
Note that when working in UTC -0500 my example would lead to a planned end date of 06:00 while the planned start is 08:00!
OpenERP 6.1
Ubuntu 10.04
Steps to reproduce:
- create OpenERP 6.1 database with mrp, mrp_operations modules installed with demo data
- client timezone UTC +0200
- create a manufacturing order with a workorder for the Assembly Workshop
- the Assembly Workshop has a Working Time of 45 hrs/week (monday-friday 2 shifts: morning 08:00-12:00, evening 13:00-18:00)
- set workorder Nbr of hours to 03:00
- set workorder Scheduled Date to start at 08:00 on a weekday
Observed behaviour:
- End Date (planned) = 11:00 (08:00 for morning start time + 03:00 production hours)
Expected behaviour:
- End Date (planned) = 13:00
Suspected cause:
The planned end date is calculated by the interval_get_multi method of the resource_calendar object. This method calculates uses the planned start date in UTC and the Working Time to calculate a planned end date. This returned planned end date is still in UTC. When presenting the planned end date on screen the planned end date is converted to UTC +0200. The bug is caused by the assumption that the Working Time is in UTC. This is not the case. The Working Time is in localtime, which for me is UTC +0200. I think the interval_get_multi method of the resource_calendar object should somehow consider the local timezone in the scheduled end date calculations.
Note that when working in UTC -0500 my example would lead to a planned end date of 06:00 while the planned start is 08:00!
Jeroen Mollers