o
    ۷h[0                     @   s  d dl Z d dlZd dlZd dlmZ d dl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mZ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  ee
ddgeegeeegdd Z!ee
ddgeegeeegdd Z"ee
ddgeegeeegdd Z#ee
ddgeegeeegdd Z$ee
dgeegeeegdd Z%ee
dgeegeeegdd Z&ee
dgeegeeegdd Z'ee
dgeegeeegdd Z(ee
dgeegeeegd d! Z)ee
dgeegeeegd"d# Z*ee
ddgeegeeegd$d% Z+ee
ddgeegeeegd&d' Z,dS )(    N)HttpResponse)csrf_exempt)api_viewauthentication_classespermission_classes)IsAuthenticated)Report_Request)Report_Service)master_validationPayrollValidationreport_dropdown_reportcolumns_dropdown_advancestatus_dropdown)NWisefinPage)NWisefinAuthentication)NWisefinPermission)HrmsApiServicePOSTGETc                 C   s   | j }t|}| jdkr=| j}t| j}t|}tj	dkr2t
|}|||}t| dd}|S t|}	t|	ddS | jdkrh| jd}
| jdd}t|}t|d	}||
|}t| dd}|S d S )
Nr   Successapplication/jsoncontent_typer   namepage   
   )scoper	   methodemployee_idjsonloadsbodyr
   r   statusr   create_reportcolumnr   getdumpsr   intr   report_column_summary)requestr   serviceemp_id	resp_datavalidation_responsereport_column_requestreport_servresponse	json_datar   r   vys_pageresp r4   D/var/www/FinalPayroll/payrollservice/controller/report_controller.pycreate_report_column   s,   




r6   DELETEc                 C   b   | j }t|}| jdkr||}t| dd}|S | jdkr/||}t| dd}|S d S Nr   r   r   r7   )r   r	   r   get_report_columnr   r%   delete_report_column)r)   rep_idr   servr3   r0   r4   r4   r5   r:   0      



r:   c                 C   s   | j }t|}| jdkr*| j}t| j}t|}||||}t	|
 dd}|S | jdkr^| j
dd }| j
dd }	| j
dd}
t|
}
t|
d	}||	||}t	|
 dd}|S d S )
Nr   r   r   r   r   bank_idr   r   r   )r   r	   r   r   r    r!   r"   r   create_ReportTemplater   r%   r   r'   r   report_template_summary)r)   r   r*   r+   r,   report_template_requestr/   r0   r   r?   r   r2   r4   r4   r5   create_report_template@   s&   


rC   c                 C   r8   r9   )r   r	   r   get_report_templater   r%   delete_report_template)r)   temp_idr   r=   r3   r0   r4   r4   r5   rD   ^   r>   rD   c                 C   s:   | j }t|}| jdkr||}t| dd}|S d S )Nr7   r   r   )r   r	   r   delete_detailsr   r%   )r)   	detail_idr   r=   r3   r0   r4   r4   r5   rE   m   s   

rE   c                 C   (   | j dkrt }t| dd}|S d S Nr   r   r   )r   r   r   r%   r)   r3   r0   r4   r4   r5   report_dropdown   
   
rL   c                 C   s*   | j }t|}| jdkr||}|S d S )Nr   )r   r	   r   report_banktemplates)r)   template_idr   r=   r3   r4   r4   r5   report_banktemplate   s   

rP   c           
      C   s   | j }t|}| j}| jdkrt|t|g}|d d }|| |||}|jr\t	dd}dt
|d  d|d	< tj|d
d}	|j|	ddd z|	  W |S    |	  Y |S t	dd}dt
|d  d|d	< tj|d
d}	|j|	ddd z|	  W |S    |	  Y |S d S Nr   r   r   application/vnd.ms-excelr   attachment; filename="z.xlsx"Content-Disposition
xlsxwriterengineSheet1F
sheet_nameindex)r   r	   r   r   r   fetch_bank_valuesr'   payroll_bank_templateemptyr   strpdExcelWriterto_excelclosesave
r)   r?   r   r=   user_id	bank_datafilenamer3   formatwriterr4   r4   r5   r^      s:   







r^   c                 C   rI   rJ   )r   r   r   r%   rK   r4   r4   r5   reportcolumns_dropdown   rM   rl   c                 C   s2   | j }| jdkrt|| }t|dd}|S d S rJ   )r   r   r	   get_linkcolumnsr   )r)   r   r3   r0   r4   r4   r5   rm      s   
rm   c           
      C   s   | j }t|}| j}| jdkrvt|t|g}|d d }|| |||}|jrPt	dd}dt
|d  d|d	< tj|d
d}	|j|	ddd |	  |S t	dd}dt
|d  d|d	< tj|d
d}	|j|	ddd |	  |S d S rQ   )r   r	   r   r   r   r]   r'   bank_linkcolumns_exceldownloadr_   r   r`   ra   rb   rc   rd   rf   r4   r4   r5   rn      s*   



rn   c                 C   sH  | j }t|}| j}| jdkrRtj| jd dd d}|d }t|}tj|d dd|d< |	t
jt
jgd gjd	d
}t| || ||}t| ddS | jdkrg d}	t  }
t|
}|d }t|}tj|	d}d}t|d}tj|dd}|j|ddd |j|ddd |  d}d| d |d< |S d S )Nr   fileopenpyxl)rX   r[   rY   	PAID_DATEcoerce)errorsrecords)orientr   r   r   )EMPLOYEE_CODE
PAY_STATUSrq   TRANSACTION_NUMBERREMARKSdata)columnsrR   rV   rW   FrZ   Sheet2zPAY STRUCTURE TEMPLATErS   z.xlsx"rU   )r   r	   r   r   ra   
read_excelFILES	DataFrameto_datetimefillnanpnanreplaceto_dictprintexcelupdate_payrollpaystatusr   r%   r   r    r!   rb   rc   rd   )r)   r   r=   rg   
excel_datadf1dfpayroll_objpayroll_servfinaldf	util_datar1   rz   df2excelrj   rk   ri   r4   r4   r5   r      s:   

"




r   )-r    numpyr   pandasra   django.httpr   django.views.decorators.csrfr   rest_framework.decoratorsr   r   r   rest_framework.permissionsr   *payrollservice.data.request.report_requestr   %payrollservice.service.report_servicer	   payrollservice.util.payrollutilr
   r   r   r   r   )utilityservice.data.response.nwisefinpager   $common_middleware.request_middlewarer   )utilityservice.service.nwisefinpermissionr   :hrmsmasterapiservice.hrmsmasterapi.masteranduserserviceapir   r6   r:   rC   rD   rE   rL   rP   r^   rl   rm   rn   r   r4   r4   r4   r5   <module>   s    













	

!

