diff --git a/cor_custom/models/analytic.py b/cor_custom/models/analytic.py
index 6de42d1..43f4df2 100755
--- a/cor_custom/models/analytic.py
+++ b/cor_custom/models/analytic.py
@@ -121,37 +121,18 @@ class AccountAnalyticLine(models.Model):
def create(self, vals):
if vals.get('unit_amount') == 0.0:
raise ValidationError(_("Your can not fill 0.0 hour entry"))
- """if vals.get('employee_id') and vals.get('project_id'):
- project = self.env['project.project'].search([('id', '=', vals.get('project_id'))])
- if project:
- for rec in project.sale_line_employee_ids:
- if rec.employee_id.id == vals.get('employee_id'):
- remain_hour = rec.budgeted_qty - rec.timesheet_hour
- if vals.get('unit_amount') > remain_hour:
- raise ValidationError(_("Your can not fill entry more than Budgeted hours"))"""
- if vals.get('employee_id') and vals.get('project_id'):
- print('VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV', self, vals.get('employee_id'), vals.get('project_id'))
- project = self.env['project.project'].search([('id', '=', vals.get('project_id'))])
- if project:
- if project.consultant_timesheet_hrs:
- for record in project.consultant_timesheet_hrs:
- if record.employee_id.id == vals.get('employee_id'):
- record.timesheet_hour = record.timesheet_hour + vals.get('unit_amount')
- else:
- project.consultant_timesheet_hrs.create({'project_id': vals.get('project_id'),
- 'employee_id': vals.get('employee_id'),
- 'timesheet_hour': vals.get('unit_amount')})
- else:
- project.consultant_timesheet_hrs.create({'project_id': vals.get('project_id'),
- 'employee_id': vals.get('employee_id'),
- 'timesheet_hour': vals.get('unit_amount')})
value = super(AccountAnalyticLine, self).create(vals)
- # if self.project_id:
- # self.project_id._compute_consultant_timesheet_hour()
- # print('WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW')
+ if value and value.project_id:
+ value.project_id._onchange_calculate_timesheet_hours()
return value
def write(self, vals):
+ print('AAAAAAAAAA', self)
if vals.get('unit_amount') == 0.0:
raise ValidationError(_("Your can not fill 0.0 hour entry"))
- return super().write(vals)
+
+ value = super(AccountAnalyticLine, self).write(vals)
+ print('BBBBBBBBBBBBB', self, vals)
+ if self.project_id:
+ self.project_id._onchange_calculate_timesheet_hours()
+ return value
diff --git a/cor_custom/models/project.py b/cor_custom/models/project.py
index 340194e..a23a153 100755
--- a/cor_custom/models/project.py
+++ b/cor_custom/models/project.py
@@ -68,6 +68,22 @@ class Project(models.Model):
consultant_timesheet_hrs = fields.One2many('consultant.timesheet.hrs', 'project_id', "Timesheet Hrs",
copy=False, help="Consultant timesheet hours")
+ def _onchange_calculate_timesheet_hours(self):
+ self.consultant_timesheet_hrs = [(6, 0, False)]
+ if self._origin.id:
+ self._cr.execute('''SELECT project_id, employee_id, SUM(unit_amount) FROM account_analytic_line
+ where project_id = %(project_id)s
+ GROUP BY project_id, employee_id''',
+ {'project_id': self._origin.id})
+ res = self._cr.fetchall()
+ print('RESSSSSSSSSS', res)
+ if res:
+ for rec in res:
+ print('RECCCCCCCCCCCCCCCC', rec)
+ self.consultant_timesheet_hrs.create({'project_id': rec[0],
+ 'employee_id': rec[1],
+ 'timesheet_hour': rec[2]})
+
@api.depends('cost', 'expenses_amt', 'budgeted_revenue')
def _compute_calc(self):
for record in self:
@@ -133,7 +149,7 @@ class Project(models.Model):
record.cost = cost
record.budgeted_hour_week = budgeted_hour_week
- #@api.depends('pricing_type')
+ # @api.depends('pricing_type')
def _compute_consultant_timesheet_hour(self):
for val in self:
val.consultant_timesheet_hrs = False
@@ -145,14 +161,15 @@ class Project(models.Model):
print('TTTTTTTTTTTTTT', res)
if res:
create_timesheet = val.consultant_timesheet_hrs.create({'project_id': res[0],
- 'employee_id': res[1],
- 'timesheet_hour': res[2]})
+ 'employee_id': res[1],
+ 'timesheet_hour': res[2]})
print('RRRRRRRRRRRRRRRRRRR', create_timesheet)
for rec in create_timesheet:
print('vvvvvvvvvvvv', rec)
else:
val.consultant_timesheet_hrs = False
- #val.consultant_timesheet_hrs = False
+ # val.consultant_timesheet_hrs = False
+
class ProjectConsultantTimesheetHrs(models.Model):
_name = 'consultant.timesheet.hrs'
diff --git a/cor_custom/views/project_view.xml b/cor_custom/views/project_view.xml
index 72b66df..9a05430 100755
--- a/cor_custom/views/project_view.xml
+++ b/cor_custom/views/project_view.xml
@@ -114,7 +114,7 @@
-
+
@@ -123,7 +123,7 @@
-
+