feat:assign appointments from opportunity
This commit is contained in:
		
							parent
							
								
									c1bc0f9dfb
								
							
						
					
					
						commit
						bfe18d6085
					
				| @ -106,6 +106,16 @@ class Appointment(Document): | ||||
|         self.lead = lead.name | ||||
| 
 | ||||
|     def auto_assign(self): | ||||
| 		# If the latest opportunity is assigned to someone | ||||
| 		# Assign the appointment to the same | ||||
| 		existing_assignee = self.get_assignee_from_latest_opportunity() | ||||
| 		if existing_assignee: | ||||
| 			add_assignemnt({ | ||||
| 				'doctype':self.doctype | ||||
| 				'name':self.name | ||||
| 				'assign_to':existing_assignee | ||||
| 			}) | ||||
| 			return | ||||
|         if self._assign: | ||||
|             return | ||||
|         available_agents = _get_agents_sorted_by_asc_workload( | ||||
| @ -120,6 +130,25 @@ class Appointment(Document): | ||||
|                 }) | ||||
|             break | ||||
| 
 | ||||
|     def get_assignee_from_latest_opportunity(self): | ||||
|         if not self.lead: | ||||
|             return None | ||||
|         if not frappe.db.exists('Lead', self.lead): | ||||
|             return None | ||||
|         opporutnities = frappe.get_list( | ||||
|             'Opportunity', | ||||
|             filters={ | ||||
|                 'party_name': self.lead, | ||||
|             }, | ||||
|             order_by='creation desc') | ||||
|         latest_opportunity = frappe.get_doc( | ||||
|             'Opportunity', opporutnities[0].name) | ||||
|         assignee = latest_opportunity._assign | ||||
|         if not assignee: | ||||
|             return None | ||||
|         assignee = frappe.parse_json(assignee)[0] | ||||
|         return assignee | ||||
| 
 | ||||
|     def create_calendar_event(self): | ||||
|         if self.calendar_event: | ||||
|             return | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user