B
    Òîb~  ã               @   sÈ   d dl Z d dlZd dlmZ d dlZd dlZd dlmZm	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 d d	lmZ d d
lmZ G dd„ deƒZG dd„ deƒZG dd„ deƒZdS )é    N)Úsettings)Úgettext_lazyÚactivate)Úserializers)Ú	FilterSet)Ú
Unregister)Ú$BaseUnregisteredUserReportSerializerÚ!BaseUnregisteredUserReportViewSet)Úresize_by_pixel)Úshort_date_and_time_format)Útemperature_updatec               @   sZ   e Zd Zejr,ejdddZejdddZnejdddZejdddZG dd„ dƒZ	dS )	ÚUnregisteredUserReportFilterZpunch_time__dateZgte)Z
field_nameÚlookup_exprZlte)Únamer   c               @   s   e Zd ZeZddgZdS )z!UnregisteredUserReportFilter.MetaÚ
start_dateÚend_dateN)Ú__name__Ú
__module__Ú__qualname__r   ÚmodelÚfields© r   r   úKG:\easytimepro\master/mysite/att\api\views\view_report_unregisteredusers.pyÚMeta   s   r   N)
r   r   r   ÚsixZPY3Údjango_filtersZ
DateFilterr   r   r   r   r   r   r   r      s   r   c               @   sR   e Zd ZejedƒdZe ¡ Ze ¡ Zdd„ Z	dd„ Z
dd„ ZG d	d
„ d
ƒZdS )Ú UnregisteredUserReportSerializerZ$report_column_unregistereduser_photo)Úlabelc             C   s   |j r|j}|S dS )z€
            get the first trans refer the payloadbase record
            :param obj:
            :return: trans id
            Ú )Úterminal_snÚid)ÚselfÚobjZtrans_idr   r   r   Úget_unregistereduser_photo%   s    z;UnregisteredUserReportSerializer.get_unregistereduser_photoc             C   s   y
|j }W n
   dS t|ƒS )Nr   )Ú
punch_timer   )r!   r"   r$   r   r   r   Úget_punch_time0   s
    
z/UnregisteredUserReportSerializer.get_punch_timec             C   s"   y
|j }W n
   dS t||jƒS )Nr   )Útemperaturer   Z
company_id)r!   r"   r&   r   r   r   Úget_temperature7   s
    
z0UnregisteredUserReportSerializer.get_temperaturec               @   s   e Zd ZeZdZdS )z%UnregisteredUserReportSerializer.Meta)r    r$   r&   Ú	mask_flagÚunregistereduser_photoN)r   r   r   r   r   r   r   r   r   r   r   >   s   r   N)r   r   r   r   ZSerializerMethodFieldÚ_r)   r$   r&   r#   r%   r'   r   r   r   r   r   r       s   r   c               @   sD   e Zd ZeZeedœZddd„Zdd„ Zdd„ Z	d	d
„ Z
dd„ ZdS )ÚUnregisteredUserReportViewSet)ÚlistZexportNc             C   sô   xît |ƒD ]â\}}y| j d¡}W n   d}Y nX |dkrr|| }|dkrVd||< qz|dkrhd||< qzd||< nd||< y| j d	¡}W n   d}Y nX |dkrä|| }	|  |	¡}
|
rÖ|
jd
d}
d |
¡||< qìtdƒ||< q
d||< q
W |S )z"only use for att report pdf reportr(   NÚNoneZYesz(<span style="color: #00CD66;">Yes</span>ZNoz'<span style="color: #ff0000;">No</span>r   r)   zUTF-8)Úencodingz$<img src="data:image/jpg;base64,{}">Zphoto_not_found)Ú	enumerateÚexport_headersÚindexÚtrans_id_to_base64ÚdecodeÚformatr*   )r!   Zdatasr0   Ú
extra_dataÚiÚdataZmask_flag_indexÚstatusZphoto_indexÚtran_idZimage_base64r   r   r   Úupdate_data_listL   s4    





z.UnregisteredUserReportViewSet.update_data_listc             C   s   t dƒ tdƒS )NZenZunregistered_users_report)r   r*   )r!   r   r   r   Úget_file_titlem   s    z,UnregisteredUserReportViewSet.get_file_titlec          	   C   s  |sd S t jj|d dd¡}|r|d \}}| d¡}d | d¡d¡}d	 ||¡}tj t	j
|¡}tj ||¡}tj |¡sŒt |¡ tj |¡sÞd
 ||¡}	tj t	j
|	¡}	tj |	|¡}
tj |
¡sÒd S t|
|dƒ t|dƒ}t | ¡ ¡}|S Q R X d S )N)r    r$   r   r   z%Y%mz{0}-{1}.jpgz%Y%m%d%H%M%Sr   z unregistered_user_report/{0}/{1}zupload/{0}/{1}i A  Úrb)r   ÚobjectsÚfilterÚvalues_listÚstrftimer4   ÚosÚpathÚjoinr   ÚADDITION_FILE_ROOTÚexistsÚmakedirsr
   ÚopenÚbase64Z	b64encodeÚread)r!   r9   Útransr$   ÚsnÚfolder_nameÚ
photo_nameÚdest_file_pathÚdest_whole_pathÚsource_file_pathÚsource_whole_pathÚfZbase64_datar   r   r   r2   q   s,    

z0UnregisteredUserReportViewSet.trans_id_to_base64c             C   sä   d }|sd S t jj|d dd¡}|rà|d \}}| d¡}d | d¡d¡}d	 ||¡}tj t	j
|¡}tj ||¡}tj |¡sŽt |¡ tj |¡sàd
 ||¡}	tj t	j
|	¡}	tj |	|¡}
tj |
¡sÔd S t|
|dƒ |S )N)r    r$   r   r   z%Y%mz{0}-{1}.jpgz%Y%m%d%H%M%Sr   z unregistered_user_report/{0}/{1}zupload/{0}/{1}i A  )r   r=   r>   r?   r@   r4   rA   rB   rC   r   rD   rE   rF   r
   )r!   r9   rO   rJ   r$   rK   rL   rM   rN   rP   rQ   r   r   r   Útrans_id_to_url‹   s*    

z-UnregisteredUserReportViewSet.trans_id_to_urlc             C   sn   || dkrj|   |¡}|rX| || |d¡ | || ||dddœ¡ | || d¡ n| || |d¡ dS )	z#use for update the data when insertz
User Photoú é   g333333ó?)Zx_scaleZy_scaleép   zUser Photo Not FoundN)rS   ÚwriteZinsert_imageZset_row)r!   Z	worksheetZtranslated_headersZ	col_indexZ	row_indexZrow_index_temZcol_dataZ
photo_pathr   r   r   Úxls_update_extra_data£   s    
z3UnregisteredUserReportViewSet.xls_update_extra_data)N)r   r   r   r   Zfilter_classr   Zserializer_dictr:   r;   r2   rS   rX   r   r   r   r   r+   E   s   
!r+   )rH   rA   Zdjango.confr   r   r   Zdjango.utils.translationr   r*   r   Zrest_frameworkr   Zdjango_filters.rest_frameworkr   Zmysite.iclock.modelsr   Z6mysite.att.api.views.view_report_base_unregistereduserr   r	   Zmysite.tools.image_utilsr
   Zmysite.att.utilsr   r   r   r   r+   r   r   r   r   Ú<module>   s   %