bemade_fsm: fix visit naming on tasks
This commit is contained in:
parent
7e3d5663aa
commit
0ddb7c8160
4 changed files with 17 additions and 8 deletions
|
|
@ -20,7 +20,7 @@
|
|||
########################################################################################
|
||||
{
|
||||
'name': 'Improved Field Service Management',
|
||||
'version': '15.0.1.0.0',
|
||||
'version': '15.0.1.0.1',
|
||||
'summary': 'Adds functionality necessary for managing field service operations at Durpro.',
|
||||
'description': 'Adds functionality necessary for managing field service operations at Durpro.',
|
||||
'category': 'Services/Field Service',
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ class SaleOrderLine(models.Model):
|
|||
def _timesheet_service_generation(self):
|
||||
super()._timesheet_service_generation()
|
||||
visit_lines = self.filtered(lambda l: l.visit_id)
|
||||
for line in visit_lines:
|
||||
for index, line in enumerate(visit_lines):
|
||||
task_ids = line.get_section_line_ids().mapped('task_id')
|
||||
if not task_ids:
|
||||
continue
|
||||
|
|
@ -148,16 +148,15 @@ class SaleOrderLine(models.Model):
|
|||
# Can't group up the tasks if they're part of different projects
|
||||
return
|
||||
project_id = task_ids[0].project_id
|
||||
line.visit_id.task_id = line._generate_task_for_visit_line(project_id)
|
||||
line.visit_id.task_id = line._generate_task_for_visit_line(project_id, index+1)
|
||||
task_ids.write({'parent_id': line.visit_id.task_id.id})
|
||||
self.mapped('task_id').synchronize_name_fsm()
|
||||
(self.mapped('task_id') | self.visit_ids.task_id).synchronize_name_fsm()
|
||||
|
||||
def _generate_task_for_visit_line(self, project):
|
||||
def _generate_task_for_visit_line(self, project, visit_no: int):
|
||||
self.ensure_one()
|
||||
|
||||
task = self.env['project.task'].create({
|
||||
'name': 'Temp Name',
|
||||
'description': f"Parent task for {self.order_id.name}, visit {self.name}",
|
||||
'name': f"{self.order_id.name} - Visit {visit_no} - {self.name}",
|
||||
'project_id': project.id,
|
||||
'equipment_ids': self.get_section_line_ids().mapped('equipment_ids').ids,
|
||||
'sale_order_id': self.order_id.id,
|
||||
|
|
|
|||
|
|
@ -213,7 +213,7 @@ class Task(models.Model):
|
|||
template = rec.sale_line_id and rec.sale_line_id.product_id.task_template_id
|
||||
name_parts = rec.sale_line_id and rec.sale_line_id.name.split('\n')
|
||||
title = name_parts and name_parts[0] or rec.sale_line_id.product_id.name
|
||||
if not rec.parent_id:
|
||||
if not rec.parent_id and not rec.visit_id:
|
||||
rec.name = f"{rec.sale_order_id.partner_shipping_id.name} - " \
|
||||
f"{title}"
|
||||
if template:
|
||||
|
|
|
|||
|
|
@ -122,3 +122,13 @@ class FSMVisitTest(BemadeFSMBaseTest):
|
|||
visit.task_id.action_fsm_validate()
|
||||
|
||||
self.assertEqual(len(so.order_line), 3)
|
||||
|
||||
def test_confirming_so_names_visit_properly(self):
|
||||
""" Visits should be named <SO NUMBER> - Visit <visit #> - <visit label>"""
|
||||
so, visit, sol1, sol2 = self._generate_so_with_one_visit_two_lines()
|
||||
|
||||
so.action_confirm()
|
||||
task = visit.task_id
|
||||
|
||||
supposed_name = f"{so.name} - Visit 1 - {visit.label}"
|
||||
self.assertEqual(task.name, supposed_name)
|
||||
|
|
|
|||
Loading…
Reference in a new issue