
    siA                     X   d 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mZ dd	l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  eed       e ed      d       G d de                    Z eed       e ed      d       G d de                    Z  eed       e ed      d       G d de                    Z! eed       e ed      d       G d de!                    Z" eed       e ed      d       G d de!                    Z# eed       e ed      d       G d de                    Z$ eed       e ed      d       G d de                    Z% eed       e ed      d       G d de                    Z&y )!zD
this page is handling the cbv methods of loan/advanced salary page
    )Any)messages)HttpResponse)reversereverse_lazy)method_decorator)gettext_lazy)login_requiredpermission_required)HorillaDetailedViewHorillaFormViewHorillaListViewHorillaNavViewHorillaTabViewTemplateView)LoanAccountFilter)LoanAccountForm)LoanAccountdispatch)namezpayroll.view_loanaccountc                       e Zd ZdZdZy)AdvanceSalaryViewz&
    for loan/advance salary page
    zcbv/loan/loan_main.htmlN)__name__
__module____qualname____doc__template_name     C/var/www/python-projects/worksol/payroll/cbv/loan_advance_salary.pyr   r      s     .Mr   r   c                   ,     e Zd ZdZdeddf fdZ xZS )LoansGenericTabz,
    Tab view for loans/advanced salary
    kwargsreturnNc                     t        |   di | t        d      t        d       dt        d      t        d       dt        d      t        d       dg| _        y )	NLoanloan-tab-list-view)titleurlzAdvanced Salaryadvanced-salary-list-viewFinefines-list-viewr   )super__init___r   tabsselfr#   	__class__s     r    r.   zLoansGenericTab.__init__,   sl    "6" 6!"678
 ,-!"=>?
 6!"345
	r   )r   r   r   r   r   r.   __classcell__r3   s   @r    r"   r"   %   s     
 
 
 
r   r"   c            
            e Zd ZdZddgZdeddf fdZ fdZeZ	e
Z ed	      d
df ed      df ed      df ed      df ed      df ed      df ed      df ed      dfgZg dZdZdZ xZS )LoanListViewz 
    List view for loan tab
    provided_dateinstallment_start_dater#   r$   Nc                 D    t        |   di | t        d      | _        y )Nr'   r   r-   r.   r   
search_urlr1   s     r    r.   zLoanListView.__init__J   s     "6"!"67r   c                 H    t         |          }|j                  d      }|S )z7
        queryset for rendering loan data only
        loantype)r-   get_querysetfilter)r2   querysetr3   s     r    rA   zLoanListView.get_querysetN   s'     7')???/r   Employeeemployee_idemployee_id__get_avatarTitler(   Provided DateInstallment Start DateToatal InstallmentsinstallmentsAmountloan_amountDescriptiondescriptionzProgress Barprogress_bar_col))rD   employee_id__get_full_namerF   )rH   r8   )rI   r9   )rJ   rK   )rL   rM   loan_actionsz
                hx-get='{loan_detail_view}?instance_ids={ordered_ids}'
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
                )r   r   r   r   bulk_update_fieldsr   r.   rA   r   filter_classr   modelr/   columnssortby_mappingaction_method	row_attrsr4   r5   s   @r    r7   r7   >   s    
 	 
8 8 8 %LE 
:'@A	
7W	
?	_-	
#	$&>?	
 	!>2	
8m$	
=	=)	
>	./	GN #MIr   r7   c                   2     e Zd ZdZdeddf fdZd Z xZS )AdvancedSalaryListz'
    List view for advanced salary
    r#   r$   Nc                 D    t        |   di | t        d      | _        y )Nr*   r   r;   r1   s     r    r.   zAdvancedSalaryList.__init__}   s     "6"!"=>r   c                 T    t        j                  |       }|j                  d      }|S )Nadvanced_salaryr?   r   rA   rB   r2   rC   s     r    rA   zAdvancedSalaryList.get_queryset   s(    "//5??(9?:r   r   r   r   r   r   r.   rA   r4   r5   s   @r    r[   r[   v   s     ? ? ?r   r[   c                   2     e Zd ZdZdeddf fdZd Z xZS )FinesListViewz!
    List view for fines tab
    r#   r$   Nc                 D    t        |   di | t        d      | _        y )Nr,   r   r;   r1   s     r    r.   zFinesListView.__init__   s     "6"!"34r   c                 T    t        j                  |       }|j                  d      }|S )Nfiner?   r_   r`   s     r    rA   zFinesListView.get_queryset   s'    "//5???/r   ra   r5   s   @r    rc   rc      s     5 5 5r   rc   c                   V     e Zd ZdZdeddf fdZ ed      ZdZ e	       Z
