Ignore:
Timestamp:
08/20/12 11:15:00 (12 years ago)
Author:
acoutinho
Message:

Ticket #3054 - Inconsistencia ao importar alguma tarefa individual

File:
1 edited

Legend:

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

    r7028 r7068  
    5858                            $sTime = new DateTime('@' . (int) ($v['startTime'] / 1000), $timezone); 
    5959                            $sTime->setTimezone($apTimezoneOBJ); 
    60                             $eTime = new DateTime('@' . (int) ($v['endTime'] / 1000), $timezone); 
    61                             $eTime->setTimezone($apTimezoneOBJ); 
    6260 
    6361                            if (( isset($v['repeat']) ) && ( isset($v['repeat']['frequency']) && $v['repeat']['frequency'] && $v['repeat']['frequency'] != 'none' ))  
     
    6563                             
    6664 
    67                             if (isset($v['allDay']) && $v['allDay'] == 1) { 
    68                                 $vevent->setProperty('dtstart', $sTime->format(DATE_RFC822), array("VALUE" => "DATE")); 
    69                                 $vevent->setProperty('dtend', $eTime->format(DATE_RFC822), array("VALUE" => "DATE")); 
    70                                 $vevent->setProperty('X-MICROSOFT-CDO-ALLDAYEVENT', 'TRUE'); 
    71                             } else { 
    72                                 $vevent->setProperty('dtstart', $sTime->format(DATE_RFC822), array('TZID' => $apTimezone)); 
    73                                 $vevent->setProperty('dtend', $eTime->format(DATE_RFC822), array('TZID' => $apTimezone)); 
    74                                 $vevent->setProperty('X-MICROSOFT-CDO-ALLDAYEVENT', 'FALSE'); 
     65                            if (isset($v['allDay']) && $v['allDay'] == 1) 
     66                { 
     67                    $vevent->setProperty('dtstart', $sTime->format(DATE_RFC822), array("VALUE" => "DATE")); 
     68                    $vevent->setProperty('X-MICROSOFT-CDO-ALLDAYEVENT', 'TRUE'); 
     69                            } else 
     70                { 
     71                    $vevent->setProperty('dtstart', $sTime->format(DATE_RFC822), array('TZID' => $apTimezone)); 
     72                    $vevent->setProperty('X-MICROSOFT-CDO-ALLDAYEVENT', 'FALSE'); 
    7573                            } 
    7674                                             
     
    137135                } 
    138136 
     137                ob_start(); 
     138                print_r( "\n dtStart \n"); 
     139                print_r($sTime->format(DATE_RFC822)); 
     140                print_r( "\n dtEnd \n"); 
     141                print_r( $eTime->format(DATE_RFC822)); 
     142                $output = ob_get_clean(); 
     143                file_put_contents( "/tmp/acoutinho.log",  $output , FILE_APPEND); 
     144 
    139145                if(isset($v['due']) && $v['due'] != '' && (int)$v['due'] > 0){ 
    140146                    $dueTime = new DateTime('@' . (int) ($v['due'] / 1000), $timezone); 
     
    182188                            break; 
    183189                    } 
    184                 }        
     190                } 
     191 
     192        ob_start(); 
     193        print_r( "\n Ical Gerado \n"); 
     194        print_r( $ical->createCalendar()); 
     195        $output = ob_get_clean(); 
     196        file_put_contents( "/tmp/acoutinho.log",  $output , FILE_APPEND); 
    185197 
    186198                return $ical->createCalendar(); 
     
    282294            $sTime = new DateTime('@' . (int) ($v['startTime'] / 1000), $timezone); 
    283295            $sTime->setTimezone($apTimezoneOBJ); 
    284             $eTime = new DateTime('@' . (int) ($v['endTime'] / 1000), $timezone); 
    285             $eTime->setTimezone($apTimezoneOBJ); 
    286296 
    287297            if (isset($v['allDay']) && $v['allDay'] == 1) { 
    288298                $todo->setProperty('dtstart', $sTime->format(DATE_RFC822), array("VALUE" => "DATE")); 
    289                 $todo->setProperty('dtend', $eTime->format(DATE_RFC822), array("VALUE" => "DATE")); 
    290299                //$todo->setProperty('X-MICROSOFT-CDO-ALLDAYEVENT', 'TRUE'); 
    291300            } else { 
    292301                $todo->setProperty('dtstart', $sTime->format(DATE_RFC822), array('TZID' => $apTimezone)); 
    293                 $todo->setProperty('dtend', $eTime->format(DATE_RFC822), array('TZID' => $apTimezone)); 
    294302                //$todo->setProperty('X-MICROSOFT-CDO-ALLDAYEVENT', 'FALSE'); 
    295303            } 
     
    372380    public function createAlarms($alarms, &$vevent) 
    373381    {    
    374             foreach ($alarms as $ia => $va) 
     382            foreach ($alarms as $va) 
    375383            { 
    376384                $valarm = new valarm(); 
     
    17411749        $interation['schedulable://' . $eventID] = $schedulable; 
    17421750 
    1743  
    1744  
    1745  
    1746  
    17471751        return $interation; 
    17481752    } 
     
    17841788 
    17851789        /* Data de Termino */ 
    1786         $endTime = $component->getProperty('dtend', false, true); 
    1787  
    1788         $tzid = isset($endTime['params']['TZID']) ? $endTime['params']['TZID'] : $params['X-WR-TIMEZONE']; 
    1789          
    1790         if($tzid) 
    1791             $tzid = self::nomalizeTZID($tzid); 
    1792  
    1793         if (isset($endTime['params']['VALUE']) && $endTime['params']['VALUE'] === 'DATE') 
    1794             $schedulable['endTime'] = self::date2timestamp($endTime['value']) - self::_getTzOffset('UTC', $schedulable['timezone'], '@' . self::date2timestamp($endTime['value'])) . '000'; 
    1795         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 */ 
    1796             $schedulable['endTime'] = self::date2timestamp($endTime['value']) - self::_getTzOffset('UTC', $tzid, '@' . self::date2timestamp($endTime['value'])) . '000'; 
    1797         else { 
    1798             $schedulable['endTime'] = self::date2timestamp($endTime['value']) . '000'; 
    1799             if (strpos($params['prodid'], 'Outlook') !== false) { 
    1800                 //Se o ics veio em utc não aplicar horario de verão 
    1801                 $eTime = new DateTime('@' . (int) ($schedulable['endTime'] / 1000), new DateTimeZone('UTC')); 
    1802                 $eTime->setTimezone($objTimezone); 
    1803                 if ($eTime->format('I')) 
    1804                     $schedulable['endTime'] = $schedulable['endTime'] - 3600000; 
    1805             } 
    1806         } 
     1790        if($due = $component->getProperty('due', false, true)){ 
     1791 
     1792        $tzid = isset($due['params']['TZID']) ? $due['params']['TZID'] : $params['X-WR-TIMEZONE']; 
     1793 
     1794        if($tzid) 
     1795            $tzid = self::nomalizeTZID($tzid); 
     1796 
     1797        if (isset($due['params']['VALUE']) && $due['params']['VALUE'] === 'DATE') 
     1798            $schedulable['due'] = self::date2timestamp($due['value']) - self::_getTzOffset('UTC', $schedulable['timezone'], '@' . self::date2timestamp($due['value'])) . '000'; 
     1799        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 */ 
     1800            $schedulable['due'] = self::date2timestamp($due['value']) - self::_getTzOffset('UTC', $tzid, '@' . self::date2timestamp($due['value'])) . '000'; 
     1801        else { 
     1802            $schedulable['due'] = self::date2timestamp($due['value']) . '000'; 
     1803            if (strpos($params['prodid'], 'Outlook') !== false) { 
     1804            //Se o ics veio em utc não aplicar horario de verão 
     1805            $dueTime = new DateTime('@' . (int) ($schedulable['due'] / 1000), new DateTimeZone('UTC')); 
     1806            $dueTime->setTimezone($objTimezone); 
     1807 
     1808            if ($dueTime->format('I')) 
     1809                $schedulable['due'] = $schedulable['due'] - 3600000; 
     1810            } 
     1811        } 
     1812        $schedulable['endTime'] = $schedulable['due']; 
     1813    }else 
     1814        $schedulable['endTime'] = $schedulable['startTime']; 
    18071815 
    18081816        $schedulable['type'] = '2'; //type schedulable 
     
    20032011        $interation['schedulable://' . $todoID] = $schedulable; 
    20042012 
    2005         return $interation; 
     2013    return $interation; 
    20062014    } 
    20072015 
Note: See TracChangeset for help on using the changeset viewer.