Ignore:
Timestamp:
12/03/12 17:01:59 (11 years ago)
Author:
douglas
Message:

Ticket #3143 - problema ao copiar evento ou tarefa no modulo expressocalendar

File:
1 edited

Legend:

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

    r7556 r7594  
    822822    //TODO: Remover apos suporte a deepness na api  
    823823    public function deepnessFindEvent(&$uri, &$result, &$criteria, $original) { 
    824         if (isset($original['criteria']['deepness']) && $original['criteria']['deepness'] != 0) { 
    825             $Time = new DateTime('now', new DateTimeZone('UTC')); 
    826             $DayLigth = array(); 
    827             foreach ($result as $i => $v) { 
    828  
    829                 if ( isset($v['calendar']) && (!isset($currentTimezone) || $currentTimezone != $original['criteria']['timezones'][$v['calendar']]))  { 
    830                     $currentTimezone = isset($original['criteria']['timezones'][$v['calendar']]) ? $original['criteria']['timezones'][$v['calendar']] : $v['timezone']; 
    831                     $Time->setTimezone(new DateTimeZone($currentTimezone)); 
    832                 } 
    833  
    834                 $Time->setTimestamp((int) ($v['startTime'] / 1000)); 
    835                 $DayLigth['calendar']['startTime'] = $Time->format('I') ? 1 : 0; 
    836  
    837                 $Time->setTimestamp((int) ($v['endTime'] / 1000)); 
    838                 $DayLigth['calendar']['endTime'] = $Time->format('I') ? 1 : 0; 
    839  
    840                 if (!isset($currentTimezone) || ($currentTimezone != $v['timezone'])) { 
    841                     $currentTimezone = $v['timezone']; 
    842                     $Time->setTimezone(new DateTimeZone($v['timezone'])); 
    843  
    844                     $Time->setTimestamp((int) ($v['startTime'] / 1000)); 
    845                     $DayLigth['event']['startTime'] = $Time->format('I') ? 1 : 0; 
    846  
    847                     $Time->setTimestamp((int) ($v['endTime'] / 1000)); 
    848                     $DayLigth['event']['endTime'] = $Time->format('I') ? 1 : 0; 
    849                 }else 
    850                     $DayLigth['event'] = $DayLigth['calendar']; 
    851  
    852  
    853                 $result[$i]['DayLigth'] = $DayLigth; 
    854  
    855         if(((int)$v['type']) == 2){ 
    856  
    857             $taskToActivity = Controller::find(array('concept' => 'taskToActivity'), false, array('filter' => array('AND', array('=', 'activity', $v['id']), array('=','owner', Config::me('uidNumber'))) , 'deepness' => 2)); 
    858  
    859             if($taskToActivity) 
    860                 $result[$i]['taskToActivity'] = $taskToActivity; 
    861  
    862             $result[$i]['historic'] = Controller::find(array('concept' => 'calendarHistoric'), false, array('filter' => array('=', 'schedulable', $v['id']) , 'deepness' => 2)); 
    863  
    864         } 
    865  
    866                 if (isset($v['id'])) { 
    867                     $data = self::decodeParticipantsEvent($uri, $v, $criteria, $original); 
    868  
    869                     $result[$i]['statusAttendees'] = isset($data['statusAttendees']) ? $data['statusAttendees'] : false; 
    870                     $result[$i]['sizeAttendees'] = isset($data['sizeAttendees']) ? $data['sizeAttendees'] : false; 
    871                     $result[$i]['participants'] = $data['attendees']; 
    872  
    873                     $attachmentRelation = Controller::find(array('concept' => 'schedulableToAttachment'), false, array('filter' => array('=', 'schedulable', $v['id']))); 
    874                     if (is_array($attachmentRelation)) { 
    875                         $attachments = array(); 
    876                         foreach ($attachmentRelation as $key => $value) 
    877                             if (isset($value['attachment']) || !!$value['attachment']) 
    878                                 $attachments[$key] = $value['attachment']; 
    879                         //Pega os anexos sem source 
    880                         $result[$i]['attachments'] = Controller::find(array('concept' => 'attachment'), array('id', 'name', 'type', 'size'), array('filter' => array('IN', 'id', $attachments))); 
    881                     } 
    882  
    883                     $repeat = Controller::find(array('concept' => 'repeat'), false, array('filter' => array('=', 'schedulable', $v['id']))); 
    884  
    885                     unset($result[$i]['repeat']); 
    886  
    887                     if (is_array($repeat)) 
    888                         $result[$i]['repeat'] = $repeat[0]; 
    889                 } 
     824        if (isset($original['criteria']['deepness']) && $original['criteria']['deepness'] != 0) { 
     825 
     826            $date = new DateTime('now', new DateTimeZone('UTC')); 
     827            $DayLigth = array(); 
     828 
     829            foreach ($result as $i => $v) { 
     830 
     831                $currentTimezone = isset($original['criteria']['timezones'][$v['calendar']]) ? $original['criteria']['timezones'][$v['calendar']] : $v['timezone']; 
     832 
     833                $date->setTimestamp((int) ($v['startTime'] / 1000)); 
     834                $date->setTimezone( new DateTimeZone( $v['timezone'] )); 
     835                $DayLigth['event']['startTime'] = ($date->getTimestamp() + $date->getOffset()).'000'; 
     836 
     837                $date->setTimezone( new DateTimeZone($currentTimezone)); 
     838                $DayLigth['calendar']['startTime'] = ($date->getTimestamp() + $date->getOffset()).'000'; 
     839 
     840                $date->setTimestamp((int) ($v['endTime'] / 1000)); 
     841                $date->setTimezone( new DateTimeZone($currentTimezone)); 
     842                $DayLigth['event']['endTime'] = ($date->getTimestamp() + $date->getOffset()).'000'; 
     843 
     844                $date->setTimezone( new DateTimeZone($currentTimezone)); 
     845                $DayLigth['calendar']['endTime'] = ($date->getTimestamp() + $date->getOffset()).'000'; 
     846 
     847 
     848                $result[$i]['DayLigth'] = $DayLigth; 
     849 
     850                if(((int)$v['type']) == 2){ 
     851 
     852                    $taskToActivity = Controller::find(array('concept' => 'taskToActivity'), false, array('filter' => array('AND', array('=', 'activity', $v['id']), array('=','owner', Config::me('uidNumber'))) , 'deepness' => 2)); 
     853 
     854                    if($taskToActivity) 
     855                        $result[$i]['taskToActivity'] = $taskToActivity; 
     856 
     857                    $result[$i]['historic'] = Controller::find(array('concept' => 'calendarHistoric'), false, array('filter' => array('=', 'schedulable', $v['id']) , 'deepness' => 2)); 
     858 
     859                } 
     860 
     861                if (isset($v['id'])) { 
     862                    $data = self::decodeParticipantsEvent($uri, $v, $criteria, $original); 
     863 
     864                    $result[$i]['statusAttendees'] = isset($data['statusAttendees']) ? $data['statusAttendees'] : false; 
     865                    $result[$i]['sizeAttendees'] = isset($data['sizeAttendees']) ? $data['sizeAttendees'] : false; 
     866                    $result[$i]['participants'] = $data['attendees']; 
     867 
     868                    $attachmentRelation = Controller::find(array('concept' => 'schedulableToAttachment'), false, array('filter' => array('=', 'schedulable', $v['id']))); 
     869                    if (is_array($attachmentRelation)) { 
     870                    $attachments = array(); 
     871                    foreach ($attachmentRelation as $key => $value) 
     872                        if (isset($value['attachment']) || !!$value['attachment']) 
     873                        $attachments[$key] = $value['attachment']; 
     874                    //Pega os anexos sem source 
     875                    $result[$i]['attachments'] = Controller::find(array('concept' => 'attachment'), array('id', 'name', 'type', 'size'), array('filter' => array('IN', 'id', $attachments))); 
     876                    } 
     877 
     878                    $repeat = Controller::find(array('concept' => 'repeat'), false, array('filter' => array('=', 'schedulable', $v['id']))); 
     879 
     880                    unset($result[$i]['repeat']); 
     881 
     882                    if (is_array($repeat)) 
     883                    $result[$i]['repeat'] = $repeat[0]; 
     884                } 
     885            } 
    890886            } 
    891         } 
    892  
    893         return $result; 
     887 
     888            return $result; 
    894889    } 
    895890     
Note: See TracChangeset for help on using the changeset viewer.