@@ -58,35 +58,36 @@ def copy_assemblies(
5858 job_ending_date : str ,
5959 ):
6060 for assembly in assemblies :
61- for _ in range (int (assembly .meta_data .quantity )):
62- new_assembly = Assembly (assembly .to_dict (), parent if isinstance (parent , Job ) else parent .job )
63- #
64- # if isinstance(parent, Job):
65- # parent_starting_date = datetime.strptime(parent.starting_date, "%Y-%m-%d %I:%M %p")
66- # elif isinstance(parent, Assembly):
67- # parent_starting_date = datetime.strptime(parent.workspace_data.starting_date, "%Y-%m-%d %I:%M %p")
68- # else:
69- # parent_starting_date = datetime.now()
70-
71- # calculated_starting_date = parent_starting_date - timedelta(days=7.0)
72- # calculated_ending_date = calculated_starting_date + timedelta(days=assembly.workspace_data.expected_time_to_complete)
73- #
74- # new_assembly.workspace_data.starting_date = calculated_starting_date.strftime("%Y-%m-%d %I:%M %p")
75- # new_assembly.workspace_data.ending_date = calculated_ending_date.strftime("%Y-%m-%d %I:%M %p")
76-
77- new_assembly .meta_data .quantity = 1
78-
79- if isinstance (parent , Job ):
80- parent .add_assembly (new_assembly )
81- else :
82- parent .add_sub_assembly (new_assembly )
83-
84- if assembly .laser_cut_parts :
85- self .copy_laser_cut_parts (assembly .laser_cut_parts , new_assembly )
86- if assembly .components :
87- self .copy_components (assembly .components , new_assembly )
88- if assembly .sub_assemblies :
89- self .copy_assemblies (assembly .sub_assemblies , new_assembly , job_ending_date )
61+ new_assembly = Assembly (assembly .to_dict (), parent if isinstance (parent , Job ) else parent .job )
62+ new_assembly .laser_cut_parts .clear ()
63+ new_assembly .components .clear ()
64+ new_assembly .structural_steel_items .clear ()
65+ new_assembly .sub_assemblies .clear ()
66+ #
67+ # if isinstance(parent, Job):
68+ # parent_starting_date = datetime.strptime(parent.starting_date, "%Y-%m-%d %I:%M %p")
69+ # elif isinstance(parent, Assembly):
70+ # parent_starting_date = datetime.strptime(parent.workspace_data.starting_date, "%Y-%m-%d %I:%M %p")
71+ # else:
72+ # parent_starting_date = datetime.now()
73+
74+ # calculated_starting_date = parent_starting_date - timedelta(days=7.0)
75+ # calculated_ending_date = calculated_starting_date + timedelta(days=assembly.workspace_data.expected_time_to_complete)
76+ #
77+ # new_assembly.workspace_data.starting_date = calculated_starting_date.strftime("%Y-%m-%d %I:%M %p")
78+ # new_assembly.workspace_data.ending_date = calculated_ending_date.strftime("%Y-%m-%d %I:%M %p")
79+
80+ if isinstance (parent , Job ):
81+ parent .add_assembly (new_assembly )
82+ else :
83+ parent .add_sub_assembly (new_assembly )
84+
85+ if assembly .laser_cut_parts :
86+ self .copy_laser_cut_parts (assembly .laser_cut_parts , new_assembly )
87+ if assembly .components :
88+ self .copy_components (assembly .components , new_assembly )
89+ if assembly .sub_assemblies :
90+ self .copy_assemblies (assembly .sub_assemblies , new_assembly , job_ending_date )
9091
9192 def copy_nests (self , nests : list [Nest ], job : Job ):
9293 for nest in nests :
@@ -100,10 +101,8 @@ def copy_components(self, components: list[Component], assembly: Assembly):
100101
101102 def copy_laser_cut_parts (self , laser_cut_parts : list [LaserCutPart ], assembly : Assembly ):
102103 for part in laser_cut_parts :
103- for _ in range (int (part .inventory_data .quantity )):
104- new_part = LaserCutPart (part .to_dict (), self .laser_cut_inventory )
105- new_part .inventory_data .quantity = 1
106- assembly .add_laser_cut_part (new_part )
104+ new_part = LaserCutPart (part .to_dict (), self .laser_cut_inventory )
105+ assembly .add_laser_cut_part (new_part )
107106
108107 def add_job (self , job : Job ) -> Job :
109108 new_job = self .deep_split_job_copy (job )
0 commit comments