dZd	Z xZS )
LoanNavViewz-
    Navbar for the laons/advance salary
    r#   r$   Nc                 l    t        |   di | t        d      | _        dt	        d       d| _        y )Nzloan-generic-tab-viewz
             hx-get="zloan-create-formz"
             hx-target="#genericModalBody"
             data-target="#genericModal"
             data-toggle="oh-modal-toggle"
         r   )r-   r.   r   r<   r   create_attrsr1   s     r    r.   zLoanNavView.__init__   s@    "6"!"9:!"#567 8
r   zLoan / Advanced Salaryzcbv/loan/loan_filter.htmlformz#listContainer)r   r   r   r   r   r.   r/   	nav_titlefilter_body_templater   filter_instancefilter_form_context_namesearch_swap_targetr4   r5   s   @r    rh   rh      sB    	 	 	 *+I6')O%)r   rh   c                   0     e Zd ZdZeZdZdef fdZ xZ	S )LoanDetailViewz'
    detail view for the loan page
    zcbv/loan/loan_detail_view.htmlr#   c                    t        |   di |}| j                  j                  d      }t        j
                  j                  |      }|j                  j                         }| j                  j                  j                  d      }| j                  j                  j                  d      }||d<   ||d<   ||d<   ||d<   |S )Npk)idloan_idded_idr>   rK   r   )
r-   get_context_datar#   getr   objectsdeduction_idsallrequestGET)	r2   r#   contextrt   r>   rK   rv   rw   r3   s	           r    rx   zLoanDetailView.get_context_data   s    '*4V4[[__T"""&&"&-))--/,,""&&y1!!%%h/$	"".r   )
r   r   r   r   r   rU   r   r   rx   r4   r5   s   @r    rr   rr      s%     E4M  r   rr   c                   D     e Zd ZdZeZeZ ed      Z	dede
f fdZ xZS )LoanFormViewz-
    form view for create and edit loans
    zLoan / Advanced Sarlaryrk   r$   c                 0   |j                         rw|j                  j                  rt        d      }nt        d      }|j	                          t        j                  | j                  t        |             | j                  d      S t        | )  |      S )NzLoan Updated SuccessfullyzNew Loan Created Successfullyz4<script>$('#reloadMessagesButton').click();</script>)is_validinstancert   r/   saver   successr}   r   r-   
form_valid)r2   rk   messager3   s      r    r   zLoanFormView.form_valid   sx    ==?}}78;<IIKT\\1W:6$$F  w!$''r   )r   r   r   r   r   
form_classr   rU   r/   new_display_titler   r   r4   r5   s   @r    r   r      s8     !JE34( (< ( (r   r   N)'r   typingr   django.contribr   django.httpr   django.urlsr   r   django.utils.decoratorsr   django.utils.translationr	   r/   horilla_views.cbv_methodsr
   r   horilla_views.generic.cbv.viewsr   r   r   r   r   r   payroll.filtersr   payroll.forms.component_formsr   payroll.models.modelsr   r   r"   r7   r[   rc   rh   rr   r   r   r   r    <module>r      s     # $ - 4 6 I  . 9 - .z2%&@A
S. . T 3. .z2%&@A
S
n 
 T 3
. .z2%&@A
S3? 3 T 33l .z2%&@A
S  T 3 .z2%&@A
SL  T 3 .z2%&@A
S*. * T 3*. .z2%&@A
S(  T 3, .z2%&@A
S(? ( T 3(r   