Browse Source

July 09: [FIX] Bug Fixed 'manufacturing_timesheet'

pull/354/merge
Cybrosys Technologies 1 week ago
parent
commit
929c7f4f82
  1. 5
      manufacturing_timesheet/doc/RELEASE_NOTES.md
  2. 87
      manufacturing_timesheet/models/mrp_workorder.py

5
manufacturing_timesheet/doc/RELEASE_NOTES.md

@ -9,3 +9,8 @@
#### Version 18.0.1.0.1
#### FIX
- Fixed the singleton error that occurred when clicking the 'Produce All' button.
#### 08.07.2025
#### Version 18.0.1.0.1
#### FIX
- Fixed the singleton error that occurred when clicking the 'start and pause' button.

87
manufacturing_timesheet/models/mrp_workorder.py

@ -51,63 +51,66 @@ class MrpWorkorder(models.Model):
Boolean: Returns true
"""
res = super(MrpWorkorder, self).button_start()
for rec in self:
project = self.env['project.project'].search(
[('name', '=', ("MO: {}".format(self.production_id.name)))])
[('name', '=', ("MO: {}".format(rec.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))))])
"{} 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(self.name,
self.workcenter_id.name,
self.product_id.display_name,
str(self.date_start))),
'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': self.date_start,
'date_deadline': self.date_finished,
'allocated_hours': self.duration_expected,
'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(self.name,
self.workcenter_id.name,
self.product_id.display_name)),
'employee_id': self.employee_id.id,
'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(self.production_id.name)),
{'name': ("MO: {}".format(rec.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))))])
"{} 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(self.name,
self.workcenter_id.name,
self.product_id.display_name,
str(self.date_start))),
'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': self.date_start,
'date_deadline': self.date_finished,
'allocated_hours': self.duration_expected,
'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(self.name,
self.workcenter_id.name,
self.product_id.display_name)),
'employee_id': self.employee_id.id,
'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()
for rec in self:
project = self.env['project.project'].search(
[('name', '=', ("MO: {}".format(self.production_id.name)))])
[('name', '=', ("MO: {}".format(rec.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))))])
"{} in {} for {} on {}".format(rec.name, rec.workcenter_id.name,
rec.product_id.display_name,
str(rec.date_start))))])
task_id.write({
'allocated_hours': self.duration_expected
'allocated_hours': rec.duration_expected
})
timesheet = task_id.mapped('timesheet_ids')
for rec in timesheet:
rec.write({
'unit_amount': self.duration,
timesheets = task_id.mapped('timesheet_ids')
for timesheet in timesheets:
timesheet.write({
'unit_amount': rec.duration,
})
return res
def button_finish(self):

Loading…
Cancel
Save