
    ?(i                         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eej(                        Zy)    )generics)Response)IsAuthenticated)timezone)	timedelta)InstallatonModels)DeactivationModels)ReactivationModels)SessionYearMixin)Qc                   j     e Zd ZegZej                  j                         Z fdZ	d Z
d Zd Z xZS )DashboardSummaryViewc                 ^    |j                   j                         | _        t        |          S )N)objectsallquerysetsuperget_queryset)selfmodel	__class__s     -/var/www/VTS_Report/Installation/dashboard.pyfilter_by_sessionz&DashboardSummaryView.filter_by_session   s%    ))+w#%%    c                    t        j                         j                         }|t        d      z
  }|t        d      z   }| j	                  |      }|j                         |j                  d      j                         |j                  d      j                          |j                  d
i | d|| d|ij                          |j                  d
i | d|| d|ddij                          |j                  d
i | d|| d|ddij                          |j                  d
i | |ij                          |j                  d
i | |ddij                          |j                  d
i | |ddij                         d		S )N   daysNew
NewRenewalRenewal__gte__ltr!   	totalnewrenewaltoday_total	today_newtoday_renewalyesterday_totalyesterday_newyesterday_renewal )r   nowdater   r   countfilter)r   r   
date_fieldtoday	yesterdaytomorrowqss          r   	get_statszDashboardSummaryView.get_stats   s   ##%I1--	9!,,##E* XXZ999.446yyIy6<<>$299 ,e$e,d#X(  uw" ,e$e,d#Xe&  uw&RYY ,e$e,d#Xi*  uw(ryy  ,,  uw&RYY ,e*  uw!* ",i. " uwE#
 #	
r   c                    t        j                         j                         }|t        d      z
  }| j	                  t
              }| j	                  t              }| j	                  t              }d }d }d }d }	d }
d } ||       ||      z    ||      z    ||       ||      z    ||      z    ||       ||      z    ||      z    |	|d	|       |	|d
|      z    |	|d|      z    |
|d	|       |
|d
|      z    |
|d|      z    ||d	|       ||d
|      z    ||d|      z    |	|d	|       |	|d
|      z    |	|d|      z    |
|d	|       |
|d
|      z    |
|d|      z    ||d	|       ||d
|      z    ||d|      z   d	S )Nr   r   c                 V    | j                  t        d             j                         S N OTRr3   r   r2   r8   s    r   r&   z1DashboardSummaryView.get_otr_stats.<locals>.totalM   s    biir
399;;r   c                 Z    | j                  t        d       d      j                         S )Nr=   r>   r   r    r@   rA   s    r   r'   z/DashboardSummaryView.get_otr_stats.<locals>.newN   s#    BIIqRyjUICIIKKr   c                 Z    | j                  t        d       d      j                         S )Nr=   r>   r"   r    r@   rA   s    r   r(   z3DashboardSummaryView.get_otr_stats.<locals>.renewalO   s#    		19*	 K Q Q SSr   c                 ^     | j                   t        d       fi ||ij                         S r<   r@   r8   fds      r   	day_totalz5DashboardSummaryView.get_otr_stats.<locals>.day_totalQ   s*    			19*(GA(G(M(M(O!Or   c                 f     | j                   t        d       fi ||iddij                         S )Nr=   r>   r!   r   r@   rE   s      r   day_newz3DashboardSummaryView.get_otr_stats.<locals>.day_newR   s0    ibiir
&Wq!f&WQV&W&]&]&__r   c                 f     | j                   t        d       fi ||iddij                         S )Nr=   r>   r!   r"   r@   rE   s      r   day_renewalz7DashboardSummaryView.get_otr_stats.<locals>.day_renewalS   s0    )"))Q2YJ*_1a&*_U^*_*e*e*g#gr   InstallationDateDeactivationDateReactivationDater%   )r   r0   r1   r   r   r   r	   r
   )r   r5   r6   install
deactivate
reactivater&   r'   r(   rH   rJ   rL   s               r   get_otr_statsz"DashboardSummaryView.get_otr_statsE   s   ##%I1--	(():;++,>?
++,>?
;KSO_g 7^eJ&77%
:KKw<#j/1C
OCw''**==
@SS$W.@%H$Z1CUKL$Z1CUKL !*<eD -?GH -?GH )2DeL(5GOP(5GOP  )2DiP(5GS T(5GS T %W.@)L$Z1CYOP$Z1CYOP "-W6H)!T!,Z9KY!W"X!,Z9KY!W"X3
 	
r   c                     t        | j                  t        d      | j                  t        d      | j                  t        d      | j                         d      S )NrM   rN   rO   )installationdeactivationreactivationotr)r   r9   r   r	   r
   rS   )r   requests     r   getzDashboardSummaryView.gets   sP     NN+<>PQ NN+=?QR NN+=?QR%%'	
  	r   )__name__
__module____qualname__r   permission_classesr   r   r   r   r   r9   rS   rZ   __classcell__)r   s   @r   r   r      s8    )* !((,,.H&*
X,
\r   r   N)rest_frameworkr   rest_framework.responser   rest_framework.permissionsr   django.utilsr   datetimer   Installation.modelsr   Deactivation.modelsr	   Reactivation.modelsr
   account.utilityr   django.db.modelsr   ListAPIViewr   r/   r   r   <module>rk      s:    # , 6 !  1 2 2 , j+X-A-A jr   