
    Yf1                     X    d dl m Z mZmZmZ d dlT d dlmZ  G d dej                  ZdS )    )datetime	timedeltatimetimezone)*)cmf_calendar_dayc                   2    e Zd ZdZdedefdZdedefdZdS )CmfCalendarDayTminutes_shiftreturnc                    |dk     rd S t          t          t          | j        j         pd                              }|| j        k    rd S t          |          }| j        D ]}t          j        | j        j	        t          j        |d                             }t          j        | j        j	        t          j        |d                             }||z
  }||k     r||z  }||z                       |          c S d S )Nr   seconds)minutes   tzinfo)r   r   intparentinterval_total_minutesinterval_jsonr   combinedatevaluer   fromisoformatreplace)selfr   tzminutes_shift_deltainterval
start_timeend_timeinterval_deltas           #./common/models/cmf_calendar_day.pyget_shifted_work_timez$CmfCalendarDay.get_shifted_work_time
   s   1FiDK,@,EA(F(FGGGHH4666F'>>>* 		M 		MH!)$)/4;MhWXk;Z;Z[[J'	9KHUVK9X9XYYH%
2N 333#~5##"%88AAALLLLL		M 		M    target_timec                    | j         j        |                                 k    rd S t          t          t	          | j        j        pd                              }t                      }| j        D ]}t          j        | j         j        t          j
        |d                                                 |          }t          j        | j         j        t          j
        |d                                                 |          }||k    r||k     r||z
  }n||z
  }||z  }t	          |                                dz            S )Nr   r   r   r   <   )r   r   r   r   r   r   r   r   r   r   r   r   total_seconds)r   r'   r   shiftr    r!   r"   interval_shifts           r$   get_work_time_shiftz"CmfCalendarDay.get_work_time_shift    s-   9?k..0000FiDK,@,EA(F(FGGGHH* 
	( 
	(H!)$)/4;MhWXk;Z;Z[[cckmcnnJ'	9KHUVK9X9XYYaaikallHZ''))%0:%=NN%-
%:N'5&&((B.///r&   N)__name__
__module____qualname__	api_allowr   r   r%   r-    r&   r$   r
   r
      sc        IM3 M8 M M M M,0x 0C 0 0 0 0 0 0r&   r
   N)r   r   r   r   cmf.includecommon.fieldsr   r
   r2   r&   r$   <module>r5      s    8 8 8 8 8 8 8 8 8 8 8 8     * * * * * *-0 -0 -0 -0 -0%4 -0 -0 -0 -0 -0r&   