
    B
d                     "    d dl   G d d      Zy)    )*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y)HelpersuS   
    TODO: Времянка (зарефакторить и перенести)
    	person_idc                    t         j                  j                  dd|g      }g }|D ]'  }|j                  |j                  j
                         ) t         j                  j                  dd|g      }g }|D ]'  }|j                  |j                  j
                         ) t         j                  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	 	,DTWW]]+	, ((--iy5Q-R
 	6Dt445	6 $$))$k1J)K    c                     g }t         j                  j                  d      }|7t         j                  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   s[     %%))y)9'',,5LcS[S^S^SdSd4e,fHr!   Nc                     t         j                  j                  d      }| j                  |      }| j	                  ||j
                        }t        |      dk(  ry| j                  |      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'   sd       $$2D$E22<@77P	y>Q((33r!   c                 F    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   sM    
 %G9%%l"G9%%<'G9%%Nr!   c                     g }|D ]6  }||j                   j                  v s|j                  |j                         8 |S )ux   
        Поиск подходящих инженеров по паттерну по email должности
        )emailr   r   r   )r   r6   r1   r7   r   s        r   r0   z'Helpers._get_engineers_by_email_patternC   sD    
 	 	1D$*****  0	1 r!   itemsc                 ,    dd l }|j                  |      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     $$ $ $r!   r   N)cmf.includer   r>   r!   r   <module>rL      s    M$ M$r!   