U
    ù`ªe®  ã                   @   s<   d dl Z d dlT d dlmZ d dlmZ G dd„ deƒZdS )é    N)Ú*)ÚCmfActiveEntity©Úfieldsc                       sv   e Zd Z‡ fdd„Zddd„Zdd„ Zdd	„ Zd
d„ Zdd„ Z‡ fdd„Z	ddœ‡ fdd„
Z
ed‡ fdd„	ƒZ‡  ZS )ÚCmfLeadc                    s   t t| ƒj||ŽS ©N)Úsuperr   Údelete)ÚselfÚargsÚkwargs©Ú	__class__© ú!./modules/sale/models/cmf_lead.pyr	   
   s    zCmfLead.deleteNc                 C   s"  | j jr|d k	r|| _ | j jdkr&dn| j j}tj| | j|| j d}| j |_| jr\| j|_nN| jrttj	| jdd}ntj	dd}| j
s–| j|_| j|_| ¡  ||_|| _| jrº| j|_n\tj| j
| j| j| jd}| ¡  | ¡  |jj|jj |jd	¡ d
dd¡ |_|j |¡ | ¡  |S )Nu   Ð’Ð¾Ñ€Ð¾Ð½ÐºÐ° Ð¿Ñ€Ð¾Ð´Ð°Ð¶u   ÐÐ¾Ð²Ð°Ñ ÑÐ´ÐµÐ»ÐºÐ°)ZleadÚtextÚnameÚparentÚcompany)r   ÚtypeÚperson)r   )r   ZphoneÚemailr   Ú ú-u    â„–é   )r   Úis_nullr   ÚmodelsÚCmfDealr   Zpipeliner   Úlead_company_nameÚ
CmfCompanyÚlead_contact_nameÚlead_email_nameZemail1Úlead_phone_nameZphone1ÚsaveÚcontactsÚ	CmfPersonÚvalueÚcodeÚreplaceZcode_prefixÚappend)r
   r   Z	deal_nameÚdealr   Zcontactr   r   r   Úcreate_deal   s<    

ü&zCmfLead.create_dealc                 C   s   | j r| jr|  ¡  dS )uJ  
        TODO: ÐžÐ»ÐµÐ³: ÑÐ´ÐµÐ»Ð°Ñ‚ÑŒ Ð¸Ð· ÑÑ‚Ð¾Ð¹ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ ÐºÐ¾Ð½ÑÑ‚Ñ€ÑƒÐºÑ‚Ð¾Ñ€ ÑÐ´ÐµÐ»Ð¾Ðº Ð½Ð° Ð¾ÑÐ½Ð¾Ð²Ðµ Ð»Ð¸Ð´Ð° Ñ Ð¿ÐµÑ€ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸ÐµÐ¼ Ñ‡ÐµÑ€ÐµÐ· kwargs
        TODO: Ð’ÐµÑ‰ÐµÐ¹ Ð²Ñ€Ð¾Ð´Ðµ CmfMailbox._create_deal(self, lead) Ð½Ðµ Ð´Ð¾Ð»Ð¶Ð½Ð¾ ÑÑƒÑ‰ÐµÑÑ‚Ð²Ð¾Ð²Ð°Ñ‚ÑŒ Ð² Ð¿Ñ€Ð¸Ð½Ñ†Ð¸Ð¿Ðµ.
        N)Úis_newr   r+   ©r
   r   r   r   Ú
_calc_deal7   s    zCmfLead._calc_dealc                 C   sÂ   | j r
d S d }| jr`tjj| jjddgd }r | jrH| j|jkrHd }q | jr | j|j	kr d }n@| jr dd| jgg}| jrŒ| 
dd| jg¡ tjj|ddgd}|r¾| j  
|¡ |jr¾|j| _d S )Nr   r   r   ú==r   )Úfilterr   )r$   r"   r   r%   Zget_by_phoner&   r    r   r!   r   r)   Úgetr   )r
   r   Z_filterr   r   r   Ú_calc_contact@   s$    zCmfLead._calc_contactc                 C   s(   | j r
d S | jr$tjj| jjd| _ d S )N)r   )r   r   r   r   r1   r&   r-   r   r   r   Ú_calc_companyW   s    zCmfLead._calc_companyc                 C   s$   | j r
d S | jr | jr | jj | _ d S r   )r   r,   r   r-   r   r   r   Ú
_calc_name]   s    zCmfLead._calc_namec                    s   t ƒ  ¡ dddddddg S )Nr$   r   r   r    r!   r"   r   )r   Úsave_preload_fieldsr-   r   r   r   r5   c   s         þzCmfLead.save_preload_fieldsr   )Údepthc                   s°   |   ¡  |  ¡  |  ¡  | jr@| j ¡  tjjdddgdd| _	| j
jrŽ| j
rŽ| jsŽtjjdd| jgdD ]"}|j
jrj| j
|_
|jrj| ¡  qj|  ¡  tƒ j|d|i|—Ž}|S )	Nr'   r/   ZsalesT)r0   Zcache_inmemoryZlead_id)r0   r6   )r2   r3   r4   r,   Z
alarm_dateZset_nowr   ZCmfActivityr1   Zactivityr   Z
is_changedr   ÚlistÚidr   r#   r.   r   )r
   r6   r   r   r*   Úresr   r   r   r#   h   s    

zCmfLead.savec                    s8   |dkr|sg }|dddgg}t ƒ j|f||dœ|—ŽS )Nr   zstatus.status_typez!=ZCLOSED)r0   Úmodels_list)r   Úfield_options_list)ÚclsZrelation_field_namer0   r:   r   r   r   r   r;   y   s
    zCmfLead.field_options_list)N)NN)Ú__name__Ú
__module__Ú__qualname__r	   r+   r.   r2   r3   r4   r5   r#   Úclassmethodr;   Ú__classcell__r   r   r   r   r      s   
*	r   )ZphonenumbersZcmf.includeZcommon.models.cmf_active_entityr   Zcmfr   r   r   r   r   r   Ú<module>   s   