
    Ig                     J    d dl Z d dlT d dlmZ d dlmZ  G d de          ZdS )    N)*)CmfActiveEntityfieldsc                   t     e Zd Z fdZddZd Zd Zd Zd Z fdZ	d	d
 fd
Z
ed fd	            Z xZS )CmfLeadc                 D     t          t          |           j        |i |S N)superr   delete)selfargskwargs	__class__s      !./modules/sale/models/cmf_lead.pyr   zCmfLead.delete
   s%    *uWd##*D;F;;;    Nc                    | j         j        r	||| _         | j         j        dk    rdn| j         j        }t                              | | j        || j                   }| j         |_        | j        r| j        |_        n| j        r"t          	                    | j        d          }nt          	                    d          }| j
        s| j        |_        | j        |_        |                                 ||_        || _        | j        r| j        |_        nt                              | j
        | j        | j        | j                  }|                                 |                                 |j        j        |j        j                            |j        d	                              d
dd          z   |_        |j                            |           |                                 |S )Nu   Воронка продажu   Новая сделка)leadtextnameparentcompany)r   typeperson)r   )r   phoneemailr    -u    №   )r   is_nullr   modelsCmfDealr   pipeliner   lead_company_name
CmfCompanylead_contact_namelead_email_nameemail1lead_phone_namephone1savecontacts	CmfPersonvaluecodereplacecode_prefixappend)r   r   	deal_namedealr   contacts         r   create_dealzCmfLead.create_deal   s    ; 	!6#5 DK151AEb1b1b--hlhshx	~~4diiPTP[~\\< 	#<DLL % ; ++1Gi+XX +++::) 6!%!5!%!5LLNNN"DL"DL= 	* MDMM&&+**	 ' & &G
 LLNNNIIKKK	$)/*A*A$BRTV*W*W*_*_`cekmn*o*ooDIM  )))		r   c                 R    | j         r| j        r|                                  dS dS dS )uJ  
        TODO: Олег: сделать из этой функции конструктор сделок на основе лида с переопределением через kwargs
        TODO: Вещей вроде CmfMailbox._create_deal(self, lead) не должно существовать в принципе.
        N)is_newr   r6   r   s    r   
_calc_dealzCmfLead._calc_deal7   sC     ; 	4; 		 	 	 	r   c                    | j         rd S d }| j        rct          j                            | j        j        ddg          x}r3| j        r| j        |j        k    rd }ns| j        r| j        |j	        k    rd }nY| j        rRdd| j        gg}| j        r|
                    dd| j        g           t          j                            |ddg          }|r/| j         
                    |           |j        r|j        | _        d S d S d S )Nr   r   r   ==r   )filterr   )r,   r)   r!   r-   get_by_phoner.   r&   r   r'   r   r2   getr   )r   r   _filters      r   _calc_contactzCmfLead._calc_contact@   sD   = 	F 	W  )66t7K7Q[dfmZn6ooov ") "d.D.S.S!FF) "d.Bfl.R.R!F! 	Wt';<=G% Gd.DEFFF%)))WAU)VVF 	.M  (((~ .%~	. 	.. .r   c                     | j         rd S | j        r1t          j                            | j        j                  | _         d S d S )N)r   )r   r$   r!   r%   r?   r.   r9   s    r   _calc_companyzCmfLead._calc_companyW   sN    < 	F! 	T!,00d6L6R0SSDLLL	T 	Tr   c                 ^    | j         rd S | j        r| j        r| j        j         | _         d S d S d S r
   )r   r8   r   r9   s    r   
_calc_namezCmfLead._calc_name]   sH    9 	F; 	)4; 	)(DIII	) 	) 	) 	)r   c                 N    t                                                      g dz   S )N)r,   r   r$   r&   r'   r)   r   )r   save_preload_fields)r   r   s    r   rG   zCmfLead.save_preload_fieldsc   s/    ww**,, 0 0 0  	r   r   )depthc                ^   |                                   |                                  |                                  | j        rA| j                                         t          j                            g dd          | _	        | j
        j        rl| j
        re| j        s^t          j                            dd| j        g          D ]5}|j
        j        r'| j
        |_
        |j        r|                                 6|                                   t%                      j        |d|i|}|S )N)r/   r<   salesT)r=   cache_inmemorylead_idr<   )r=   rH   )rA   rC   rE   r8   
alarm_dateset_nowr!   CmfActivityr?   activityr   
is_changedr"   listidr    r+   r:   r   )r   rH   r   r   r4   resr   s         r   r+   zCmfLead.saveh   s'   ; 	hO##%%%".22:Q:Q:Qbf2ggDM<" 	$t| 	$DK 	$++ItTW3M+NN $ $<' $#'<DL $		egglD8888
r   c                 ^    |dk    r
|sg }|g dg} t                      j        |f||d|S )Nr   )zstatus.status_typez!=CLOSED)r=   models_list)r   field_options_list)clsrelation_field_namer=   rW   r   r   s        r   rX   zCmfLead.field_options_listy   sU    (** DDDEF)uww)*=pfZeppiopppr   r
   )NN)__name__
__module____qualname__r   r6   r:   rA   rC   rE   rG   r+   classmethodrX   __classcell__)r   s   @r   r   r      s       < < < < <( ( ( (T  . . ..T T T) ) )    
 !"       " q q q q q [q q q q qr   r   )phonenumberscmf.includecommon.models.cmf_active_entityr   cmfr   r    r   r   <module>re      s            ; ; ; ; ; ;      wq wq wq wq wqo wq wq wq wq wqr   