
    si                     @   d 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 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y)z
Contracts page
    )Any)reversereverse_lazy)method_decorator)gettext_lazy)login_requiredpermission_required)HorillaDetailedViewHorillaListViewHorillaNavViewTemplateView)ContractFilter)ContractExportFieldForm)Contractdispatch)namezpayroll.view_contract)permc                       e Zd ZdZdZy)ContractsViewz
    Contracts
    zcbv/contracts/contracts.htmlN)__name__
__module____qualname____doc__template_name     9/var/www/python-projects/worksol/payroll/cbv/contracts.pyr   r      s     3Mr   r   c            
       @    e Zd ZdZg dZdeddf fdZeZe	Z
 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 ed      dfgZddiZg dZdZd ed      dfd ed      dfd  ed!      d"fd# ed$      d%fgZd&Zd'Z xZS )(ContractsListz
    List view
    )contract_start_datecontract_end_date	wage_typefiling_statuswagecontract_statuskwargsreturnNc                 R    t        |   di | t        d      | _        d| _        y )Ncontract-filterzcontract-containerr   )super__init__r   
search_urlview_idselfr&   	__class__s     r   r+   zContractsList.__init__1   s'    "6"!"34+r   r   contract_nameEmployeeemployee_id
Start Dater    End Dater!   	Wage Typeget_wage_type_displayBasic Salaryr$   Filing Statusr#   Status
status_colzU
                          style="width:250px !important;"
                          ))r   r1   )r2   employee_id__get_full_name)r4   r    )r5   r!   )r8   r$   )r:   r;   actions_colzterminated--dot
Terminatedz
            onclick="
                $('#applyFilter').closest('form').find('[name=contract_status]').val('terminated');
                $('#applyFilter').click();

            "
            zexpired--dotExpiredz
            onclick="
                $('#applyFilter').closest('form').find('[name=contract_status]').val('expired');
                $('#applyFilter').click();

            "
            z
draft--dotDraftz
            onclick="
                $('#applyFilter').closest('form').find('[name=contract_status]').val('draft');
                $('#applyFilter').click();
            "
            zactive--dotActivez
            onclick="
                $('#applyFilter').closest('form').find('[name=contract_status]').val('active');
                $('#applyFilter').click();

            "
            zstatus-{contract_status}z
                hx-get='{contracts_detail}?instance_ids={ordered_ids}'
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
                )r   r   r   r   bulk_update_fieldsr   r+   r   modelr   filter_class_columnsheader_attrssortby_mappingaction_methodrow_status_indicationsrow_status_class	row_attrs__classcell__r0   s   @r   r   r   !   s-   , , ,
 E!L 
:(	
:&	
</0	
:+,	
;01	
>	F#	
?	_-	
8l#	G 	 LN "M lO
	
 iL
	
 gJ		
 hK
	
C,\ 2Ir   r   c                        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d
 ed      fd ed      fd ed      fd ed      fd ed      fd ed      fd ed      fd ed      fd ed      fg	Z xZS )ContractsNavz
    Nav bar
    r&   r'   Nc                     t        |   di | t        d      | _        dt        d       d| _        t        d      dt        d       dd	t        d
      dd	g| _        y )Nr)   z 
                          href=zcontract-createz
                          Exportz
                        data-toggle="oh-modal-toggle"
                        data-target="#hxContractExport"
                        hx-get="zcontracts-exportz"
                        hx-target="#hxContractExportForm"
                        style="cursor: pointer;"
                        )actionattrsDeletez
                    onclick="
                    DeleteContractBulk();
                    "
                    data-action ="delete"
                    style="cursor: pointer; color:red !important"
                    r   )r*   r+   r   r,   create_attrsrE   r   actionsr.   s     r   r+   zContractsNav.__init__   s    "6"!"34!  '(9 :; <
 H+! "..@!A B C	 H+	
r   	Contractszcbv/contracts/filter.htmlformz#listContainerr3   r2   0employee_id__employee_work_info__job_position_idJob Position.employee_id__employee_work_info__department_id
Departmentr%   r:   )employee_id__employee_work_info__shift_idShift-employee_id__employee_work_info__work_type_id	Work Type,employee_id__employee_work_info__job_role_idJob Role5employee_id__employee_work_info__reporting_manager_idzReporting Manager+employee_id__employee_work_info__company_idCompany)r   r   r   r   r   r+   rE   	nav_titlefilter_body_templater   filter_instancefilter_form_context_namesearch_swap_targetgroup_by_fieldsrM   rN   s   @r   rP   rP      s    
 
 
: +I6$&O%) 
*&	;Q~=NO	91\?K	AhK(	4ajA	8!K.I	7:GC!"	
 
7)EOr   rP   c                   ,     e Zd ZdZdZdef fdZ xZS )ContractsExportViewz
    For contracts export
    zcbv/contracts/export.htmlr&   c                     t        |   di |}t        j                  j	                         }t
        }t        |      }||d<   ||d<   |S )zW
        Return context data for rendering contract export fields and filters.
        )querysetexport_columnexport_filterr   )r*   get_context_datar   objectsallr   r   )r/   r&   contextconractsrq   rr   r0   s         r   rs   z$ContractsExportView.get_context_data   sS     '*4V4##'')/&9#0 #0 r   )r   r   r   r   r   r   rs   rM   rN   s   @r   rn   rn      s      0M
 
 
r   rn   c                   f    e Zd ZdZdef fdZeZddddZ 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 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#d$f e	d%      d&d$f e	d'      d(d$fgZ
d)Z xZS )*ContractsDetailViewz
    Detail View
    r&   c                 N    t        |   di |}|d   j                  }||d<   |S )zP
        Return context data with the title set to the contract's name.
        contracttitler   )r*   rs   r1   )r/   r&   rv   r1   r0   s       r   rs   z$ContractsDetailView.get_context_data   s6     '*4V4
+99(r   r<   conract_subtitleemployee_id__get_avatar)r|   subtitleavatarr4   r    r5   r!   r6   r7   r8   r$   zDeduct From Basic Paydeduct_leave_from_basic_pay_colr]   
departmentr[   job_positionrc   job_roler_   shiftra   	work_typer9   r#   zPay Frequencyget_pay_frequency_displayr:   get_status_displayzCalculate Leave Amountcal_leave_amountTNotenote_colDocumentedocument_coldetail_action)r   r   r   r   r   rs   r   rC   headerrE   bodyrI   rM   rN   s   @r   ry   ry      s     E .&+F 
</0	
:+,	
;01	
>	F#	
"	#%FG	
<,'	
>	N+	
:
#	
7W	
;%	
?	_-	
?	89	
8*+	
#	$&8$?	
6J%	
:.!D& $Mr   ry   N)r   typingr   django.urlsr   r   django.utils.decoratorsr   django.utils.translationr   rE   horilla_views.cbv_methodsr   r	   horilla_views.generic.cbv.viewsr
   r   r   r   payroll.filtersr   payroll.forms.component_formsr   payroll.models.modelsr   r   r   rP   rn   ry   r   r   r   <module>r      sS    - 4 6 I  + A * .z2%+BC*U3L 3 V 33 .z2%+BC*UgO g V 3gT .z2%+BC*U5> 5 V 35p .z2%+BC*U,  V 3( .z2%+BC*U*$- *$ V 3*$r   