B
    GDb0                 @   s  d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZmZmZ d dlmZmZmZmZmZmZmZmZmZmZ d dlmZmZ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(Z)G dd de'e	j*e%j+Z,dS )    N)Count)status)Response)mixinsserializers)datetime2stamp
get_senderpaging)
UNREADAPPLICANT_CATEGORYSUB_CATEGORYCATEGORY_LEAVECATEGORY_OVERTIMECATEGORY_MANUALCATEGORY_TRAININGCATEGORY_SCHEDULECATEGORY_ANNOUNCEMENTCATEGORY_ATTENDANCE)get_sqlp_query	p_execute)models_choices)get_func_key)AppNotification)viewsets)APPCustomizeResponseModelMixinc               @   s(   e Zd ZejdddZejdddZdS )PullNotificationSerializerFT)requiredZ
allow_nullN)__name__
__module____qualname__r   ZIntegerFieldcategorypage_num r#   r#   NG:\easytimepro\master/mysite/mobile\api_rest\views\view_mobile_notification.pyr      s   r   c               @   s   e Zd ZeZdd ZdS )PullNotificationViewc             O   sp  | j |jd}| r`|j}|j}|j}|j}|d}	|dd}
|	r6tt	}|	g d}t
ddd|	d	t|j d	 d
d}t||
d}t|}g }|rdd |D }|	d	t|j d	 dtj dd}t
ddd|d}t| x^|D ]4}t||d}|	tttfkr|d |d |d dddddddd
}|d rt|d }|d }|tjfkrvtj}n|tjfkrtj}||d |d |d |d |d ||d d  |d!  | q|	t!fkr|d |d |d ddddddd"	}|d r.t|d }|r|d }|tjfkr8tj}n|tjfkrLtj}|t"t|d ||d# |d |d ||d d$ |d!  | q|	t#fkrV|d |d |d dddddddd%
}|d rFt|d }|d }|tjfkrtj}n|tjfkrtj}||d |d& p$d'|d( |d |d ||d d) |d!  | q|	t$fkr|d |d |d ddd||d* d|d* t%|d d+}|d rt|d }|| |d!  | q|	t&fkr|d |d |d d||d* d|d* |d t%|d d,}|d!  | qW ntt'}t(j)j*|t+d-,d-dj.t/dd.}dd/d|d d0d1d2d3d|d2 d0d1d4d5d|d4 d0d1d6d7d|d6 d0d1d8d9d|d8 d0d1d:d;d|d: d0d1d<d=d|d< d0d1d>d?d|d> d0d1g}x6|D ].}|d d }|| }|d@ |d@< |||< q W t0|t1j2dAS t0|j3t1j4dAS )BN)datar!   r"      )r!   itemssqlZnotificationmobile")r!   receiver)ZsqlidZappparamsnotification_timec          	   S   s6   g | ].}|d  |d |d |d |d |d dqS )r   r'               )sub_categorysenderZsystem_sendercontentsourcer.   r#   ).0rr#   r#   r$   
<listcomp>>   s   z-PullNotificationView.list.<locals>.<listcomp>z{0}z%Y-%m-%d %H:%M:%S)r!   r,   Z	read_timeZread_notification)emp_companyr6   namephoto )
coder;   r<   r!   startendremark
apply_timeapprove_statusapprove_describer5   rC   r?   r@   rA   rB   rD   )r!   r?   r@   rA   rB   rC   rD   r(   )	r>   r;   r<   r!   
punch_timerA   rB   rC   rD   rE   )r!   rE   rA   rB   rC   rD   )
r>   r;   r<   r!   previous_shiftcurrently_shiftrA   rB   rC   rD   Zprevious_timeintervalNoneZcurrently_timeinterval)r!   rF   rG   rA   rB   rC   rD   r3   )r>   r;   r<   Zsubjectr5   r!   category_valr.   )r>   r;   r<   r!   rI   r5   r.   )r,   Zread_status)unreadZleaver   )r!   Zcategory_nameZcategory_labelrJ   r/   Zovertimer0   Zmanualr1   Ztrainingr2   Zschedule   Zannouncement   Z
attendance   ZreimbursementrJ   )r   )5Zget_serializerZquery_paramsZis_validuserZcompany
company_idvalidated_datagetdictr   r   stridr	   r   formatdatetimeZnowstrftimer   r   r   r   r   jsonloadsr   ZAUDITINGZAUDIT_SUCCESSZCANCEL_AUDIT_SUCCESSZREFUSEupdateappendr   r   r   r   r   r   r   r   Zobjectsfilterr
   Zorder_byvaluesZannotater   r   
res_statusZHTTP_200_OKerrorsZHTTP_400_BAD_REQUEST)selfZrequestargskwargsZ
serializerZempr:   rO   rP   r!   r"   r3   r&   r)   ZrowsZvalsr-   Zupdate_statusvalr4   itemZdetailrC   Z	categorysZnfcsZnfcZcategory_indexr#   r#   r$   list$   sJ   










zPullNotificationView.listN)r   r   r    r   Zserializer_classre   r#   r#   r#   r$   r%      s   r%   )-rX   rV   Zdjango.db.modelsr   Zrest_frameworkr   r^   Zrest_framework.responser   r   r   Zmysite.mobile.utilsr   r   r	   Zmysite.mobile.choicesr
   r   r   r   r   r   r   r   r   r   Zmysite.sql_utilsr   r   r   Z
mysite.attr   Zmysite.att.att_paramr   Z'mysite.mobile.models.model_notificationr   Zmysite.mobile.api_restr   Z(mysite.mobile.api_rest.app_customize_mixr   Z
Serializerr   ZListModelMixinZGenericViewSetr%   r#   r#   r#   r$   <module>   s"   0