o
    ۷hY                     @   s  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Z
dd	 ZG d
d dZdd Zdd ZG dd dZG dd dZdd Zdd ZG dd dZdd ZG dd dZG dd dZd d! ZG d"d# d#ZG d$d% d%ZG d&d' d'ZG d(d) d)Zd*d+ Zd,d- ZG d.d/ d/ZG d0d1 d1Zd2d3 Z d4d5 Z!G d6d7 d7Z"d8d9 Z#G d:d; d;Z$d<d= Z%d>d? Z&G d@dA dAZ'G dBdC dCZ(dDdE Z)dFdG Z*dHdI Z+dJdK Z,dLdM Z-dNdO Z.dPdQ Z/dRdS Z0dTS )U    )Q)ApplicationNamespace)NWisefinThread)NWisefinList)NWisefinLiteListc                   @   sl   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdS )MONTH                        	   
         JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECN)__name__
__module____qualname__janfebmaraprmayjunejulyaugsepoctnovdec	jan_VALUE	feb_VALUE	mar_VALUE	apr_VALUE	may_VALUE
june_VALUE
july_VALUE	aug_VALUE	sep_VALUE	oct_VALUE	nov_VALUE	dec_VALUE r;   r;   8/var/www/FinalPayroll/payrollservice/util/payrollutil.pyr   a   s2    r   c                 C   s  | t jkr
t j}|S | t jkrt j}|S | t jkrt j}|S | t jkr(t j}|S | t j	kr2t j
}|S | t jkr<t j}|S | t jkrFt j}|S | t jkrPt j}|S | t jkrZt j}|S | t jkrdt j}|S | t jkrnt j}|S | t jkrxt j}|S | t jkrt j}|S | t jkrt j}|S d S N)r   r#   r/   r$   r0   r%   r1   r&   r2   r'   r3   r(   r4   r)   r5   r*   r6   r+   r7   r,   r8   r-   r9   r.   r:   )numbernamer;   r;   r<   getmonth{   sV   













r@   c                   @   $   e Zd ZdZdZdZdZdZdZdS )PaymodeTyper   r	   r
   CHEQUEzBANK TRANSFERzDIRECT DEPOSITN)	r    r!   r"   rC   BANKTRANSFERDIRECTDEPOSIT
CHEQUE_VALBANKTRANSFER_VALDIRECTDEPOSIT_VALr;   r;   r;   r<   rB          rB   c                 C   b   | t jkrt jt jd}|S | t jkrt jt jd}|S | t jkr*t jt jd}|S d d d}|S Nidr?   )rB   rC   rF   rD   rG   rE   rH   typedatar;   r;   r<   get_paymode      



rQ   c                  C   sd   t jt jt jg} t jt jt jg}t| }t }t	|D ]}t
 }| | |_|| |_|| q|S r=   )rB   rC   rD   rE   rF   rG   rH   lenr   ranger   rM   textappendidarrtypearrlengthvyslistxvysliter;   r;   r<   paymode_dropdown   s   

r^   c                   @   s   e Zd ZdZdZdS )Activestatusr   r   N)r    r!   r"   activeinactiver;   r;   r;   r<   r_      s    r_   c                   @   st   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdS )Advancestatusr   r	   r
   r   r   r   r   r   r   r   r   r      APPROVEDPENDINGREJECTHOLD
