
    h                     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                 J   |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        |                    }t          j        | j        j	        t          j        |                    }||cxk    rdk    rn nt          | j        j	                  }	n||z
  }	|	|k     r||	z  }||z                       |          c S d S )Nr   seconds)minutesz00:00tzinfo)r   r   intparentinterval_total_minutesinterval_jsonr   combinedatevaluer   fromisoformatreplace)
selfr   tzminutes_shift_deltaintervalstartend
start_timeend_timeinterval_deltas
             #./common/models/cmf_calendar_day.pyget_shifted_work_timez$CmfCalendarDay.get_shifted_work_time
   sL   1FiDK,@,EA(F(FGGGHH4666F'>>>* 	M 	MH!JE3!)$)/4;Me;T;TUUJ'	9KC9P9PQQH&&&&w&&&&&!*43N3T!U!U!U!)J!6 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   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40x 0C 0 0 0 0 0 0r'   r
   N)r   r   r   r   cmf.includecommon.fieldsr   r
   r4   r'   r%   <module>r7      s    8 8 8 8 8 8 8 8 8 8 8 8     * * * * * *10 10 10 10 10%4 10 10 10 10 10r'   