Merge branch 'pawan_branch' into 'development'
update code See merge request prakash.jain/cor-odoo!64
This commit is contained in:
commit
521199cc5c
|
@ -41,7 +41,7 @@ class Project(models.Model):
|
|||
|
||||
start_date = fields.Date(string='Start Date')
|
||||
end_date = fields.Date(string='End Date')
|
||||
budgeted_hours = fields.Float(string='Total Budgeted Hours', digits=(16, 2))
|
||||
budgeted_hours = fields.Float(string='Total Budgeted Hours')
|
||||
budgeted_revenue = fields.Float(string='Budgeted Revenue', digits=(16, 2))
|
||||
expenses_per = fields.Float(string='Expenses (%)', digits=(16, 2))
|
||||
expenses_amt = fields.Float(string='Expenses Amount', digits=(16, 2))
|
||||
|
@ -49,7 +49,7 @@ class Project(models.Model):
|
|||
consultant_cost = fields.Float("Actual Cost", compute='_compute_consultant_timesheet_hours')
|
||||
other_expenses = fields.Float(string='Other Expenses', related='expenses_amt')
|
||||
total_expenses = fields.Float(string='Total Expenses', digits=(16, 2), compute='_compute_calc', store=True)
|
||||
hourly_rate = fields.Float("Hourly Rate", default=0.0, readonly=1)
|
||||
hourly_rate = fields.Float("Hourly Rate", default=0.0)
|
||||
hourly_rate2 = fields.Float("Hourly Ratee")
|
||||
budgeted_hour_week = fields.Float("Budgeted Hours(per week)", compute='onchange_compute_values', store=True)
|
||||
profit_amt = fields.Float(string='Profit Amount', digits=(16, 2), compute='_compute_calc', store=True)
|
||||
|
@ -97,6 +97,20 @@ class Project(models.Model):
|
|||
expense_amount = self.budgeted_revenue * (self.expenses_per / 100)
|
||||
self.expenses_amt = expense_amount
|
||||
|
||||
@api.onchange('budgeted_revenue', 'sale_line_employee_ids')
|
||||
def onchange_budgeted_hour(self):
|
||||
self.sale_line_employee_ids._compute_total_cost()
|
||||
hour = 0.0
|
||||
for rec in self.sale_line_employee_ids:
|
||||
hour = hour + rec.budgeted_qty
|
||||
print('TTTTTTTTTTTTTTT', hour, rec.budgeted_qty)
|
||||
print('SSSSSSSSS', hour)
|
||||
self.budgeted_hours = hour
|
||||
print('TTTTTTTTTTTTTTT', hour)
|
||||
print('UUUUUUUUUUU', self.budgeted_hours)
|
||||
if self.budgeted_hours > 0.0:
|
||||
self.hourly_rate = (self.budgeted_revenue / self.budgeted_hours)
|
||||
|
||||
@api.depends('cost', 'expenses_amt', 'budgeted_revenue')
|
||||
def _compute_calc(self):
|
||||
for record in self:
|
||||
|
@ -107,30 +121,30 @@ class Project(models.Model):
|
|||
if record.profit_amt > 0 and record.budgeted_revenue > 0:
|
||||
record.profit_per = (record.profit_amt / record.budgeted_revenue) * 100
|
||||
|
||||
@api.depends('sale_line_employee_ids', 'budgeted_hours')
|
||||
@api.depends('sale_line_employee_ids')
|
||||
def onchange_compute_values(self):
|
||||
for record in self:
|
||||
hour = 0.0
|
||||
# hour = 0.0
|
||||
cost = 0.0
|
||||
budgeted_hour_week = 0.0
|
||||
for rec in record.sale_line_employee_ids:
|
||||
hour = hour + rec.budgeted_qty
|
||||
# hour = hour + rec.budgeted_qty
|
||||
cost = cost + rec.cost
|
||||
budgeted_hour_week = budgeted_hour_week + rec.budgeted_hour_week
|
||||
if record.project_type == 'hours_in_consultant':
|
||||
record.cost = cost
|
||||
record.budgeted_hours = hour
|
||||
#if hour > 0.0:
|
||||
#record.hourly_rate = (cost / hour)
|
||||
else:
|
||||
record.cost = record.budgeted_hours * record.hourly_rate
|
||||
# record.budgeted_hours = hour
|
||||
# if hour > 0.0:
|
||||
# record.hourly_rate = (cost / hour)
|
||||
# else:
|
||||
# record.cost = record.budgeted_hours * record.hourly_rate
|
||||
record.budgeted_hour_week = budgeted_hour_week
|
||||
|
||||
|
||||
class InheritProjectProductEmployeeMap(models.Model):
|
||||
_inherit = 'project.sale.line.employee.map'
|
||||
|
||||
budgeted_qty = fields.Float(string='Budgeted Hours', store=True)
|
||||
budgeted_qty = fields.Float(string='Budgeted Hours')
|
||||
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)
|
||||
timesheet_hour = fields.Float("Timesheet Hour", compute='_compute_timesheet_hour', default=0.0)
|
||||
|
@ -140,15 +154,14 @@ class InheritProjectProductEmployeeMap(models.Model):
|
|||
currency_id = fields.Many2one('res.currency', string="Currency", compute='_compute_price_unit', store=True,
|
||||
readonly=False)
|
||||
sale_line_id = fields.Many2one('sale.order.line', "Service", domain=[('is_service', '=', True)])
|
||||
cost = fields.Float("Cost", compute='_compute_total_cost', default=0.0, store=True)
|
||||
consultant_cost = fields.Float("Actual Cost", compute='_compute_total_cost')
|
||||
cost = fields.Float("Cost", default=0.0, store=True)
|
||||
consultant_cost = fields.Float("Actual Cost")
|
||||
|
||||
hour_distribution = fields.Selection(related='project_id.hour_distribution')
|
||||
role = fields.Selection([('Manager', 'Manager'),
|
||||
('Employee', 'Employee'), ], string="Role", default="Employee")
|
||||
distribution_per = fields.Float("%")
|
||||
|
||||
|
||||
def _compute_timesheet_hour(self):
|
||||
for val in self:
|
||||
self._cr.execute('''SELECT project_id, employee_id, SUM(unit_amount) FROM account_analytic_line
|
||||
|
@ -160,8 +173,8 @@ class InheritProjectProductEmployeeMap(models.Model):
|
|||
val.timesheet_hour = res[2]
|
||||
else:
|
||||
val.timesheet_hour = 0.0
|
||||
#Run another method
|
||||
#val.project_id.onchange_compute_values()
|
||||
# Run another method
|
||||
# val.project_id.onchange_compute_values()
|
||||
|
||||
def _compute_budgeted_hour_week(self):
|
||||
for val in self:
|
||||
|
@ -170,20 +183,24 @@ class InheritProjectProductEmployeeMap(models.Model):
|
|||
else:
|
||||
val.budgeted_hour_week = 0
|
||||
|
||||
@api.onchange('project_id.budgeted_revenue', 'price_unit', 'distribution_per', 'employee_id', 'role')
|
||||
def _compute_total_cost(self):
|
||||
for val in self:
|
||||
if val.project_id.project_type == 'hours_in_consultant':
|
||||
if val.hour_distribution == 'Percentage':
|
||||
if val.role == 'Manager':
|
||||
val.cost = val.project_id.budgeted_revenue * (val.project_id.manager_per/100) * (val.distribution_per/100)
|
||||
val.cost = val.project_id.budgeted_revenue * (val.project_id.manager_per / 100) * (
|
||||
val.distribution_per / 100)
|
||||
else:
|
||||
val.cost = val.project_id.budgeted_revenue * (val.project_id.employee_per/100) * (val.distribution_per/100)
|
||||
val.cost = val.project_id.budgeted_revenue * (val.project_id.employee_per / 100) * (
|
||||
val.distribution_per / 100)
|
||||
if val.price_unit > 0.0:
|
||||
val.budgeted_qty = val.cost/val.price_unit
|
||||
val.budgeted_qty = val.cost / val.price_unit
|
||||
else:
|
||||
val.cost = 0.0
|
||||
#val.cost = val.budgeted_qty * val.price_unit
|
||||
# val.cost = val.budgeted_qty * val.price_unit
|
||||
val.consultant_cost = val.timesheet_hour * val.employee_price
|
||||
#self.project_id.onchange_budgeted_hour()
|
||||
|
||||
@api.depends('sale_line_id', 'sale_line_id.price_unit', 'timesheet_product_id')
|
||||
def _compute_price_unit(self):
|
||||
|
|
|
@ -107,10 +107,8 @@
|
|||
<field name="profit_per"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="budgeted_hours"
|
||||
attrs="{'invisible': [('pricing_type','=','fixed_rate')], 'readonly': [('project_type','=','hours_in_consultant')],
|
||||
'required': [('pricing_type','!=','fixed_rate')]}"/>
|
||||
<field name="hourly_rate"/>
|
||||
<field name="budgeted_hours"/>
|
||||
<field name="hourly_rate" readonly="1"/>
|
||||
<field name="budgeted_hour_week"/>
|
||||
</group>
|
||||
|
||||
|
|
Loading…
Reference in New Issue