o
    e                     @   s*   d dl mZ d dlZG dd dejZdS )    )modelsNc                       sX   e Zd Z fddZ fddZ fddZ fddZ fd	d
Z fddZ  Z	S )LeaveManagerc                    s
   t   S )zP
		overrides objects.all() 
		return all leaves including pending or approved
		)superget_querysetself	__class__ &/var/www/html/humari/leave/managers.pyr      s   
zLeaveManager.get_querysetc                       t   jdddS )zC
		gets all pending leaves -> Leave.objects.all_pending_leaves()
		pendingstatus-createdr   r   filterorder_byr   r   r
   r   all_pending_leaves   s   zLeaveManager.all_pending_leavesc                    r   )N	cancelledr   r   r   r   r   r
   r   all_cancel_leaves      zLeaveManager.all_cancel_leavesc                    r   )Nrejectedr   r   r   r   r   r
   r   all_rejected_leaves   r   z LeaveManager.all_rejected_leavesc                    s   t   jddS )zE
		gets all approved leaves -> Leave.objects.all_approved_leaves()
		approvedr   )r   r   r   r   r   r
   r   all_approved_leaves#   s   z LeaveManager.all_approved_leavesc                    s   t   jtj jdS )z
		returns all leaves in current year; Leave.objects.all_leaves_current_year()
		or add all_leaves_current_year().count() -> int total 
		this include leave approved,pending,rejected,cancelled

		)startdate__year)r   r   r   datetimedatetodayyearr   r   r
   r   current_year_leaves+   s   z LeaveManager.current_year_leaves)
__name__
__module____qualname__r   r   r   r   r   r!   __classcell__r
   r
   r   r   r      s    		r   )	django.dbr   r   Managerr   r
   r
   r
   r   <module>   s    