
    vgy"                     L   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	 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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   eed       e ed      d       G d dejB                                      Z" eed       e ed      d       G d dejF                                      Z$ eed       e ed      d       G d dejJ                                      Z& eed       e ed      d       G d dejN                                      Z( G d dejB                        Z) G d dejF                        Z* eed       e ed      d       G d  d!ejJ                                      Z+ G d" d#ejN                        Z,y$)%    )Any)messages)HttpResponse)render)reverse_lazy)method_decorator)gettext_lazy)#filter_own_and_subordinate_recordesis_reportingmanager)horilla_middlewares)login_requiredpermission_required)views)models)BonusPointSettingFilterEmployeeBonusPointFilter)BonusPointSettingFormEmployeeBonusPointFormdispatch)namezpms.view_bonuspointsettingc                   8    e Zd ZdZ ed      Z ed      ZdZdZy)BonusPointSettingSectionViewz'
    BonusPointSetting SectionView
    zbonus-point-setting-navbonus-point-setting-list-viewlistContainerz&bonus/bonus_point_setting_section.htmlN	__name__
__module____qualname____doc__r   nav_urlview_urlview_container_idtemplate_name     /var/www/horilla/pms/cbvs.pyr   r      s,     45G;<H' =Mr%   r   c                   H     e Zd ZdZd fdZ ed      Z ed      ZdZ	 xZ
S )BonusPointSettingNavViewz$
    BonusPointSetting nav view
    c                 L    t        |   |i | dt        d       d| _        y )Nz
            hx-get="zcreate-bonus-point-settingz"
            hx-target="#genericModalBody"
            data-toggle="oh-modal-toggle"
            data-target="#genericModal"
        )super__init__r   create_attrs)selfargskwargs	__class__s      r&   r+   z!BonusPointSettingNavView.__init__-   s6    $)&)!!">?@ A	r%   zBonus Point Settingr   #listContainerreturnN)r   r   r   r   r+   _trans	nav_titler   
search_urlsearch_swap_target__classcell__r0   s   @r&   r(   r(   &   s+     ,-I=>J)r%   r(   zpms.change_bonuspointsettingc                        e Zd ZdZeZej                  Z e	d      Z
dZ fdZ fdZdedef fdZdedej                  f fd	Z xZS )
BonusPointSettingFormViewz$
    BonusPointSettingForm View
    zCreate Bonus Point Settingzbonus/bonus_form.htmlc                     t         |          }t        j                  j                  j                  | j                  d         j                         }||d<   |S )Npk)r=   instance)r*   get_form_kwargsr   BonusPointSettingobjectsfilterr/   first)r-   r/   r>   r0   s      r&   r?   z)BonusPointSettingFormView.get_form_kwargsG   sP    (*++33::dkk$>O:PVVX%zr%   c                 &    t        |   di |}|S Nr$   r*   get_context_datar-   r/   contextr0   s      r&   rG   z*BonusPointSettingFormView.get_context_dataM       '*4V4r%   formr3   c                     |j                         s>|j                  j                         }t        | j                  | j
                  ||d      S t        |   |      S N)rK   errorsis_validrN   as_datar   requestr#   r*   form_invalidr-   rK   rN   r0   s      r&   rS   z&BonusPointSettingFormView.form_invalidQ   S    }}[[((*Fd00462R  w#D))r%   c                    |j                         rcd}|j                  j                  rd}|j                          t	        j
                  | j                  t        |             | j                         S t        | )  |      S )NzBonus Point Setting addedzBonus Point Setting updatedrP   r>   r=   saver   successrR   r4   r   r*   
form_validr-   rK   messager0   s      r&   rZ   z$BonusPointSettingFormView.form_validZ   sc    ==?1G}}7IIKT\\6'?;$$&&w!$''r%   )r   r   r   r   r   
form_classr   r@   modelr4   new_display_titler#   r?   rG   r   r   rS   r   rZ   r8   r9   s   @r&   r;   r;   ;   sg     'J$$E;<+M* * *
(4 
(9K9K 
( 
(r%   r;   c                   H    e Zd ZdZej
                  Z ed      Ze	Z
dZg dZy)BonusPointSettingListViewz$
    BnusPointSetting list view
    r   action_template))Modelget_model_display)zApplicable Forget_applicable_for_display)z	Bonus Forget_bonus_for_display)	Conditionget_condition)Pointspoints)z	Is Activeis_active_toggleN)r   r   r   r   r   r@   r^   r   r6   r   filter_classaction_methodcolumnsr$   r%   r&   ra   ra   g   s0     $$E=>J*L%MGr%   ra   c                   8    e Zd ZdZ ed      Z ed      ZdZdZy)EmployeeBonusPointSectionViewz(
    EmployeeBonusPoint SectionView
    zemployee-bonus-point-navemployee-bonus-point-list-viewr   z'bonus/employee_bonus_point_section.htmlNr   r$   r%   r&   rp   rp      s,     56G<=H' >Mr%   rp   c            	            e Zd ZdZdZd fdZ ed      Z e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gZ xZS )EmployeeBonusPointNavViewz
    BonusPoint nav view
    zbonus/bonus_point_nav.htmlc                     t        |   |i | | j                  }|r<t        |      s|j                  j                  d      rdt        d       d| _        y y y )Nzpms.add_employeebonuspointz
                    hx-get="zcreate-employee-bonus-pointz"
                    hx-target="#genericModalBody"
                    data-toggle="oh-modal-toggle"
                    data-target="#genericModal"
                    )r*   r+   rR   r   userhas_permr   r,   )r-   r.   r/   rR   r0   s       r&   r+   z"EmployeeBonusPointNavView.__init__   sh    $)&),,"7+w||/D/D,0))*GHI J%!0 r%   zEmployee Bonus Point rq   r1   employee_idEmployee5employee_id__employee_work_info__reporting_manager_idzReporting Manager.employee_id__employee_work_info__department_id