PROCESSINGPAID	COMPLETEDDRAFTzMOVE TO CHECKERzMOVE TO APPROVEROPENCLOSEDFORCE_CLOSEDN)r    r!   r"   approvedpendingrejecthold
processingpaid	completeddraftmove_to_checkermove_to_approveropenclosedforce_closedapproved_valpending_val
reject_valhold_valprocessing_valpaid_valcompleted_val	draft_valmove_to_checker_valmove_to_approver_valopen_val
closed_valforce_closed_valr;   r;   r;   r<   rb      s6    rb   c                 C   s  | t jks
| t jkrt jt jd}|S | t jks| t jkr&t jt jd}|S | t jks0| t jkr9t jt jd}|S | t jksC| t jkrLt jt jd}|S | t j	ksV| t j
kr_t j	t j
d}|S | t jksi| t jkrrt jt jd}|S | t jks|| t jkrt jt jd}|S | t jks| t jkrt jt jd}|S | t jks| t jkrt jt jd}|S | t jks| t jkrt jt jd}|S | t jks| t jkrt jt jd}|S | t jks| t jkrt jt jd}|S | t jks| t jkrt jt jd}|S d d d}|S rK   )rb   ro   r|   rp   r}   rq   r~   rr   r   rs   r   rt   r   ru   r   rv   r   rw   r   rx   r   ry   r   rz   r   r{   r   )rU   rP   r;   r;   r<   advancestatus   sR   	
r   c                  C   s   t jt jt jt jt jt jt jt jt j	t j
t jt jg} t jt jt jt jt jt jt jt jt jt jt jt jg}t| }t }t|D ]}t }| | |_|| |_|| q?|S r=   ) rb   ro   rp   rq   rr   rs   rt   ru   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   rS   r   rT   r   rM   rU   rV   rW   r;   r;   r<   advancestatus_dropdown  s   44

r   c                   @   s\   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdS )Advancetyper   r	   r
   r   r   r   r   r   r   r   EMPLOYEEADVANCE_DETAILSEMPLOYEEADVANCE_PAYMENTPAYSTRUCTUREzPAYSTRUCTURE DETAILSzEMPLOYEEPAYSTRUCTURE DEDUCTIONzEMPLOYEEMONTHLY PAYINFOzEMPLOYEEMONTHLYPAY DETAILSzEMPLOYEEMONTHLYPAY DEDUCTIONPAYROLLPROCESSINGCHANGEzEMPLOYEEADDITIONAL ALLOWANCEN)r    r!   r"   employeeadvance_detailsemployeeadvance_paymentpaystructurepaystructure_detailsemployeepaystructure_deductionemployeemonthly_payinfoemployeemonthlypay_detailsemployeemonthlypay_deductionpayrollprocessing_changeemployeeadditional_allowanceemployeeadvance_details_valemployeeadvance_payment_valpaystructure_valpaystructure_details_val"employeepaystructure_deduction_valemployeemonthly_payinfo_valemployeemonthlypay_details_val employeemonthlypay_deduction_valpayrollprocessing_change_val employeeadditional_allowance_valr;   r;   r;   r<   r     s*    r   c                 C   sF   | t jkrt jt jd}|S | t jkrt jt jd}|S d d d}|S rK   )r   r   r   r   r   rN   r;   r;   r<   get_advance_type-  s   


r   c                   @   s   e Zd ZdZdZdZdS )ModifyStatusr   r   r	   N)r    r!   r"   DELETECREATEUPDATEr;   r;   r;   r<   r   7  s    r   c                   @   rA   )PF_Typer   r	   r
   	NORMAL_PFSTANDARD_PF
VIRTUAL_PFN)	r    r!   r"   normalstandard_PF
virtual_PF
normal_valstandard_PF_valvirtual_PF_valr;   r;   r;   r<   r   =  rI   r   c                 C   s   | t jks
| t jkrt jt jd}|S | t jks| t jkr&t jt jd}|S | t jks0| t jkr9t jt jd}|S d d d}|S rK   )r   r   r   r   r   r   r   rN   r;   r;   r<   get_pf_typeF  s   
r   c                   @   s4   e Zd ZddddZddddZeegZdd	 Zd
S )AllowanceTyper   BasicQ   )rM   rU   
percentager	   others   c                 C   $   | j D ]}||d kr|  S qdS NrM    var_arrselftype_valir;   r;   r<   set_typeY  
   
