U
    qcS                     @   sX   d dl Z d dlT d dlmZ d dlmZmZ d dlmZ d dl	m	Z
 G dd deZdS )	    N)*)	BaseModel)
CmfM2MBase
CmfNumeric)CmfActiveEntity)datetimec                       s   e Zd Zedddd fdd
Z fddZ fdd	Z fd
dZed fdd	Z fddZ	 fddZ
dd Zedd Zedd Z  ZS )
CmfCompany Nqueryfieldsfilterc                   sF   dddd gdddgg}ddddd	d
dg|d< t  j||||d|S )NORis_internal==FnametextcodeZphone1Zphone2Zemail1Zemail2Zfields_filterr
   )supersearch)clsr   r   r   argskwargs	__class__ &./modules/person/models/cmf_company.pyr      s       zCmfCompany.searchc                    s,   |  dg | jr(t jf d|i| d S )Nr   r   )load_fieldsr   r   all_place_notify)selfr   r   r   r   r   r      s    zCmfCompany.all_place_notifyc                    s   t   ddg S )Nzdeals.status.status_typer   )r   save_preload_fieldsr   r   r   r   r       s    zCmfCompany.save_preload_fieldsc                    sb   | j js| j jrT| jsT| j r6| j jdkrPtddd ntjjdddgdgd| _ d S t	 
  d S )	NZsalesuP   Неправильный вид деятельности для компанииT)abortr   r   r   r   r   )ZactivityZis_null
is_changedr   r   Z	cmf_alertmodelsZCmfActivitygetr   _calc_activityr!   r   r   r   r'      s    zCmfCompany._calc_activityc                    sd   |dkrH|sg }|rH|rH| ddkrH|dd|gddddgddd ggg}t j|f|||d|S )	Npersonsr   FZ
company_idr   r   Z
user_local)object_fieldsr   	object_id)r&   r   field_options_list)r   Zrelation_field_namer)   r   r*   r   r   r   r   r+   +   s"      zCmfCompany.field_options_listc                    sJ   t  j||}| jjrF| jjrF| jjD ]}|jjdkr8q&|dg q&|S )NZCLOSEDcompany)	r   saveZdealsvaluer   r$   statusZstatus_typeupdate)r   r   r   resZdealr   r   r   r-   8   s    zCmfCompany.savec                    sT   |  ddg | jD ]}d |_|  q| jD ]}d |_|  q.t j|| d S )Nzpersons.companyztasks.company)r   r(   r,   r-   Ztasksr   delete)r   r   r   personZtaskr   r   r   r2   A   s    



zCmfCompany.deletec                 C   sV   | j r
d S | jdkrR| jsRd| _ | jjdd }| rR|  j dt| 7  _ d S )Nr3   u   Новый клиент-    )r   typer   r   r.   
rpartitionisdigitint)r   Znumr   r   r   
_calc_nameN   s    zCmfCompany._calc_namec              
   C   sD   t jtjsg S ttjd}t| W  5 Q R  S Q R X d S )Nr)	ospathexistsconfigDEMO_IDS_FILEopenjsonloadsread)r   fr   r   r   load_demo_dataX   s    zCmfCompany.load_demo_datac              
   C   s*  t   tjtjr(tjtjs6W 5 Q R  d S ttjd}t	
| }W 5 Q R X g }|D ]j}tt|dd  }||krd|| |jdd|gdD ]*}t|tjr|j  |jrq|  qqdtjjddd	gdgd
D ]}d|_|jdd qtdtjgd ttj W 5 Q R X d S )Nr<   :r   idIN)r   r   ZLIKEu   Демо-данные%r#   r	   T)Z	only_dataclear_demo_data)Zevent_persons)ZcmfutilZdisable_aclr=   r>   r?   r@   rA   isfilerB   rC   rD   rE   varsr%   splitappendlist
isinstanceZ
CmfProjectZ
is_defaultloadr2   ZCmfDocumentr   r-   Zcmf_emit_eventgZcurrent_userremove)r   rF   ZidsZ_modelsZ_idZmodelobjdocr   r   r   rK   _   s*    

zCmfCompany.clear_demo_data)NNN)__name__
__module____qualname__classmethodr   r   r    r'   r+   r-   r2   r;   rG   rK   __classcell__r   r   r   r   r   
   s   	

r   )shutilZcmf.includeZcmf.models.base_modelr   Zcmf.fields.base_fieldsr   r   Zcommon.models.cmf_active_entityr   r   Zdtr   r   r   r   r   <module>   s   