code in resource and project. This library was once used to perfom resource allocation: scheduling tasks and things like that. However this feature cannot be accessed through the interface since a long time. The feature is now removed from the project code. The library has been removed. Some code in resource used only in the project code has also been removed, as well as a test linked to this code.
55 lines
2.7 KiB
YAML
55 lines
2.7 KiB
YAML
-
|
|
In order to test resource.
|
|
-
|
|
I assign working calendar '45 Hours/Week' to human resource.
|
|
-
|
|
!python {model: resource.resource}: |
|
|
self.write(cr, uid, [ref('resource_analyst'), ref('resource_designer'), ref('resource_developer')], {'calendar_id' : ref('timesheet_group1'), 'resource_type': 'user'})
|
|
|
|
-
|
|
I had Project of OpenERP Integration of 50 Hours with three human resource assigned on it. I have started project from this week start.
|
|
-
|
|
I check per day work hour availability of the Resource based on Working Calendar Assigned to each resource, for first day of the week.
|
|
-
|
|
!python {model: resource.resource}: |
|
|
from openerp.tools import float_compare
|
|
calendar_pool = self.pool.get('resource.calendar')
|
|
resources = self.browse(cr, uid, [ref('resource_analyst'), ref('resource_designer'), ref('resource_developer')], context)
|
|
from datetime import datetime, timedelta
|
|
now = datetime.now()
|
|
dt = now - timedelta(days=now.weekday())
|
|
for resource in resources:
|
|
result = calendar_pool.working_hours_on_day(cr, uid, resource.calendar_id, dt, context)
|
|
assert float_compare(result, 9.0, precision_digits=2) == 0, 'Wrong calculation of day work hour availability of the Resource (found %d).' % result
|
|
-
|
|
Now, resource "Developer" drafted leave on Thursday in this week.
|
|
-
|
|
!python {model: resource.calendar.leaves}: |
|
|
from datetime import datetime,timedelta
|
|
now = datetime.now()
|
|
dt = (now - timedelta(days=now.weekday()) ) + timedelta(days=3)
|
|
self.write(cr, uid, [ref('resource_dummyleave')], {'resource_id': ref('resource_developer'), 'calendar_id': ref('timesheet_group1'), 'date_from': dt.strftime("%Y-%m-%d 09:00:00"), 'date_to': dt.strftime("%Y-%m-%d 18:00:00")})
|
|
|
|
-
|
|
I check Actual working hours on resource 'Developer' from this week
|
|
-
|
|
!python {model: resource.calendar}: |
|
|
from datetime import datetime
|
|
from dateutil.relativedelta import relativedelta
|
|
now = datetime.now()
|
|
dt_from = now - relativedelta(days=now.weekday(), hour=8, minute=30)
|
|
dt_to = dt_from + relativedelta(days=6, hour=17)
|
|
hours = self.interval_hours_get(cr, uid, ref('timesheet_group1'), dt_from, dt_to, resource=ref('resource_developer'))
|
|
assert hours > 27 , 'Invalid Total Week working hour calculated, got %r, expected > 27' % hours
|
|
-
|
|
Project Analysis work is of 20 hours which will start from Week start so i will calculate working schedule for resource Analyst for the same.
|
|
-
|
|
!python {model: resource.calendar}: |
|
|
|
|
from datetime import datetime, timedelta
|
|
now = datetime.now()
|
|
work_intreval = self.interval_min_get(cr, uid, ref('timesheet_group1'), now, 20.0, resource=ref('resource_designer'))
|
|
assert len(work_intreval) >= 5, 'Wrong Schedule Calculated'
|
|
|
|
|