zAllowanceType.set_typeN)r    r!   r"   basicotherr   r   r;   r;   r;   r<   r   S  s
    r   c                   @   s0   e Zd ZdddZdddZeegZdd ZdS )	CompanyAllowanceTyper   ESI)rM   rU   r	   PFc                 C   r   r   )val_arrr   r;   r;   r<   r   f  r   zCompanyAllowanceType.set_typeN)r    r!   r"   esipfr   r   r;   r;   r;   r<   r   `  s
    

r   c                   @   rA   )FlagRef_Typer   r	   r
   r   r   r   N)	r    r!   r"   r   r   COMPANYCONTRIBUTIONPayrolltranEmployeeadvancedetailsPAYROLLTEMPLATEr;   r;   r;   r<   r   m      r   c                   @   s4   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS )PayrollDeductionTyper   r	   r
   r   r   	QUARTERLY
HALFYEARLYYEARLYMONTHLYCUSTOMN)r    r!   r"   r   r   r   r   r   QUARTERLY_VALHALFYEARLY_VAL
YEARLY_VALMONTHLY_VAL
CUSTOM_VALr;   r;   r;   r<   r   v  s    r   c                 C   s   | t jks
| t jkrt jt jd}|S | t jks| t jkr&t jt jd}|S | t jks0| t jkr9t jt jd}|S | t jksC| t jkrLt jt jd}|S | t j	ksV| t j
kr_t j
t j	d}|S d d d}|S rK   )r   r   r   r   r   r   r   r   r   r   r   rN   r;   r;   r<   payrolldeduction_val  s"   	
r   c                  C   st   t jt jt jt jt jg} t jt jt jt j	t j
g}t| }t }t|D ]}t }| | |_|| |_|| q#|S r=   )r   r   r   r   r   r   r   r   r   r   r   rS   r   rT   r   rM   r?   rV   )rX   rY   rZ   	list_datar\   vys_listr;   r;   r<   payrolldeduction_type  s   

r   c                   @   sL   e Zd Zddg ddZddddgdZdd	dgdZeeegZd
d ZdS )bonus_calculatetyper   r   )r   r   r   r
   )rM   rU   valuesr	   r   r   r
   r   c                 C   r   r   r   r   r;   r;   r<   set_bonustype  r   z!bonus_calculatetype.set_bonustypeN)r    r!   r"   r   r   r   r   r   r;   r;   r;   r<   r     s    
r   c                   @   s<   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdS )Comptype_Categoryr   r	   r
   r   r   r   POSITIVE	DEDUCTIONOTHERSBONUSzCUSTOM EARNINGSzCUSTOM DEDUCTIONN)r    r!   r"   r   r   r   r   CUSTOM_EARNINGSCUSTOM_DEDUCTIONPOSITIVE_VALDEDUCTION_VAL
OTHERS_VAL	BONUS_VALCUSTOM_EARNINGS_VALCUSTOM_DEDUCTION_VALr;   r;   r;   r<   r     s    r   c                 C   s   | t jks
| t jkrt jt jd}|S | t jks| t jkr&t jt jd}|S | t jks0| t jkr9t jt jd}|S | t jksC| t jkrLt jt jd}|S | t j	ksV| t j
kr_t j	t j
d}|S | t jksi| t jkrrt jt jd}|S d d d}|S )N)rM   category)r   r   r   r   r   r   r   r   r   r   r   r   r   )r   rP   r;   r;   r<   category_val  s(   	
r   c                  C   sx   t jt jt jt jt jt jg} t jt jt j	t j
t jt jg}t }tt| D ]}t }| | |_|| |_|| q%|S r=   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   rT   rS   r   rM   r?   rV   )category_idr   li_datar   lir;   r;   r<   category_dropdown_  s   

