Ignore:
Timestamp:
04/16/12 17:23:13 (12 years ago)
Author:
acoutinho
Message:

Ticket #2631 - Inconsistencia na mudanca de fuso-horario na decorrencia de uma repeticao

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/calendar/interceptors/DBMapping.php

    r5947 r5953  
    308308    if( $repeat['frequency'] === 'none' ) 
    309309        return( array() ); 
    310  
    311     $start =  new DateTime( '@'.(int)( max( $start, $repeat['startTime']  ) / 1000 ), new DateTimeZone('UTC') );     
    312  
     310  
     311    //Nao deve ser usando o horário da repeticao pois nela contem apenas o dias, 
     312    //deve se recuperar o horário do evento para um correto calculo. 
     313    if(max( $start, $repeat['startTime']  ) != $repeat['startTime']){ 
     314        $time = new DateTime( '@'.(int)( $repeat['startTime'] / 1000 ), new DateTimeZone('UTC') ); 
     315         
     316        $hoursOcurrence = new DateTime( '@'.(int)( $start / 1000 ), new DateTimeZone('UTC') ); 
     317        $hoursOcurrence = $hoursOcurrence->format('H'); 
     318         
     319        $diffTime = ((($time->format('H') - $hoursOcurrence) * (3600000)) + ($time->format('i') * (60000))); 
     320        $start =  new DateTime( '@'.(int)( ( $start + $diffTime )  / 1000 ), new DateTimeZone('UTC') );     
     321         
     322         
     323    }else 
     324        $start =  new DateTime( '@'.(int)( max( $start, $repeat['startTime']  ) / 1000 ), new DateTimeZone('UTC') );     
     325     
    313326    foreach($repeat as $rule => $value) 
    314327    { 
Note: See TracChangeset for help on using the changeset viewer.