Browse Source

July 09: [FIX] Bug Fixed 'manufacturing_timesheet'

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

7
manufacturing_timesheet/doc/RELEASE_NOTES.md

@ -8,4 +8,9 @@
#### 04.07.2025 #### 04.07.2025
#### Version 18.0.1.0.1 #### Version 18.0.1.0.1
#### FIX #### FIX
- Fixed the singleton error that occurred when clicking the 'Produce All' button. - 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.

145
manufacturing_timesheet/models/mrp_workorder.py

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

Loading…
Cancel
Save