o
    ۷h                     @   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mZ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 m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' d dl(m)Z) d dl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 ee
ddgee4geee6gdd Z9ee
ddgee4geee6gdd Z:ee
ddgee4geee6gdd Z;ee
ddgee4geee6gdd Z<ee
ddgee4geee6gdd Z=ee
ddgee4geee6gdd  Z>ee
ddgee4geee6gd!d" Z?ee
ddgee4geee6gd#d$ Z@ee
ddgee4geee6gd%d& ZAee
dgee4geee6gd'd( ZBee
dgee4geee6gd)d* ZCee
dgee4geee6gd+d, ZDee
dgee4geee6gd-d. ZEee
dgee4geee6gd/d0 ZFee
ddgee4geee6gd1d2 ZGee
ddgee4geee6gd3d4 ZHee
ddgee4geee6gd5d6 ZIee
ddgee4geee6gd7d8 ZJee
dgee4geee6gd9d: ZKee
dgee4geee6gd;d< ZLee
dgee4geee6gd=d> ZMee
dgee4geee6gd?d@ ZNdS )A    N)HttpResponse)csrf_exempt)api_viewauthentication_classespermission_classes)IsAuthenticated)GradeRequest)PayrollComponentRequestCompanyContributionRequestPaycomponentFlagmasterRequestEmpPFStructureRequestPayrollDeductionRequestComponentTypeRequestSegmentMasterRequest)CompanyContributionResponse)PayrollSegementMappingService)PayrollmastermappingService)PayrollComponentServiceCompanyContributionServicePaycomponentFlagmasterServiceEmployeePFServicePayrollDeductionServiceComponentTypeServiceSegmentMasterServicepayrollGradeService)PayrollTemplateService)master_validationPayrollValidationpayrolldeduction_typecategory_dropdown_FlagRef_TypeComptype_Category)NWisefinSuccess)NWisefinAuthentication)NWisefinPermission)NWisefinPagePOSTGETc                 C   sj  | j }t|}| jdkr\| j}t| j}|d |d k s%|d |d krMt|}tj	dkrBt
|}|||}t| dd}|S t|}	t|	ddS tddi}
t|
dd}|S | jd	krd }| jd
d }| jdd }| jdd }| jdd}t|}t|d}|d kr||||}nt|tjkst|tjkr||||}t| dd}|S d S )Nr&   	from_dateto_dateSuccessapplication/jsoncontent_typedate_messagez"select valid from_date and to_dater'   actionnamegradepage   
   )scoper   methodemployee_idjsonloadsbodyr   r   statusr	   create_payroll_componentr   getdumpsr'   intr%   payroll_component_summaryr!   CUSTOM_DEDUCTIONCUSTOM_EARNINGSpayroll_component_summary1)requestr5   servemp_id	resp_datavalidation_responseresp_objrespresponse	json_data	response1r/   r0   r1   r2   vys_page rO   J/var/www/FinalPayroll/payrollservice/controller/payrollmastercontroller.pypayroll_component   s@   
 



rQ   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,   rR   )r5   r   r6   get_payroll_componentr   r=   delete_payroll_componentrD   comp_idr5   rE   rJ   rK   rO   rO   rP   rU   D      



rU   c                 C   s  | j }t|}| jdkra| j}t| j}t|}tj	dkrVt
|}|d}|||}|j}	|D ]}
t|
dkrKt|
}t|}|||tj|	}q2t| dd}|S t|}t|ddS | jdkr| jdd }| jd	d
}t|}t|d}|||}t| dd}|S d S )Nr&   r*   paycomponentflagmasterr   r+   r,   r'   r0   r2   r3   r4   )r5   r   r6   r7   r8   r9   r:   r   r   r;   r
   r=   create_entryidlenr   r   create_paycomponentflagr    COMPANYCONTRIBUTIONr   r>   r'   r?   r%   company_contribution_summary)rD   r5   rE   rF   rG   rH   rI   flag_arrrJ   map_id	flag_datadata_objflag_serviceres_objrK   rL   r0   r2   rN   rO   rO   rP   company_contributionU   s<   





