[FIX/REF] project_long_term: better way to obtain default uom unit
bzr revid: odo@openerp.com-20100708125359-ov7z0d8bjgtm4gxs
This commit is contained in:
parent
18831ae253
commit
5047a63045
|
@ -86,6 +86,11 @@ class project_phase(osv.osv):
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def _get_default_uom_id(self, cr, uid):
|
||||||
|
model_data_obj = self.pool.get('ir.model.data')
|
||||||
|
model_data_id = model_data_obj._get_id(cr, uid, 'product', 'uom_hour')
|
||||||
|
return model_data_obj.read(cr, uid, [model_data_id], ['res_id'])[0]['res_id']
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'name': fields.char("Name", size=64, required=True),
|
'name': fields.char("Name", size=64, required=True),
|
||||||
'date_start': fields.datetime('Start Date', help="Starting Date of the phase"),
|
'date_start': fields.datetime('Start Date', help="Starting Date of the phase"),
|
||||||
|
@ -137,7 +142,6 @@ class project_phase(osv.osv):
|
||||||
"""
|
"""
|
||||||
uom_obj = self.pool.get('product.uom')
|
uom_obj = self.pool.get('product.uom')
|
||||||
resource_obj = self.pool.get('resource.resource')
|
resource_obj = self.pool.get('resource.resource')
|
||||||
model_data_obj = self.pool.get('ir.model.data')
|
|
||||||
cal_obj = self.pool.get('resource.calendar')
|
cal_obj = self.pool.get('resource.calendar')
|
||||||
calendar_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
|
calendar_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
|
||||||
resource_id = resource_obj.search(cr, uid, [('user_id', '=', phase.responsible_id.id)])
|
resource_id = resource_obj.search(cr, uid, [('user_id', '=', phase.responsible_id.id)])
|
||||||
|
@ -147,7 +151,7 @@ class project_phase(osv.osv):
|
||||||
cal_id = res.get('calendar_id', False) and res.get('calendar_id')[0] or False
|
cal_id = res.get('calendar_id', False) and res.get('calendar_id')[0] or False
|
||||||
if cal_id:
|
if cal_id:
|
||||||
calendar_id = cal_id
|
calendar_id = cal_id
|
||||||
default_uom_id = model_data_obj._get_id(cr, uid, 'product', 'uom_hour')
|
default_uom_id = self._get_default_uom_id(cr, uid)
|
||||||
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
|
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
|
||||||
work_times = cal_obj.interval_min_get(cr, uid, calendar_id, date_end, avg_hours or 0.0, resource_id and resource_id[0] or False)
|
work_times = cal_obj.interval_min_get(cr, uid, calendar_id, date_end, avg_hours or 0.0, resource_id and resource_id[0] or False)
|
||||||
dt_start = work_times[0][0].strftime('%Y-%m-%d %H:%M:%S')
|
dt_start = work_times[0][0].strftime('%Y-%m-%d %H:%M:%S')
|
||||||
|
@ -160,7 +164,6 @@ class project_phase(osv.osv):
|
||||||
Check And Compute date_end of phase if change in date_end > older time.
|
Check And Compute date_end of phase if change in date_end > older time.
|
||||||
"""
|
"""
|
||||||
uom_obj = self.pool.get('product.uom')
|
uom_obj = self.pool.get('product.uom')
|
||||||
model_data_obj = self.pool.get('ir.model.data')
|
|
||||||
resource_obj = self.pool.get('resource.resource')
|
resource_obj = self.pool.get('resource.resource')
|
||||||
cal_obj = self.pool.get('resource.calendar')
|
cal_obj = self.pool.get('resource.calendar')
|
||||||
calendar_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
|
calendar_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
|
||||||
|
@ -171,7 +174,7 @@ class project_phase(osv.osv):
|
||||||
cal_id = res.get('calendar_id', False) and res.get('calendar_id')[0] or False
|
cal_id = res.get('calendar_id', False) and res.get('calendar_id')[0] or False
|
||||||
if cal_id:
|
if cal_id:
|
||||||
calendar_id = cal_id
|
calendar_id = cal_id
|
||||||
default_uom_id = model_data_obj._get_id(cr, uid, 'product', 'uom_hour')
|
default_uom_id = self._get_default_uom_id(cr, uid)
|
||||||
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
|
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
|
||||||
work_times = cal_obj.interval_get(cr, uid, calendar_id, date_start, avg_hours or 0.0, resource_id and resource_id[0] or False)
|
work_times = cal_obj.interval_get(cr, uid, calendar_id, date_start, avg_hours or 0.0, resource_id and resource_id[0] or False)
|
||||||
dt_end = work_times[-1][1].strftime('%Y-%m-%d %H:%M:%S')
|
dt_end = work_times[-1][1].strftime('%Y-%m-%d %H:%M:%S')
|
||||||
|
@ -181,7 +184,6 @@ class project_phase(osv.osv):
|
||||||
resource_calendar_obj = self.pool.get('resource.calendar')
|
resource_calendar_obj = self.pool.get('resource.calendar')
|
||||||
resource_obj = self.pool.get('resource.resource')
|
resource_obj = self.pool.get('resource.resource')
|
||||||
uom_obj = self.pool.get('product.uom')
|
uom_obj = self.pool.get('product.uom')
|
||||||
model_data_obj = self.pool.get('ir.model.data')
|
|
||||||
if context is None:
|
if context is None:
|
||||||
context = {}
|
context = {}
|
||||||
if context.get('scheduler',False):
|
if context.get('scheduler',False):
|
||||||
|
@ -195,7 +197,7 @@ class project_phase(osv.osv):
|
||||||
cal_id = resource_obj.browse(cr, uid, resource_id[0], context=context).calendar_id.id
|
cal_id = resource_obj.browse(cr, uid, resource_id[0], context=context).calendar_id.id
|
||||||
if cal_id:
|
if cal_id:
|
||||||
calendar_id = cal_id
|
calendar_id = cal_id
|
||||||
default_uom_id = model_data_obj._get_id(cr, uid, 'product', 'uom_hour')
|
default_uom_id = self._get_default_uom_id(cr, uid)
|
||||||
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
|
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
|
||||||
|
|
||||||
# Change the date_start and date_end
|
# Change the date_start and date_end
|
||||||
|
|
|
@ -60,7 +60,6 @@ class project_compute_phases(osv.osv_memory):
|
||||||
phase_obj = self.pool.get('project.phase')
|
phase_obj = self.pool.get('project.phase')
|
||||||
resource_obj = self.pool.get('resource.resource')
|
resource_obj = self.pool.get('resource.resource')
|
||||||
uom_obj = self.pool.get('product.uom')
|
uom_obj = self.pool.get('product.uom')
|
||||||
model_data_obj = self.pool.get('ir.model.data')
|
|
||||||
phase_resource_obj = False
|
phase_resource_obj = False
|
||||||
|
|
||||||
if context is None:
|
if context is None:
|
||||||
|
@ -82,7 +81,7 @@ class project_compute_phases(osv.osv_memory):
|
||||||
'vacation': tuple(leaves),
|
'vacation': tuple(leaves),
|
||||||
'efficiency': time_efficiency
|
'efficiency': time_efficiency
|
||||||
})
|
})
|
||||||
default_uom_id = model_data_obj._get_id(cr, uid, 'product', 'uom_hour')
|
default_uom_id = phase_obj._get_default_uom_id(cr, uid)
|
||||||
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
|
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
|
||||||
duration = str(avg_hours) + 'H'
|
duration = str(avg_hours) + 'H'
|
||||||
# Create a new project for each phase
|
# Create a new project for each phase
|
||||||
|
|
Loading…
Reference in New Issue