r   c                   @   s   e Zd ZdZdS )PayrollValidationN)r    r!   r"   statusr;   r;   r;   r<   r     s    r   c                 C   s   i }d }d| v r3| d dkrd}nt | d }z|dks"d|d< d}W n ty2   d|d< d}Y nw d	| v rV| d	 }|rP| }|d d  rOd
|d< d}nd|d< d}|r]dt_|S dt_|S )Nr   r   r   d   zPercentage limit 100% onlypercentage_messageTzplease enter percentager?   z#Name should not start with a numbername_messagezplease enter nameFailureSuccess)float
ValueErrorsplitisdigitr   r   )	resp_dataresponsefailedr   r?   
name_checkr;   r;   r<   master_validation  s<   r  c                   @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
Report_typer   r	   r
   r   DATETIMEBOOLEAN	CHARACTERINTEGERN)r    r!   r"   r	  r
  r  INTDATETIME_VALBOOLEAN_VALCHARACTER_VALINT_VALr;   r;   r;   r<   r    s    r  c                  C   sh   t jt jt jt jg} t jt jt jt jg}t	 }t
t| D ]}t }| | |_|| |_|| q|S r=   )r  r	  r
  r  r  r  r  r  r  r   rT   rS   r   rM   rO   rV   	report_id
report_valr   r   r   r;   r;   r<   report_dropdown_  s   

r  c                 C   s~   | t jkrt jt jd}|S | t jkrt jt jd}|S | t jkr*t jt jd}|S | t jkr8t jt jd}|S d d d}|S N)rM   rO   )	r  r	  r  r
  r  r  r  r  r  rN   r;   r;   r<   r    s   
	



r  c                   @   s   e Zd ZdZdZeedZdS )is_advance_datar   ADVANCErL   N)r    r!   r"   advanceadvance_valrP   r;   r;   r;   r<   r  (  s    r  c                   @   rA   )ReportColumns_Typer   r	   r
   EMPLOYEE_BASICEMPLOYEE_BANKEMPLOYEE_SALARYN)	r    r!   r"   employee_basicemployee_bankemployee_salaryemployee_basic_valemployee_bank_valemployee_salary_valr;   r;   r;   r<   r  -  r   r  c                 C   rJ   r  )r  r  r"  r   r#  r!  r$  rN   r;   r;   r<   reportcolumns_typeval5  rR   r%  c                  C   s`   t jt jt jg} t jt jt jg}t }tt	| D ]}t
 }| | |_|| |_|| q|S r=   )r  r  r   r!  r"  r#  r$  r   rT   rS   r   rM   rO   rV   r  r;   r;   r<   reportcolumns_dropdown_A  s   

r&  c                 C   s<   ddl m} g }| r| D ]}t|}||}|| q|S )Nr   )Decimal)decimalr'  data_rounduprV   )amt_arrr'  arrr   amountamount_decimalr;   r;   r<   data_roundup_arrL  s   r.  c                 C   s   t | d}|S )N.2fround)amtr,  r;   r;   r<   r)  U  s   r)  c                 C   s   | d }t |}|d }|S )Nr   r0  r,  div_amtr_amountmul_amtr;   r;   r<   net_pay_calcY  s   r7  c                 C   s$   | d }t |}|d }|d}|S )Nr   r/  r0  r3  r;   r;   r<   net_pay_calc_str`  s
   r8  c                 C   s6   ddl m}m} t| tkr|| j|d|dS | S Nr   )r'  ROUND_HALF_UPz1.00)rounding)r(  r'  r:  rO   r   quantize)valuer'  r:  r;   r;   r<   float_to_decimalh  s   r>  c                 C   s>   ddl m}m} t| tkrt| }||j|d|dS | S r9  )r(  r'  r:  rO   r   r7  r<  )r=  r'  r:  
amount_valr;   r;   r<   netpay_float_to_decimaln  s
   r@  N)1django.db.modelsr   +utilityservice.service.applicationconstantsr   "utilityservice.service.threadlocalr   )utilityservice.data.response.nwisefinlistr   -utilityservice.data.response.nwisefinlitelistr   r   r@   rB   rQ   r^   r_   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r%  r&  r.  r)  r7  r8  r>  r@  r;   r;   r;   r<   <module>   sX    Y-	
		"	