Merge branch 'pawan_branch' into 'development'
Pawan branch See merge request prakash.jain/cor-odoo!41
This commit is contained in:
commit
bc1574d901
|
@ -38,41 +38,47 @@ class Project(models.Model):
|
|||
" them or by someone of their company.")
|
||||
allow_billable = fields.Boolean("Billable", default=True, help="Invoice your time and material from tasks.")
|
||||
|
||||
budgeted_hours = fields.Float(string='Budgeted Hours', digits=(16, 2))
|
||||
budgeted_hours = fields.Float(string='Total Budgeted Hours', digits=(16, 2))
|
||||
budgeted_revenue = fields.Float(string='Budgeted Revenue', digits=(16, 2))
|
||||
cost = fields.Float("Sum of Cost", compute='onchange_compute_hours')
|
||||
hourly_rate = fields.Float("Sum of Hourly rate", compute='onchange_compute_hours')
|
||||
budgeted_hour_week = fields.Float("Budgeted Hours(per week)", compute='onchange_compute_hours')
|
||||
|
||||
# @api.onchange('sale_line_employee_ids','sale_line_employee_ids.budgeted_qty', 'project_id')
|
||||
# def onchange_(self):
|
||||
# if self.project_type == 'hours_in_consultant':
|
||||
# print('555555555')
|
||||
# val = 0.0
|
||||
# for rec in self.sale_line_employee_ids:
|
||||
# val = val + rec.budgeted_qty
|
||||
# print('66666666666666666', val)
|
||||
# print('777777777', val)
|
||||
# self.budgeted_hours = val
|
||||
|
||||
|
||||
|
||||
@api.depends('sale_line_employee_ids.budgeted_qty', 'sale_line_employee_ids.budgeted_qty')
|
||||
def onchange_compute_hours(self):
|
||||
if self.project_type == 'hours_in_consultant':
|
||||
val = 0.0
|
||||
cost = 0.0
|
||||
budgeted_hour_week = 0.0
|
||||
for rec in self.sale_line_employee_ids:
|
||||
val = val + rec.budgeted_qty
|
||||
cost = cost + rec.cost
|
||||
budgeted_hour_week = budgeted_hour_week + rec.budgeted_hour_week
|
||||
self.budgeted_hours = val
|
||||
self.cost = cost
|
||||
self.hourly_rate = (self.cost/self.budgeted_hours)
|
||||
self.budgeted_hour_week = budgeted_hour_week
|
||||
|
||||
|
||||
class InheritProjectProductEmployeeMap(models.Model):
|
||||
_inherit = 'project.sale.line.employee.map'
|
||||
|
||||
employee_price = fields.Monetary(string="Consultant Price", related="employee_id.timesheet_cost", readonly=True)
|
||||
budgeted_qty = fields.Float(string='Budgeted Hours', store=True)
|
||||
budgeted_qty = fields.Float(string='Budgeted Hours', store=True)
|
||||
budgeted_uom = fields.Many2one('uom.uom', string='Budgeted UOM', related='sale_line_id.product_uom', readonly=True)
|
||||
#budgeted_uom = fields.Many2one('uom.uom', string='Budgeted UOM', related='timesheet_product_id.uom_id', readonly=True)
|
||||
# budgeted_uom = fields.Many2one('uom.uom', string='Budgeted UOM', related='timesheet_product_id.uom_id', readonly=True)
|
||||
timesheet_hour = fields.Float("Timesheet Hour", compute='_compute_timesheet_hour', default=0.0)
|
||||
budgeted_hour_week = fields.Float("Budgeted Hours per week ", compute='_compute_budgeted_hour_week')
|
||||
price_unit = fields.Float("Hourly rate", compute='_compute_price_unit', store=True, readonly=True)
|
||||
sale_line_id = fields.Many2one('sale.order.line', "Service", domain=[('is_service', '=', True)])
|
||||
cost = fields.Float("Cost", compute='_compute_total_cost')
|
||||
|
||||
def _compute_timesheet_hour(self):
|
||||
for val in self:
|
||||
self._cr.execute('''SELECT project_id, employee_id, SUM(unit_amount) FROM account_analytic_line
|
||||
where project_id = %(project_id)s and employee_id = %(employee_id)s
|
||||
GROUP BY project_id, employee_id''', { 'project_id': val.project_id._origin.id, 'employee_id': val.employee_id.id,})
|
||||
GROUP BY project_id, employee_id''',
|
||||
{'project_id': val.project_id._origin.id, 'employee_id': val.employee_id.id, })
|
||||
res = self._cr.fetchone()
|
||||
if res and res[2]:
|
||||
val.timesheet_hour = res[2]
|
||||
|
@ -82,8 +88,21 @@ class InheritProjectProductEmployeeMap(models.Model):
|
|||
def _compute_budgeted_hour_week(self):
|
||||
for val in self:
|
||||
if val.employee_id and val.employee_id.budgeted_hour_week > 0 and val.budgeted_qty:
|
||||
val.budgeted_hour_week = (val.budgeted_qty /val.employee_id.budgeted_hour_week)
|
||||
val.budgeted_hour_week = (val.budgeted_qty / val.employee_id.budgeted_hour_week)
|
||||
else:
|
||||
val.budgeted_hour_week = 0
|
||||
|
||||
def _compute_total_cost(self):
|
||||
for val in self:
|
||||
val.cost = val.budgeted_qty * val.price_unit
|
||||
|
||||
# @api.onchange('employee_id', 'budgeted_qty')
|
||||
# def onchange_(self):
|
||||
# for val in self:
|
||||
# rec = 0.0
|
||||
# if val.project_id.project_type == 'hours_in_consultant':
|
||||
# print('555555555')
|
||||
# rec = rec + rec.budgeted_qty
|
||||
# print('66666666666666666', rec)
|
||||
# print('777777777', rec)
|
||||
# self.budgeted_hours = rec
|
||||
|
|
|
@ -39,11 +39,11 @@
|
|||
widget="radio"/>
|
||||
<field name="project_type" attrs="{'invisible': [('pricing_type', '=', 'fixed_rate')]}"
|
||||
widget="radio"/>
|
||||
<field name="budgeted_revenue"
|
||||
attrs="{'invisible': [('pricing_type','=','fixed_rate')], 'required': [('pricing_type','!=','fixed_rate')]}"/>
|
||||
<field name="budgeted_hours"
|
||||
attrs="{'invisible': [('pricing_type','=','fixed_rate')], 'readonly': [('project_type','=','hours_in_consultant')],
|
||||
'required': [('pricing_type','!=','fixed_rate')]}"/>
|
||||
<field name="budgeted_revenue"
|
||||
attrs="{'invisible': [('pricing_type','=','fixed_rate')], 'required': [('pricing_type','!=','fixed_rate')]}"/>
|
||||
<div class="o_td_label"
|
||||
attrs="{'invisible': ['|', '|', ('allow_timesheets', '=', False), ('sale_order_id', '!=', False), '&', ('pricing_type', '!=', 'fixed_rate'), ('bill_type', '!=', 'customer_task')]}">
|
||||
<label for="timesheet_product_id" string="Default Service"
|
||||
|
@ -72,6 +72,7 @@
|
|||
attrs="{'readonly': [('parent.sale_order_id', '!=', False)]}"/>
|
||||
<field name="budgeted_qty"
|
||||
attrs="{'readonly': [('parent.project_type', '=', 'hours_no_limit')]}"/>
|
||||
<field name="cost"/>
|
||||
<field name="timesheet_hour"/>
|
||||
<field name="budgeted_hour_week"/>
|
||||
<field name="currency_id" invisible="1" readonly="1"/>
|
||||
|
@ -84,6 +85,11 @@
|
|||
<!--<field name="employee_price" widget="monetary" options="{'currency_field': 'currency_id'}"/>-->
|
||||
</tree>
|
||||
</field>
|
||||
<group col="4" colspan="4">
|
||||
<field name="cost"/>
|
||||
<field name="hourly_rate"/>
|
||||
<field name="budgeted_hour_week"/>
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
|
||||
|
|
Loading…
Reference in New Issue