B
    Ef                 @   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   s   t jjdd|gd}g }x|D ]}||jj qW t jjdd|gd}g }x|D ]}||jj qRW t 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 }x$|D ]}||j jkr
||j q
W |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   