|
|
@ -51,63 +51,66 @@ class MrpWorkorder(models.Model): |
|
|
|
Boolean: Returns true |
|
|
|
""" |
|
|
|
res = super(MrpWorkorder, self).button_start() |
|
|
|
project = self.env['project.project'].search( |
|
|
|
[('name', '=', ("MO: {}".format(self.production_id.name)))]) |
|
|
|
if project: |
|
|
|
task_id = project.task_ids.search([('name', '=', ( |
|
|
|
"{} in {} for {} on {}".format(self.name, |
|
|
|
self.workcenter_id.name, |
|
|
|
self.product_id.display_name, |
|
|
|
str(self.date_start))))]) |
|
|
|
if not task_id: |
|
|
|
task_id = self.env['project.task'].create({ |
|
|
|
'name': ("{} in {} for {} on {}".format(self.name, |
|
|
|
self.workcenter_id.name, |
|
|
|
self.product_id.display_name, |
|
|
|
str(self.date_start))), |
|
|
|
'project_id': project.id, |
|
|
|
'date_assign': self.date_start, |
|
|
|
'date_deadline': self.date_finished, |
|
|
|
'allocated_hours': self.duration_expected, |
|
|
|
}) |
|
|
|
self.env['account.analytic.line'].create({ |
|
|
|
'task_id': task_id.id, |
|
|
|
'date': datetime.today(), |
|
|
|
'name': ("{} in {} for {}".format(self.name, |
|
|
|
self.workcenter_id.name, |
|
|
|
self.product_id.display_name)), |
|
|
|
'employee_id': self.employee_id.id, |
|
|
|
'is_manufacturing': True |
|
|
|
}) |
|
|
|
else: |
|
|
|
project_id = self.env['project.project'].create( |
|
|
|
{'name': ("MO: {}".format(self.production_id.name)), |
|
|
|
'is_manufacturing': True}) |
|
|
|
task_id = project_id.task_ids.search([('name', '=', ( |
|
|
|
"{} in {} for {} on {}".format(self.name, |
|
|
|
self.workcenter_id.name, |
|
|
|
self.product_id.display_name, |
|
|
|
str(self.date_start))))]) |
|
|
|
if not task_id: |
|
|
|
task_id = self.env['project.task'].create({ |
|
|
|
'name': ("{} in {} for {} on {}".format(self.name, |
|
|
|
self.workcenter_id.name, |
|
|
|
self.product_id.display_name, |
|
|
|
str(self.date_start))), |
|
|
|
'project_id': project_id.id, |
|
|
|
'date_assign': self.date_start, |
|
|
|
'date_deadline': self.date_finished, |
|
|
|
'allocated_hours': self.duration_expected, |
|
|
|
}) |
|
|
|
self.env['account.analytic.line'].create({ |
|
|
|
'task_id': task_id.id, |
|
|
|
'date': datetime.today(), |
|
|
|
'name': ("{} in {} for {}".format(self.name, |
|
|
|
self.workcenter_id.name, |
|
|
|
self.product_id.display_name)), |
|
|
|
'employee_id': self.employee_id.id, |
|
|
|
'is_manufacturing': True |
|
|
|
}) |
|
|
|
for rec in self: |
|
|
|
project = self.env['project.project'].search( |
|
|
|
[('name', '=', ("MO: {}".format(rec.production_id.name)))]) |
|
|
|
if project: |
|
|
|
task_id = project.task_ids.search([('name', '=', ( |
|
|
|
"{} in {} for {} on {}".format(rec.name, |
|
|
|
rec.workcenter_id.name, |
|
|
|
rec.product_id.display_name, |
|
|
|
str(rec.date_start))))]) |
|
|
|
if not task_id: |
|
|
|
task_id = self.env['project.task'].create({ |
|
|
|
'name': ("{} in {} for {} on {}".format(rec.name, |
|
|
|
rec.workcenter_id.name, |
|
|
|
rec.product_id.display_name, |
|
|
|
str(rec.date_start))), |
|
|
|
'project_id': project.id, |
|
|
|
'date_assign': rec.date_start, |
|
|
|
'date_deadline': rec.date_finished, |
|
|
|
'allocated_hours': rec.duration_expected, |
|
|
|
}) |
|
|
|
self.env['account.analytic.line'].create({ |
|
|
|
'task_id': task_id.id, |
|
|
|
'date': datetime.today(), |
|
|
|
'name': ("{} in {} for {}".format(rec.name, |
|
|
|
rec.workcenter_id.name, |
|
|
|
rec.product_id.display_name)), |
|
|
|
'employee_id': rec.employee_id.id, |
|
|
|
'is_manufacturing': True |
|
|
|
}) |
|
|
|
else: |
|
|
|
project_id = self.env['project.project'].create( |
|
|
|
{'name': ("MO: {}".format(rec.production_id.name)), |
|
|
|
'is_manufacturing': True}) |
|
|
|
task_id = project_id.task_ids.search([('name', '=', ( |
|
|
|
"{} in {} for {} on {}".format(rec.name, |
|
|
|
rec.workcenter_id.name, |
|
|
|
rec.product_id.display_name, |
|
|
|
str(rec.date_start))))]) |
|
|
|
if not task_id: |
|
|
|
task_id = self.env['project.task'].create({ |
|
|
|
'name': ("{} in {} for {} on {}".format(rec.name, |
|
|
|
rec.workcenter_id.name, |
|
|
|
rec.product_id.display_name, |
|
|
|
str(rec.date_start))), |
|
|
|
'project_id': project_id.id, |
|
|
|
'date_assign': rec.date_start, |
|
|
|
'date_deadline': rec.date_finished, |
|
|
|
'allocated_hours': rec.duration_expected, |
|
|
|
}) |
|
|
|
self.env['account.analytic.line'].create({ |
|
|
|
'task_id': task_id.id, |
|
|
|
'date': datetime.today(), |
|
|
|
'name': ("{} in {} for {}".format(rec.name, |
|
|
|
rec.workcenter_id.name, |
|
|
|
rec.product_id.display_name)), |
|
|
|
'employee_id': rec.employee_id.id, |
|
|
|
'is_manufacturing': True |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
return res |
|
|
|
|
|
|
|
def button_pending(self): |
|
|
@ -117,20 +120,22 @@ class MrpWorkorder(models.Model): |
|
|
|
Boolean: Returns true |
|
|
|
""" |
|
|
|
res = super(MrpWorkorder, self).button_pending() |
|
|
|
project = self.env['project.project'].search( |
|
|
|
[('name', '=', ("MO: {}".format(self.production_id.name)))]) |
|
|
|
task_id = project.task_ids.search([('name', '=', ( |
|
|
|
"{} in {} for {} on {}".format(self.name, self.workcenter_id.name, |
|
|
|
self.product_id.display_name, |
|
|
|
str(self.date_start))))]) |
|
|
|
task_id.write({ |
|
|
|
'allocated_hours': self.duration_expected |
|
|
|
}) |
|
|
|
timesheet = task_id.mapped('timesheet_ids') |
|
|
|
for rec in timesheet: |
|
|
|
rec.write({ |
|
|
|
'unit_amount': self.duration, |
|
|
|
for rec in self: |
|
|
|
project = self.env['project.project'].search( |
|
|
|
[('name', '=', ("MO: {}".format(rec.production_id.name)))]) |
|
|
|
task_id = project.task_ids.search([('name', '=', ( |
|
|
|
"{} in {} for {} on {}".format(rec.name, rec.workcenter_id.name, |
|
|
|
rec.product_id.display_name, |
|
|
|
str(rec.date_start))))]) |
|
|
|
task_id.write({ |
|
|
|
'allocated_hours': rec.duration_expected |
|
|
|
}) |
|
|
|
timesheets = task_id.mapped('timesheet_ids') |
|
|
|
for timesheet in timesheets: |
|
|
|
timesheet.write({ |
|
|
|
'unit_amount': rec.duration, |
|
|
|
}) |
|
|
|
|
|
|
|
return res |
|
|
|
|
|
|
|
def button_finish(self): |
|
|
|