rg   c                 C   rS   rT   )r5   r   r6   get_contribution_infor   r=   delete_contribution)rD   con_idr5   rE   rJ   rK   rO   rO   rP   get_contribution   rY   rk   c                 C   s  | j }t|}t|}| jdkra| j}t| j}t|}t	j
dkrVt|}|d}|||}	|	j}
|D ]}t|dkrKt|}|||tj|
}q6t|	 dd}|S t|}t|ddS | jdkr| jdd }| jd	d
}t|}t|d}|||}t| dd}|S d S )Nr&   r*   rZ   r   r+   r,   r'   queryr2   r3   r4   )r5   r   r   r6   r7   r8   r9   r:   r   r   r;   r   r=   create_employee_pfr\   r]   r   r^   r    PFr   r>   r'   r?   r%   employee_pf_dd)rD   r5   rE   re   rF   rG   rH   rI   ra   rJ   rb   rc   rd   rf   rK   rL   rl   r2   rN   rO   rO   rP   employee_pf_structure   s<   





rp   c                 C   rS   rT   )r5   r   r6   get_emp_pf_infor   r=   delete_emp_pf_structurerW   rO   rO   rP   get_employee_pf   rY   rs   c                 C   s   | j }t|}t|}| jdkrK| j}t| j}t|}|	d}|
||}|j}|jdkrA|D ]}	t|	}
|| |
|| q2t|	 dd}|S | jdkrw| j	dd}t|}t|d}| j }t|}|| |}t|	 dd}|S d S )	Nr&   payrolldeduction_datar3   r+   r,   r'   r2   r4   )r5   r   r   r6   r7   r8   r9   r:   r	   r=   r<   r\   is_deductionr   create_payrolldeductionr   r'   r?   r%   componentdeduction_summary_data)rD   r5   rE   serv1rF   rG   rI   payrolldeduction_arrdatapayrollrd   rK   r2   rN   rO   rO   rP   rv      s4   




