B
    EfN                 @   s&   d dl T d dlmZ G dd dZdS )    )*)Helpersc               @   s   e Zd Zedd Zedd Zedd Zedd Zed	d
 Zedd Z	edd Z
edd Zedd Zedd Zedd Zedd Zedd Zedd ZdS )DeskApic             O   s   t jj||}|S )u1   
        Получение тикета
        )modelsCmfTaskget)clsargskwargsticket r   !./modules/helpdesk/api/deskapi.py
get_ticket   s    zDeskApi.get_ticketc             O   s   t jj||}|S )u-   
        Список тикетов
        )r   r   list)r   r	   r
   Zticketsr   r   r   get_tickets_list   s    zDeskApi.get_tickets_listc             O   s   t jj||}|S )u/   
        Создание тикета
        )r   r   create)r   r	   r
   r   r   r   r   create_ticket   s    zDeskApi.create_ticketc             O   s"   t jj|d d}|j||}|S )Nfilter)r   )r   r   r   update)r   r	   r
   r   resultr   r   r   update_ticket   s    zDeskApi.update_ticketc             O   s   t jj||d f|}|S )uO   
        Получение комментариев по тикету
        fields)r   
CmfCommentr   )r   r	   r
   Zcommentsr   r   r   get_ticket_comments%   s    zDeskApi.get_ticket_commentsc             O   s   t jj||}|S )uI   
        Добавить комментарий к тикету
        )r   r   r   )r   r	   r
   commentr   r   r   add_ticket_comment-   s    zDeskApi.add_ticket_commentc             O   s"   t jj|d d}|j||}|S )uI   
        Изменить комментарий к тикету
        r   )r   )r   r   r   r   )r   r	   r
   r   r   r   r   r   update_ticket_comment5   s    zDeskApi.update_ticket_commentc             O   s   t jj||}|S )u7   
        Аттач файла к тикету
        )r   ZCmfAttachmentr   )r   r	   r
   Zattachr   r   r   add_attachment>   s    zDeskApi.add_attachmentc             O   s   | j ||S )uE   
        Обновление оценки по тикету
        )r   )r   r	   r
   r   r   r   save_ticket_raitingF   s    zDeskApi.save_ticket_raitingc             O   s&   | dd}|dk	r"t|}|S dS )u`   
        Получение доступных продуктов для клиента
        	person_idN)r   r   Zget_products_from_deals)r   r	   r
   r   Zproductsr   r   r   get_available_productsM   s
    
zDeskApi.get_available_productsc             O   s   t  }|S )u>   
        Получение всех статусов
        )r   get_statuses)r   r	   r
   Zstatusesr   r   r   r!   Y   s    zDeskApi.get_statusesc             O   s   | dd}t|}|S )u;   
        Получение исполнителя
        product_nameN)r   r   Zfind_engineer_to_attach)r   r	   r
   r"   r   r   r   r   get_executorsa   s    
zDeskApi.get_executorsc       
      O   s   | dd}| dd}| dd}| dd}|dk	r|dk	rtjj |d}tjj |d}tj }	|	|jj||jj| dS dS )	uI   
        Отправка уведомления на почту
        from_personN	to_personsubjectmessage)idTF)r   r   	CmfPersonZCmfPluginMailBoxZget_local_mailboxsend_messageloginvalue)
r   r	   r
   Zfrom_person_idto_person_idr&   r'   r$   r%   Zmail_boxr   r   r   send_notify_by_emailj   s    
zDeskApi.send_notify_by_emailc             O   s   | dd}| dd}|dk	r|tjj |dddddgd	}|jjpH|jj}|sbtd
t d dS tj	 }|
|| dS dS )uK   
        Отправка уведомления через смс
        r%   Nr'   r+   Znotify_emailZ
notify_smsphonephone_mobile)r(   r   u4   SMS уведомление пользователю u_    не отправлено, не указан номер мобильного телефона.FT)r   r   r)   r0   Znumberr/   Z	cmf_alertZpersonZCmfPluginSMSGateZget_local_smsgater*   )r   r	   r
   r-   r'   r%   r/   Zsms_gater   r   r   send_notify_by_sms}   s    
zDeskApi.send_notify_by_smsN)__name__
__module____qualname__classmethodr   r   r   r   r   r   r   r   r   r    r!   r#   r.   r1   r   r   r   r   r      s   		r   N)Zcmf.includeZ modules.helpdesk.helpers.helpersr   r   r   r   r   r   <module>   s   