U
    VcN                     @   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   creater   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+   r2   Znumberr1   Z	cmf_alertZpersonZCmfPluginSMSGateZget_local_smsgater,   )r	   r
   r   r/   r)   r'   r1   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%   r0   r3   r   r   r   r   r      s8   












r   N)Zcmf.includeZ modules.helpdesk.helpers.helpersr   r   r   r   r   r   <module>   s   