Merge branch 'cor_cr' of https://gitlab.sunarctechnologies.com/prakash.jain/cor-odoo into cor_cr
This commit is contained in:
commit
e012131063
|
@ -8,13 +8,14 @@ class EmployeeInherit(models.Model):
|
|||
_inherit = 'hr.employee'
|
||||
|
||||
permission_block_history = fields.One2many(comodel_name="timesheet.block.history", inverse_name="employee_id",
|
||||
string="History", required=False )
|
||||
string="History", required=False)
|
||||
|
||||
|
||||
class EmployeePublicInherit(models.Model):
|
||||
_inherit = 'hr.employee.public'
|
||||
|
||||
permission_block_history = fields.One2many(comodel_name="timesheet.block.history", inverse_name="employee_id",
|
||||
string="History", required=False )
|
||||
string="History", required=False)
|
||||
|
||||
|
||||
class TimesheetBlock(models.Model):
|
||||
|
@ -32,60 +33,57 @@ class TimehseetBlock(models.Model):
|
|||
|
||||
@api.model
|
||||
def create(self, values):
|
||||
entry_start_date = datetime.strptime(str(values['start_datetime']),"%Y-%m-%d %H:%M:%S").date()
|
||||
entry_end_date = datetime.strptime(values['end_datetime'],"%Y-%m-%d %H:%M:%S").date()
|
||||
employee_object = self.env['hr.employee'].search([('user_id', '=', self.env.uid)])
|
||||
format = "%Y-%m-%d %H:%M:%S"
|
||||
entry_start_date = datetime.strptime(str(values['start_datetime']), format).date()
|
||||
entry_end_date = datetime.strptime(values['end_datetime'], format).date()
|
||||
emp_obj = self.env['hr.employee'].search([('user_id', '=', self.env.uid)])
|
||||
# project_manager_group = self.env.ref('hr_timesheet.group_timesheet_manager')
|
||||
permission_block_object = employee_object.permission_block_history.search(
|
||||
[('employee_id', '=', employee_object.id)], order='create_date desc', limit=1)
|
||||
if permission_block_object:
|
||||
if (permission_block_object.start_date <= entry_start_date and permission_block_object.end_date >= entry_start_date) or (
|
||||
permission_block_object.start_date <= entry_end_date and permission_block_object.end_date >= entry_end_date) or (
|
||||
permission_block_object.start_date >= entry_start_date and permission_block_object.end_date <= entry_end_date
|
||||
block_obj = emp_obj.permission_block_history.search(
|
||||
[('employee_id', '=', emp_obj.id)], order='create_date desc', limit=1)
|
||||
if block_obj:
|
||||
if (block_obj.start_date <= entry_start_date and block_obj.end_date >= entry_start_date) or (
|
||||
block_obj.start_date <= entry_end_date and block_obj.end_date >= entry_end_date) or (
|
||||
block_obj.start_date >= entry_start_date and block_obj.end_date <= entry_end_date
|
||||
) or (
|
||||
permission_block_object.end_date >= entry_start_date and permission_block_object.end_date <= entry_end_date
|
||||
block_obj.end_date >= entry_start_date and block_obj.end_date <= entry_end_date
|
||||
):
|
||||
raise AccessError('You are not allowed to create entry for this date!')
|
||||
else:
|
||||
pass
|
||||
return super(TimehseetBlock, self).create(values)
|
||||
|
||||
|
||||
def write(self, record):
|
||||
format = "%Y-%m-%d %H:%M:%S"
|
||||
if 'start_datetime' in record or 'end_datetime' in record or 'project_id' in record or 'sub_project' in record or 'task_id' in record or 'description' in record:
|
||||
if 'start_datetime' in record and 'end_datetime' not in record:
|
||||
entry_start_date = datetime.strptime(str(record['start_datetime']),"%Y-%m-%d %H:%M:%S").date()
|
||||
entry_end_date = datetime.strptime(str(self.end_datetime),"%Y-%m-%d %H:%M:%S").date()
|
||||
entry_start_date = datetime.strptime(str(record['start_datetime']), format).date()
|
||||
entry_end_date = datetime.strptime(str(self.end_datetime), format).date()
|
||||
elif 'start_datetime' not in record and 'end_datetime' in record:
|
||||
entry_start_date = datetime.strptime(str(self.start_datetime), "%Y-%m-%d %H:%M:%S").date()
|
||||
entry_end_date = datetime.strptime(str(record['end_datetime']), "%Y-%m-%d %H:%M:%S").date()
|
||||
entry_start_date = datetime.strptime(str(self.start_datetime), format).date()
|
||||
entry_end_date = datetime.strptime(str(record['end_datetime']), format).date()
|
||||
elif 'start_datetime' in record and 'end_datetime' in record:
|
||||
entry_start_date = datetime.strptime(str(record['start_datetime']),"%Y-%m-%d %H:%M:%S").date()
|
||||
entry_end_date = datetime.strptime(str(record['end_datetime']), "%Y-%m-%d %H:%M:%S").date()
|
||||
entry_start_date = datetime.strptime(str(record['start_datetime']), format).date()
|
||||
entry_end_date = datetime.strptime(str(record['end_datetime']), format).date()
|
||||
else:
|
||||
res_start_date = str(self.start_datetime).split('.', 1)[0]
|
||||
res_end_date = str(self.end_datetime).split('.', 1)[0]
|
||||
entry_start_date = datetime.strptime(str(res_start_date), '%Y-%m-%d %H:%M:%S').date()
|
||||
entry_end_date = datetime.strptime(str(res_end_date), '%Y-%m-%d %H:%M:%S').date()
|
||||
employee_object = self.env['hr.employee'].search([('user_id', '=', self.env.uid)])
|
||||
entry_start_date = datetime.strptime(str(res_start_date), format).date()
|
||||
entry_end_date = datetime.strptime(str(res_end_date), format).date()
|
||||
emp_obj = self.env['hr.employee'].search([('user_id', '=', self.env.uid)])
|
||||
# project_manager_group = self.env.ref('hr_timesheet.group_timesheet_manager')
|
||||
if self.user_id.id == self.env.uid:
|
||||
permission_block_object = employee_object.permission_block_history.search(
|
||||
[('employee_id', '=', employee_object.id)], order='create_date desc', limit=1)
|
||||
if permission_block_object:
|
||||
if (
|
||||
permission_block_object.start_date <= entry_start_date and permission_block_object.end_date >= entry_start_date) or (
|
||||
permission_block_object.start_date <= entry_end_date and permission_block_object.end_date >= entry_end_date) or (
|
||||
permission_block_object.start_date >= entry_start_date and permission_block_object.end_date <= entry_end_date
|
||||
) or (
|
||||
permission_block_object.end_date >= entry_start_date and permission_block_object.end_date <= entry_end_date
|
||||
):
|
||||
block_obj = emp_obj.permission_block_history.search(
|
||||
[('employee_id', '=', emp_obj.id)], order='create_date desc', limit=1)
|
||||
if block_obj:
|
||||
if (block_obj.start_date <= entry_start_date and block_obj.end_date >= entry_start_date) or (
|
||||
block_obj.start_date <= entry_end_date and block_obj.end_date >= entry_end_date) or (
|
||||
block_obj.start_date >= entry_start_date and block_obj.end_date <= entry_end_date) or (
|
||||
block_obj.end_date >= entry_start_date and block_obj.end_date <= entry_end_date):
|
||||
raise AccessError('You are not allowed to edit entry for this date!')
|
||||
else:
|
||||
pass
|
||||
return super(TimehseetBlock, self).write(record)
|
||||
|
||||
|
||||
# @api.constrains('unit_amount')
|
||||
# def _check_unit_amount(self):
|
||||
# for rec in self:
|
||||
|
@ -100,4 +98,3 @@ class TimehseetBlock(models.Model):
|
|||
end_date = datetime.strptime(str(self.end_datetime), "%Y-%m-%d %H:%M:%S").date()
|
||||
if end_date > current_date:
|
||||
raise AccessError('End date cannot be a future date!')
|
||||
|
||||
|
|
Loading…
Reference in New Issue