U
    /g1                     @   sB   d dl m Z mZmZmZ d dlT d dlmZ G dd dejZdS )    )datetime	timedeltatimetimezone)*)cmf_calendar_dayc                   @   s0   e Zd ZdZeedddZeedddZdS )	CmfCalendarDayT)minutes_shiftreturnc                 C   s   |dk rd S t tt| jj pdd}|| jkr4d S t|d}| jD ]f}t| jj	t
|d }t| jj	t
|d }|| }||k r||8 }qD|| j|d  S qDd S )Nr   Zseconds)Zminutes   Ztzinfo)r   r   intparentZinterval_total_minutesinterval_jsonr   combinedatevaluer   fromisoformatreplace)selfr	   tzZminutes_shift_deltainterval
start_timeend_timeZinterval_delta r   #./common/models/cmf_calendar_day.pyget_shifted_work_time
   s    



z$CmfCalendarDay.get_shifted_work_time)target_timer
   c                 C   s   | j j|  krd S ttt| jjp$dd}t }| jD ]r}t| j jt	
|d j|d}t| j jt	
|d j|d}||kr:||k r|| }n|| }||7 }q:t| d S )Nr   r   r   r   <   )r   r   r   r   r   r   r   r   r   r   r   r   Ztotal_seconds)r   r   r   shiftr   r   r   Zinterval_shiftr   r   r   get_work_time_shift    s    
""

z"CmfCalendarDay.get_work_time_shiftN)__name__
__module____qualname__Z	api_allowr   r   r   r!   r   r   r   r   r      s   r   N)r   r   r   r   Zcmf.includeZcommon.fieldsr   r   r   r   r   r   <module>   s   