Department0employee_id__employee_work_info__job_position_idzJob Position1employee_id__employee_work_info__employee_type_idzEmployement Type+employee_id__employee_work_info__company_idCompanyr2   )r   r   r   r   r#   r+   r4   r5   r   r6   r7   group_by_fieldsr8   r9   s   @r&   rs   rs      s     1M ./I>?J)	z*+C&'	
 
:6,;OP	;VN=ST?%&	
 
7y8IJOr%   rs   pms.change_employeebonuspointc                        e Zd ZdZeZej                  Z e	d      Z
 fdZdedef fdZdedej                  f fdZ xZS )EmployeeBonusPointFormViewz
    BonusPointForm View
    zCreate Employee Bonus Point c                 &    t        |   di |}|S rE   rF   rH   s      r&   rG   z+EmployeeBonusPointFormView.get_context_data   rJ   r%   rK   r3   c                     |j                         s>|j                  j                         }t        | j                  | j
                  ||d      S t        |   |      S rM   rO   rT   s      r&   rS   z'EmployeeBonusPointFormView.form_invalid   rU   r%   c                 
   |j                         rdd}|j                  j                  rd}|j                          t	        j
                  | j                  t        |             | j                  d      S t        | )  |      S )NzBonus Point addedzBonus Point updatedz
                    <script>
                        $('#bonus-tab-button').click()
                    </script>
                rW   r[   s      r&   rZ   z%EmployeeBonusPointFormView.form_valid   sn    ==?)G}}/IIKT\\6'?;$$  w!$''r%   )r   r   r   r   r   r]   r   EmployeeBonusPointr^   r4   r_   rG   r   r   rS   r   rZ   r8   r9   s   @r&   r   r      s]     (J%%E=>* * *(5 (%:L:L ( (r%   r   c                   r     e Zd ZdZdeddf fdZej                  Z e	d      Z
eZg dZg dZ fd	Z xZS )
EmployeeBonusPointListViewz
    BnusPoint list view
    r/   r3   Nc                     t        |   di | | j                  }|r/t        |      s|j                  j                  d      rd| _        y y y )Nr   rb   r$   )r*   r+   rR   r   ru   rv   rm   )r-   r/   rR   r0   s      r&   r+   z#EmployeeBonusPointListView.__init__   sO    "6",,"7+w||/D/D/0 &7"0 r%   rq   )rw   bonus_pointbased_on))rx   rw   )zBonus Pointr   )zBased Onr   c                 
   t         |          }t        t        j                  dd       }t        |      s|j                  j                  d      rt        ||d      S |j                  |j                  j                        S )NrR   zpms.view_employeebonuspoint)perm)rw   )r*   get_querysetgetattrr   _thread_localsr   ru   rv   r
   rB   employee_get)r-   querysetrR   r0   s      r&   r   z'EmployeeBonusPointListView.get_queryset   su    7')-<<iNw'7<<+@+@),
 7(E  ??w||/H/H?IIr%   )r   r   r   r   r   r+   r   r   r^   r   r6   r   rl   bulk_update_fieldsrn   r   r8   r9   s   @r&   r   r      sS    7 7 7 %%E>?J+LG
J 
Jr%   r   N)-typingr   django.contribr   django.httpr   django.shortcutsr   django.urlsr   django.utils.decoratorsr   django.utils.translationr	   r4   base.methodsr
   r   horillar   horilla.decoratorsr   r   horilla_views.generic.cbvr   pmsr   pms.filtersr   r   	pms.formsr   r   HorillaSectionViewr   HorillaNavViewr(   HorillaFormViewr;   HorillaListViewra   rp   rs   r   r   r$   r%   r&   <module>r      s    # $ # $ 4 ; Q ' B +  I C .z2%&BC*U=5#;#; = V 3=  .z2%&BC*U*u33 * V 3*& .z2%&DEJW'( 5 5 '( X 3'(T .z2%&BC*U 5 5  V 3.>E$<$< > % 4 4 %P .z2%&EFZX&(!6!6 &( Y 3&(R'J!6!6 'Jr%   