
    Ef                     (    d dl T  G d d          ZdS )    )*c                       e Zd ZdZedefd            Zed             Zedd            Zedd            Z	ed             Z
ed	efd
            ZdS )HelpersuS   
    TODO: Времянка (зарефакторить и перенести)
    	person_idc                 p   t           j                            dd|g          }g }|D ]!}|                    |j        j                   "t           j                            dd|g          }g }|D ]!}|                    |j        j                   "t           j                            dd|g          }|S )uo   
        Получает все продукты по сделкам в разрезе клиента
        primary_contact_id=filterdeal_idINid)	modelsCmfDeallistappendr   valueCmfDealItems
product_id
CmfProduct)	clsr   deals	deals_idsdeal
deal_itemsproduct_idsitemproductss	            %./modules/helpdesk/helpers/helpers.pyget_products_from_dealszHelpers.get_products_from_deals   s     ##,@#y+Q#RR	 	, 	,DTW]++++ (--iy5Q-RR
 	6 	6Dt45555$))$k1J)KK    c                     g }t           j                            d          }|-t           j                            dd|j        j        g          }|S )Nsupport)codecmf_model_activity_idr	   r
   )r   CmfActivityget	CmfStatusr   r   r   )r   statusesactivitys      r   get_statuseszHelpers.get_statuses   sU     %))y)99',,5LcS[S^Sd4e,ffHr!   Nc                     t           j                            d          }|                     |          }|                     ||j                  }t          |          dk    rdS |                     |          S )u?   
        Ищет инженера для тикета
        zproject.helpdesk)logic_prefixr   N)r   
CmfProjectr'   _get_pattern_by_product_name_get_engineers_by_email_pattern	executorslen_get_random_from_list)r   product_nameprojpattern	engineerss        r   find_engineer_to_attachzHelpers.find_engineer_to_attach'   sr      $$2D$EE22<@@77PP	y>>Q4((333r!   c                 L    d}d|k    rd| S d|k    rd| S d|k    rd| S |S )u`   
        Определение паттерна из названия продукта
        supBilling5zbill5.XGEBilling4zbill4. )r   r4   r6   s      r   r/   z$Helpers._get_pattern_by_product_name4   sY    
 %%%G%%%l""%G%%%<''%G%%%Nr!   c                 d    g }|D ]*}||j         j        v r|                    |j                   +|S )ux   
        Поиск подходящих инженеров по паттерну по email должности
        )emailr   r   r   )r   r6   r1   r7   r   s        r   r0   z'Helpers._get_engineers_by_email_patternC   sE    
 	 	1 	1D$****  000r!   itemsc                 4    dd l }|                    |          S )Nr   )randomchoice)r   rA   rC   s      r   r3   zHelpers._get_random_from_listN   s    }}U###r!   )N)__name__
__module____qualname____doc__classmethodstrr    r+   r8   r/   r0   r   r3   r>   r!   r   r   r      s              [&   [ 
4 
4 
4 [
4    [   [ $$ $ $ $ [$ $ $r!   r   N)cmf.includer   r>   r!   r   <module>rL      sM       M$ M$ M$ M$ M$ M$ M$ M$ M$ M$r!   