Ignore:
Timestamp:
05/16/12 18:50:10 (12 years ago)
Author:
acoutinho
Message:

Ticket #2751 - Inconsistencias na importacao de eventos

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/services/iCal.php

    r6171 r6215  
    130130    public function createAlarms($alarms, &$vevent) 
    131131    {    
    132                 foreach ($alarms as $ia => $va) 
     132            foreach ($alarms as $ia => $va) 
    133133            { 
    134134                $valarm = new valarm(); 
     
    224224        $method = $vcalendar->getProperty('method', FALSE, FALSE); 
    225225        $params['prodid'] = $vcalendar->getProperty('prodid', false, false); 
     226        $params['X-WR-TIMEZONE'] = ( $xrTimezone = $vcalendar->getProperty('X-WR-TIMEZONE', false, false)) ? self::nomalizeTZID($xrTimezone[1]) : false ; 
    226227 
    227228        while ($component = $vcalendar->getComponent()) { 
     
    279280                                    $startTime = $component->getProperty('dtstart', false, true); 
    280281 
    281                                     /* Tiem zone do evento */ 
    282                                     if (isset($startTime['params']['TZID'])) 
    283                                         $sc['timezone'] = self::nomalizeTZID($startTime['params']['TZID']); 
     282                                    $tzid = isset($startTime['params']['TZID']) ? $startTime['params']['TZID'] : $params['X-WR-TIMEZONE']; 
     283 
     284                                    /* Tiem zone do evento */    
     285                                    if ($tzid) 
     286                                        $sc['timezone'] = self::nomalizeTZID($tzid); 
    284287                                    else 
    285288                                        $sc['timezone'] = isset($params['calendar_timezone']) ? $params['calendar_timezone'] : 'America/Sao_Paulo'; 
     
    717720        } 
    718721 
    719  
    720722        /* Data de Termino */ 
    721723        $endTime = $component->getProperty('dtend', false, true); 
     
    749751        $startTime = $component->getProperty('dtstart', false, true); 
    750752 
     753        $tzid = isset($startTime['params']['TZID']) ? $startTime['params']['TZID'] : $params['X-WR-TIMEZONE']; 
     754         
    751755        /* Tiem zone do evento */ 
    752         if (isset($startTime['params']['TZID'])) 
    753             $schedulable['timezone'] = self::nomalizeTZID($startTime['params']['TZID']); 
     756        if ($tzid) 
     757            $schedulable['timezone'] = $tzid; 
    754758        else 
    755759            $schedulable['timezone'] = isset($params['calendar_timezone']) ? $params['calendar_timezone'] : 'America/Sao_Paulo'; 
     
    760764            $schedulable['allDay'] = 1; 
    761765            $schedulable['startTime'] = self::date2timestamp($startTime['value']) - self::_getTzOffset('UTC', $schedulable['timezone'], '@' . self::date2timestamp($startTime['value'])) . '000'; 
    762         } elseif (isset($startTime['params']['TZID']) && !isset($startTime['value']['tz'])) {/* Caso não tenha um tz na data mais exista um parametro TZID deve ser aplicado o timezone do TZID a data */ 
    763             $schedulable['startTime'] = self::date2timestamp($startTime['value']) - self::_getTzOffset('UTC', $startTime['params']['TZID'], '@' . self::date2timestamp($startTime['value'])) . '000'; 
     766        } elseif ($tzid && !isset($startTime['value']['tz'])) {/* Caso não tenha um tz na data mais exista um parametro TZID deve ser aplicado o timezone do TZID a data */ 
     767            $schedulable['startTime'] = self::date2timestamp($startTime['value']) - self::_getTzOffset('UTC', $tzid, '@' . self::date2timestamp($startTime['value'])) . '000'; 
    764768            $schedulable['allDay'] = 0; 
    765769        } else { 
     
    774778        } 
    775779 
    776  
    777780        /* Data de Termino */ 
    778781        $endTime = $component->getProperty('dtend', false, true); 
    779782 
     783        $tzid = isset($endTime['params']['TZID']) ? $endTime['params']['TZID'] : $params['X-WR-TIMEZONE']; 
     784 
    780785        if (isset($endTime['params']['VALUE']) && $endTime['params']['VALUE'] === 'DATE') 
    781786            $schedulable['endTime'] = self::date2timestamp($endTime['value']) - self::_getTzOffset('UTC', $schedulable['timezone'], '@' . self::date2timestamp($endTime['value'])) . '000'; 
    782         else if (isset($endTime['params']['TZID']) && !isset($endTime['value']['tz'])) /* Caso não tenha um tz na data mais exista um parametro TZID deve ser aplicado o timezone do TZID a data */ 
    783             $schedulable['endTime'] = self::date2timestamp($endTime['value']) - self::_getTzOffset('UTC', $endTime['params']['TZID'], '@' . self::date2timestamp($endTime['value'])) . '000'; 
     787        else if ($tzid && !isset($endTime['value']['tz'])) /* Caso não tenha um tz na data mais exista um parametro TZID deve ser aplicado o timezone do TZID a data */ 
     788            $schedulable['endTime'] = self::date2timestamp($endTime['value']) - self::_getTzOffset('UTC', $tzid, '@' . self::date2timestamp($endTime['value'])) . '000'; 
    784789        else { 
    785790            $schedulable['endTime'] = self::date2timestamp($endTime['value']) . '000'; 
Note: See TracChangeset for help on using the changeset viewer.