B
    Yf1                 @   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}xl| jD ]b}t| jj	t
|d }t| jj	t
|d }|| }||k r||8 }qF|| j|dS qFW d S )Nr   )seconds)Zminutes   )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 }x|| jD ]r}t| j jt	
|d j|d}t| j jt	
|d j|d}||kr<||k r|| }n|| }||7 }q<W 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   