B
    CDb                 @   s   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ G dd dejejejejeZdS )    N)mixins)status)Response)
Membership)MyUser)Company)TempUser)Employee)serializers)CloudViewSet)NoneSerializer)get_company_queryc               @   sL   e Zd ZeZej Zej	ej	ej
dZdd Zdd Zdd Zdd	 Zd
S )CompanyViewSet)listZretrieveupdatec             C   s   | j | jtS )N)serializer_dictgetactionr   )self r   =G:\easytimepro\master/mysite/cloud\api\views\company_views.pyget_serializer_class    s    z#CompanyViewSet.get_serializer_classc             C   s   t | j}|S )N)r   request)r   querysetr   r   r   get_queryset#   s    
zCompanyViewSet.get_querysetc       	      O   s
  |   }|rt|dr|j}|js4tdditjdS |j}|jd}|ryt	j	
|d ||d< W nT tk
r   yt	j	
|dd|d< W n" tk
r   tdd	itjdS X Y nX |  | j||jd
}|jdd | | t|jS ntdditjdS d S )NusermessagezYou don't have permission.)r   subscription_end_datez%Y-%m-%d %H:%M:%Sz%Y-%m-%dz%Y-%m-%d 23:59:59zHThe subscription end date format error, The format should be '%Y-%m-%d'.)dataT)Zraise_exception)
get_objecthasattrr   Zis_super_adminr   r   ZHTTP_403_FORBIDDENr   r   datetimestrptime
ValueErrorstrftimeHTTP_400_BAD_REQUESTZsaveZget_serializerZis_validZperform_update)	r   r   argskwargsinstancer   r   r   Z
serializerr   r   r   r   '   s:    

zCompanyViewSet.updatec       	      O   s   |   }|j}|dkr(tdditjdS tjj|d  t	jj|d  t
jj|d}x<|D ]4}tjj|jjd}| r`tjj|jjd  q`W | | ttjS )	Ndefaultr   z,This is Default company, you can not delete.)r   )Zcompany_name__iexact)Zcompany__name__iexact)Zcompany)id)r   namer   r   r%   r   objectsfilterdeleter	   r   r   r   r*   existsZperform_destroyZHTTP_202_ACCEPTED)	r   r   r&   r'   r(   Zinstance_nameZ
membershipmr   r   r   r   destroyJ   s    

zCompanyViewSet.destroyN)__name__
__module____qualname__r   Zmodelr,   allr   r
   ZCompanySerializerZCompanyEditSerializerr   r   r   r   r1   r   r   r   r   r      s   

#r   )r!   Zrest_frameworkr   r   Zrest_framework.responser   Zmysite.base.modelsr   Zmysite.accounts.modelsr   Zmysite.cloud.modelsr   r   Zmysite.personnel.modelsr	   Zmysite.cloud.apir
   Zmysite.cloud.utilsr   Zmysite.cloud.util_serializersr   r   ZListModelMixinZRetrieveModelMixinZUpdateModelMixinZDestroyModelMixinr   r   r   r   r   <module>   s"   