rv   c                 C   s   | j }t|}| jdkr;| j}t| j}t|}tj	dkr0t
|}|||}t| ddS t|}t|ddS | jdkr`| jdd}	t|	}	t|	d}
|| |
}t| dd}|S d S )	Nr&   r*   r+   r,   r'   r2   r3   r4   )r5   r   r6   r7   r8   r9   r:   r   r   r;   r   create_componenttyper   r=   r>   r'   r?   r%   summary_componenttype)rD   r5   rE   rF   rG   rH   rI   rJ   rL   r2   rN   rK   rO   rO   rP   r|      s(   




r|   c                 C   rS   rT   )r5   r   r6   fetch_componenttyper   r=   componenttype_delete)rD   r\   r5   rE   rJ   rK   rO   rO   rP   r~     rY   r~   c                 C   s   t  }t| dd}|S )Nr+   r,   )r   r   r=   rD   utilrK   rO   rO   rP   payrolldeduction_type_dropdown  s   r   c                 C   sh   | j }t|}| jdkr2| jd}| jdd}t|}t|d}|||}t| dd}|S d S )Nr'   ru   r2   r3      r+   r,   )	r5   r   r6   r'   r=   r?   r%   deduction_payrollcomponentr   )rD   r5   rE   ru   r2   rN   rI   rK   rO   rO   rP   r   %  s   

r   c                 C   sV   | j dkr)| j}| j}t| j}t|}t|}|||}t	|
 dd}|S d S )Nr&   r+   r,   )r6   r5   r7   r8   r9   r:   r   r   create_paycomponentflagmasterr   r=   )rD   r5   rF   rG   re   rI   rf   rK   rO   rO   rP   r   7  s   
r   c                 C   sH   | j dkr"| j}t|}| jd}|||}t| dd}|S d S )NrR   rb   r+   r,   )r6   r5   r   r'   r=   inactive_paycomponentflagmasterr   )rD   r\   r5   re   rb   rJ   rK   rO   rO   rP   r   G  s   
r   c                 C   sZ   | j }| jdkr+| jdd}t|}t|d}t|| ||}t| dd}|S d S )Nr'   r2   r3   r   r+   r,   )	r5   r6   r'   r=   r?   r%   r   emp_grade_paycomonent_getr   )rD   r1   r5   r2   rN   
grade_datarK   rO   rO   rP   grade_paycomponentV  s   

r   c           
      C   s   | j }t|}| jdkr)| j}t| j}t|}|||}t	|
 dd}|S | jdkrN| j
dd}t|}t|d}	|| |	}t	|
 dd}|S d S )Nr&   r+   r,   r'   r2   r3   r4   )r5   r   r6   r7   r8   r9   r:   r   create_segmentmasterr   r=   r'   r?   r%   segmentmaster_summary)
rD   r5   seg_servrF   rG   rI   rJ   rK   r2   rN   rO   rO   rP   r   e  s"   


r   c                 C   Z   | j }t|}| jdkr||}t| ddS | jdkr+||}t| ddS d S rT   )r5   r   r6   get_segmentmasterr   r=   inactive_segmentmaster)rD   id_valr5   r   rI   rO   rO   rP   segment_get     



r   c           
      C   s   | j }t|}| jdkr)t| j}t|}| j}|||}t	|
 dd}|S | jdkrL| j
dd}t|}t|d}	|j| |	|d}t	|ddS d S )	Nr&   r+   r,   r'   r2   r3   r4   )r2   )r5   r   r6   r8   r9   r:   r   r7   create_grader   r=   r'   r?   r%   summary_grade)
rD   r5   grade_service	body_datagrade_requestuser_idrI   rK   r2   rN   rO   rO   rP   r     s    


r   c                 C   r   rT   )r5   r   r6   get_grade_detailsr   r=   grade_inactive)rD   r\   r5   r   rI   rO   rO   rP   r     r   r   c                 C   sR   | j }| jdkr't }t| }t| }||_||_t	|
 dd}|S d S Nr'   r+   r,   )r5   r6   r   r   get_cc_paycom_detailsr   get_employeepfstruct_detailsrg   employee_contributionr   r=   )rD   r5   rz   
cc_serviceemp_pf_servicerK   rO   rO   rP   cc_epf_paycom_details  s   
r   c                 C   s(   | j dkrt }t| dd}|S d S r   )r6   r   r   r=   r   rO   rO   rP   category_dropdown  s
   
r   c           '   
   C   s  | j }| jdkr| jdd }| j}|dkrWtj| jd dd d}|d }t|}|	t
jt
jgd gjdd	}t| |D ]
}t|||}	qBt|	 d
d}
|
S |dkrtj| jd dd d}|d }t|}|	t
jt
jgd gjdd	}t| |D ]
}t|||}	qt|	 d
d}
|
S |dkrtj| jd dd d}|d }t|}|	t
jt
jgd gjdd	}t| |D ]
}t|||}	qt|	 d
d}
|
S |dkrbtj| jd dd d}|d }t|}|	t
jt
jgd gjdd	}t| |D ]H}t|||}	|	jdkrV|	j}|d }t|}|	t
jt
jgd gjdd	}|D ]}|d |d krTt|||tj|}q>qt|	 d
d}
|
S |dkrtj| jd dd d}|d }t|}|	t
jt
jgd gjdd	}t| |D ]H}t|||}	|	jdkr|	j}|d }t|}|	t
jt
jgd gjdd	}|D ]}|d |d krt|||tj |}qqt|	 d
d}
|
S |dkr+tj| jd dd d}|d }t|}|	t
jt
jgd gjdd	}t| |D ]}t!|"||}	qt|	 d
d}
|
S |dkrqtj| jd dd d}|d }t|}|	t
jt
jgd gjdd	}t| |D ]}t#|$||}	q[t|	 d
d}
|
S |dkrtj| jd dd d}|d }t|}|	t
jt
jgd gjdd	}t| |D ]d}t%|&||}	|	jdkr|	j}|d }t|}|	t
jt
jgd gjdd	}|D ]3}|d |d krt|||tj'|}t#|(|j)}|D ]} t*|+|| j,| j-| j.|}!qqАqt|	 d
d}
|
S |dkrVtj| jd dd d}|d }t|}|	t
jt
jgd gjdd	}"t|" |"D ]}#t|/|#|}	q@t|	 d
d}
|
S |dkrtj| jd dd d}|d }t|}|	t
jt
jgd gjdd	}$t|$ |$D ]F}%t|0|%|}	|	jdkr|	j}&|d }t|}|	t
jt
jgd gjdd	}|D ]}|%d |d krt|1|||&}qqt|	 d
d}
|
S d S )Nr&   r/   payrollmaster_grade_uploadfileopenpyxl)engine
sheet_nameSheet1records)orientr+   r,   !payollmaster_componenttype_upload%payrollmaster_payrollcomponent_upload'payollmaster_companycontribution_uploadINVALID_DATASheet2IDC_ID'payollmaster_employeepfstructure_uploadpayrollmaster_segment_upload#payrollmaster_segmentmapping_uploadpayrolltemplate_upload"payrollmaster_reportcolumns_upload"payollmaster_reporttemplate_upload)2r5   r6   r'   r=   r7   pd
read_excelFILES	DataFramefillnanpnanreplaceto_dictprintr   r   r   r   r   r   r   r   (payrollmaster_companycontribution_uploadmessager\   r   payrollmaster_paycomflag_uploadr    r_   r   r   rn   r   r   r   segmentmapping_uploadr   r   PAYROLLTEMPLATEget_segment_and_paycomponent_idref_idr   auto_create_mastermappingsegmentpaycomponentsegment_percentager   r   reporttemplate_details_upload)'rD   r5   r/   r   
excel_datadf1	final_df1	grade_objr   rd   rK   componenttye_objcomponenttye_datapayrollcomponent_objpayrollcomponent_datacompanycontribution_objcompanycontribution_datarz   df2dfsheet2flagmaster_objflagmaster_data	data_obj1employeepfstructure_objemployeepfstructure_datasegment_objsegment_datapaycomsegment_mappingobjpaycomsegment_mapping_datapayrolltemplate_objpayrolltemplate_datapaysegmappingjtemplate_creationreportcolumns_objreportcolumns_datareporttemplate_objreporttemplate_datatemp_idrO   rO   rP   payrollmaster_upload  s&  
"v
"m
"d

"
"S

"
"B

"9

"0

"
"
 

"

"
" r   c                 C   s  | j dkr| jdd }| jdd }|dkr|dkr"g d}d}n6|dkr-g d}d}n+|d	kr8g d
}d	}n |dkrCg d}d}n|dkrNddg}d}n
|dkrXddg}d}tj|d}d}t|d}tj|dd}|j|ddd |  |}	d|	 d |d< |S |dkr|dkrg d }d!dg}
d}	n,|d"krg d#}d!dg}
d"}	n|d$krg d%}d!dg}
d$}	n|d&krg d'}g d(}
d&}	tj|d}tj|
d}d}t|d}tj|dd}|j|ddd |j|d)dd |  |	}	d|	 d |d< |S d S d S )*Nr&   r/   sheet1r   )NAMEPOINTS
MIN_AMOUNT
MAX_AMOUNTr   )r   
PERCENTAGECATEGORYr   )	r   ALLOWANCE_TYPEr   GRADECAT_ID	SUBCAT_IDGL_NO	FROM_DATETO_DATEr   )r   COMPONENT_TYPETYPEr   r   PAYCOMPONENTSEGMENTr   r   r   )columnszapplication/vnd.ms-excelr,   
xlsxwriter)r   r   F)r   indexzattachment; filename="z.xlsx"zContent-Disposition2r   )	r   r   r   EFFECTIVE_FROMEFFECTIVE_TOAMOUNTr   r   GLNOr   r   )r   r   r   r  r   r   r  r   )r   r   r   r  r   )r   BANKr   )r   REPORTCOLUMNSORDERr   )	r6   r'   r=   r   r   r   ExcelWriterto_excelclose)rD   r/   r   finaldf	file_namedfexcelformatwriterfilenamefinaldf1r   rO   rO   rP   payrollmaster_template_uploadY  sz   


r  )Or8   numpyr   pandasr   django.httpr   django.views.decorators.csrfr   rest_framework.decoratorsr   r   r   rest_framework.permissionsr   (payrollservice.data.request.graderequestr   0payrollservice.data.request.payrollmasterrequestr	   r
   r   r   r   r   r   2payrollservice.data.response.payrollmasterresponser   8payrollservice.service.paycomponentsegmentmappingservicer   2payrollservice.service.payrollmastermappingservicer   ,payrollservice.service.payrollmastersservicer   r   r   r   r   r   r   r   -payrollservice.service.payrolltemplateservicer   payrollservice.util.payrollutilr   r   r   r   r    r!   ,utilityservice.data.response.nwisefinsuccessr"   $common_middleware.request_middlewarer#   )utilityservice.service.nwisefinpermissionr$   )utilityservice.data.response.nwisefinpager%   rQ   rU   rg   rk   rp   rs   rv   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r  rO   rO   rO   rP   <module>   s   $( 

#



1



 























 
