U
    $-d                     @   s   d dl T G dd dZdS )    )*c                   @   sh   e Zd ZdZeedddZedd Zeddd	Zedd
dZ	edd Z
eedddZdS )HelpersuS   
    TODO: Времянка (зарефакторить и перенести)
    )	person_idc           	      C   sx   t jjdd|gd}g }|D ]}||jj qt jjdd|gd}g }|D ]}||jj qLt jjdd|gd}|S )uo   
        Получает все продукты по сделкам в разрезе клиента
        Zprimary_contact_id=filterZdeal_idINid)	modelsZCmfDeallistappendr	   valueZCmfDealItemsZ
product_idZ
CmfProduct)	clsr   ZdealsZ	deals_idsZdealZ
deal_itemsZproduct_idsitemZproducts r   %./modules/helpdesk/helpers/helpers.pyget_products_from_deals   s    zHelpers.get_products_from_dealsc                 C   s6   g }t jjdd}|d k	r2t jjdd|jjgd}|S )NZsupport)codeZcmf_model_activity_idr   r   )r
   ZCmfActivitygetZ	CmfStatusr   r	   r   )r   ZstatusesZactivityr   r   r   get_statuses   s
    zHelpers.get_statusesNc                 C   s@   t jjdd}| |}| ||j}t|dkr6dS | |S )u?   
        Ищет инженера для тикета
        zproject.helpdesk)Zlogic_prefixr   N)r
   Z
CmfProjectr   _get_pattern_by_product_name_get_engineers_by_email_pattern	executorslen_get_random_from_list)r   product_nameZprojpattern	engineersr   r   r   find_engineer_to_attach'   s    
zHelpers.find_engineer_to_attachc                 C   sB   d}d|krd| S d|kr(d| S d|kr:d| S |S dS )u`   
        Определение паттерна из названия продукта
        supZBilling5zbill5.ZXGEZBilling4zbill4.Nr   )r   r   r   r   r   r   r   4   s    


z$Helpers._get_pattern_by_product_namec                 C   s*   g }|D ]}||j jkr||j q|S )ux   
        Поиск подходящих инженеров по паттерну по email должности
        )Zemailr   r   r   )r   r   r   r   r   r   r   r   r   C   s
    z'Helpers._get_engineers_by_email_pattern)itemsc                 C   s   dd l }||S )Nr   )randomchoice)r   r    r!   r   r   r   r   N   s    zHelpers._get_random_from_list)N)N)__name__
__module____qualname____doc__classmethodstrr   r   r   r   r   r   r   r   r   r   r   r      s   



r   N)Zcmf.includer   r   r   r   r   <module>   s   