diff --git a/cor_custom/models/project.py b/cor_custom/models/project.py
index 4449092..fdc6dc9 100755
--- a/cor_custom/models/project.py
+++ b/cor_custom/models/project.py
@@ -438,6 +438,20 @@ class InheritProjectProductEmployeeMap(models.Model):
return {
'type': 'ir.actions.act_window_close'}
+ @api.onchange('start_date', 'end_date')
+ def _onchange_start_date(self):
+ # if self.start_date:
+ # self.end_date = self.start_date + relativedelta.relativedelta(months=1) - relativedelta.relativedelta(days=1)
+ if self.start_date and self.end_date and (self.start_date > self.end_date):
+ raise AccessError('End date could not be greater than start date')
+ if self.project_id:
+ if self.start_date and not self.project_id.date_start <= self.start_date <= self.project_id.date:
+ raise AccessError(_('Allocation Start date must be between %s to %s') % (
+ self.project_id.date_start.strftime('%d-%b-%Y'), self.project_id.date.strftime('%d-%b-%Y')))
+ if self.end_date and not (self.project_id.date_start <= self.end_date <= self.project_id.date):
+ raise AccessError(_('Allocation Start date must be between %s to %s') % (
+ self.project_id.date_start.strftime('%d-%b-%Y'), self.project_id.date.strftime('%d-%b-%Y')))
+
class CustomProjectTags(models.Model):
""" Tags of project's tasks """
diff --git a/cor_custom/views/project_view.xml b/cor_custom/views/project_view.xml
index bb4d10a..f8176be 100755
--- a/cor_custom/views/project_view.xml
+++ b/cor_custom/views/project_view.xml
@@ -101,7 +101,7 @@
-
+
diff --git a/cor_custom/wizard/project_resource_wizard.py b/cor_custom/wizard/project_resource_wizard.py
index f47ec65..666c70d 100755
--- a/cor_custom/wizard/project_resource_wizard.py
+++ b/cor_custom/wizard/project_resource_wizard.py
@@ -3,6 +3,7 @@ from odoo.exceptions import UserError, AccessError, ValidationError
from datetime import datetime, timedelta
from dateutil import relativedelta
+
class ProjectResourceWizard(models.TransientModel):
_name = 'project.resource.wizard'
@@ -17,7 +18,8 @@ class ProjectResourceWizard(models.TransientModel):
resource_rec = {}
if rec.employee_id and rec.employee_id.id not in emp_id:
emp_id.append(rec.employee_id.id)
- resource_rec.update({'employee_id':rec.employee_id.id, 'project_id': res_id, 'employee_price': rec.employee_id.timesheet_cost})
+ resource_rec.update({'employee_id': rec.employee_id.id, 'project_id': res_id,
+ 'employee_price': rec.employee_id.timesheet_cost})
lines.append((0, 0, resource_rec))
res.update({'add_project_resource': lines})
return res
@@ -45,9 +47,10 @@ class ProjectResourceWizard(models.TransientModel):
############
for emp in self.project_id.sale_line_employee_ids:
if emp.employee_id == val.employee_id and emp.end_date == False and val.start_date:
- emp.write({'end_date' : val.start_date - relativedelta.relativedelta(days=1)})
+ emp.write({'end_date': val.start_date - relativedelta.relativedelta(days=1)})
return True
+
class ProjectResourceLine(models.Model):
_name = "project.resource.line"
_description = "Project Resource Line"
@@ -56,7 +59,7 @@ class ProjectResourceLine(models.Model):
project_id = fields.Many2one('project.project')
employee_id = fields.Many2one('hr.employee')
employee_ids = fields.Many2many('hr.employee', compute='_compute_allow_employee_ids')
- role = fields.Selection([('Manager', 'Manager'),('Employee', 'Employee'), ], string="Role", default="Employee")
+ role = fields.Selection([('Manager', 'Manager'), ('Employee', 'Employee'), ], string="Role", default="Employee")
start_date = fields.Date()
end_date = fields.Date()
price_unit = fields.Float("Hourly Rate")
@@ -88,23 +91,22 @@ class ProjectResourceLine(models.Model):
@api.onchange('price_unit', 'budgeted_qty')
def _calculate_total_cost(self):
- #if self.env.context.get('active_model') == 'project.project' and self.env.context.get('active_id'):
- #pro = self.env['project.project'].browse(self.env.context.get('active_id'))
+ # if self.env.context.get('active_model') == 'project.project' and self.env.context.get('active_id'):
+ # pro = self.env['project.project'].browse(self.env.context.get('active_id'))
if self.project_id.project_type == 'hours_in_consultant':
if self.hour_distribution == 'Manual':
self.cost = self.price_unit * self.budgeted_qty
- @api.onchange('start_date')
- def onchange_start_date(self):
- if self.start_date:
- self.end_date = self.start_date + relativedelta.relativedelta(months=1) - relativedelta.relativedelta(days=1)
- if self.start_date and self.end_date and (self.end_date > self.start_date):
- raise AccessError('End date could not be greater than start date')
-
@api.onchange('start_date', 'end_date')
- def _onchange_start_date(self):
+ def _onchange_start_end_date(self):
+ # if self.start_date:
+ # self.end_date = self.start_date + relativedelta.relativedelta(months=1) - relativedelta.relativedelta(days=1)
+ if self.start_date and self.end_date and (self.start_date > self.end_date):
+ raise AccessError('End date could not be greater than start date')
if self.project_id:
if self.start_date and not self.project_id.date_start <= self.start_date <= self.project_id.date:
- raise AccessError(_('Allocation Start date must be between %s to %s') % (self.project_id.date_start,self.project_id.date))
+ raise AccessError(_('Allocation Start date must be between %s to %s') % (
+ self.project_id.date_start.strftime('%d-%b-%Y'), self.project_id.date.strftime('%d-%b-%Y')))
if self.end_date and not (self.project_id.date_start <= self.end_date <= self.project_id.date):
- raise AccessError(_('Allocation Start date must be between %s to %s') % (self.project_id.date_start,self.project_id.date))
+ raise AccessError(_('Allocation Start date must be between %s to %s') % (
+ self.project_id.date_start.strftime('%d-%b-%Y'), self.project_id.date.strftime('%d-%b-%Y')))
diff --git a/cor_custom/wizard/project_resource_wizard.xml b/cor_custom/wizard/project_resource_wizard.xml
index 08f9486..fa59f1a 100755
--- a/cor_custom/wizard/project_resource_wizard.xml
+++ b/cor_custom/wizard/project_resource_wizard.xml
@@ -10,7 +10,7 @@
-
+