Ignore:
Timestamp:
02/06/13 16:33:31 (11 years ago)
Author:
eduardow
Message:

Ticket #3341 - Implementacao da DFD0151 - Nova funcionalidade ao alterar o grupo de uma atividade

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.5.1-expresso2/prototype/modules/calendar/interceptors/DBMapping.php

    r7795 r7869  
    599599                    $isAllDay = 1; 
    600600 
     601                    $taskToActivity = Controller::find(array('concept' => 'taskToActivity'), false, array('filter' => array('AND', array('=', 'activity', $taskToActivity[0]['activity']), array('=', 'owner', Config::me('uidNumber'))), 'deepness' => 2)); 
     602 
    601603                    if(!empty($activity)){ 
    602604                        $start = $params['startTime']; 
    603605                        $end = $params['endTime']; 
    604606                        foreach($taskToActivity as $t){ 
    605                          if($t['task']['id'] != $params['id']){ 
    606                             $start = $t['task']['startTime'] < $start ? $t['task']['startTime'] : $start; 
    607                             $end = $t['task']['endTime'] > $end ? $t['task']['endTime'] : $end; 
    608                             $isAllDay = (($isAllDay == 1) && ($t['task']['allDay'] == '1')) ? 1 : 0; 
     607                         if($t['task']['id'] != $params['id']){  
     608                             $start = $t['task']['startTime'] < $start ? $t['task']['startTime'] : $start;  
     609                             $end = $t['task']['endTime'] > $end ? $t['task']['endTime'] : $end;  
     610                             $isAllDay = (($isAllDay == 1) && ($t['task']['allDay'] == '1')) ? 1 : 0;  
    609611                         } 
    610612                        } 
     
    841843    } 
    842844 
     845    //Função que traz o 'calendar'(grupo) das tarefas. 
     846    public function getCalendarTask( $task ){ 
     847 
     848        $sql = 'select co.calendar_id as "calendar" from calendar_to_calendar_object as "co", calendar_signature as "cs" where cs.user_uidnumber = '. Config::me('uidNumber')  
     849        .' AND cs.is_owner = 1 AND cs.calendar_id = co.calendar_id AND co.calendar_object_id = '. $task; 
     850 
     851 
     852        $returns = Controller::service('PostgreSQL')->execResultSql($sql); 
     853 
     854        return $returns[0]['calendar']; 
     855 
     856    } 
     857 
    843858    //TODO: Remover apos suporte a deepness na api  
    844859    public function deepnessFindTask(&$uri, &$result, &$criteria, $original) { 
    845         if (isset($original['criteria']['deepness']) && $original['criteria']['deepness'] != 0)  
    846            foreach($result as &$value) 
     860 
     861        if (isset($criteria['deepness']) && $criteria['deepness'] != 0){  
     862              foreach($result as &$value){ 
    847863                $value['task'] = Controller::read(array('concept' => 'schedulable', 'id' => $value['task'])); 
    848             
     864                $value['task']['calendar'] = self::getCalendarTask( $value['task']['id'] );     
     865 
     866            } 
    849867         
    850868        return $result; 
    851869    } 
     870    } 
    852871 
    853872    //TODO: Remover apos suporte a deepness na api  
    854873    public function deepnessFindHistoric(&$uri, &$result, &$criteria, $original) { 
    855         if (isset($original['criteria']['deepness']) && $original['criteria']['deepness'] != 0) { 
     874        if (isset($criteria['deepness']) && $criteria['deepness'] != 0) { 
    856875            foreach($result as &$v){ 
    857876                $v['user'] = Controller::read(array('concept' => 'user', 'id' => $v['user'])); 
     
    883902                .'calendar_object.range_end as "rangeEnd", calendar_object.last_update as "lastUpdate", ' 
    884903                .'calendar_object.dtstamp as "dtstamp", calendar_object.sequence as "sequence", ' 
    885                 .'calendar_object.tzid as "timezone" ' 
    886                 .'FROM calendar_object ' 
    887                 .'WHERE ( calendar_object.id = '. $criteria['schedulable'] .')'; 
     904                .'calendar_object.tzid as "timezone", calendar_to_calendar_object.calendar_id as "calendar" '  
     905                .'FROM calendar_object, calendar_to_calendar_object '  
     906                .'WHERE ( calendar_object.id = '. $criteria['schedulable'] .' AND calendar_to_calendar_object.calendar_object_id = calendar_object.id)'; 
     907 
    888908 
    889909            $params = Controller::service('PostgreSQL')->execResultSql($sql); 
     910 
     911            foreach( $params as &$event ){  
     912                if(isset( $event['repeat'] ) && isset( $event['repeat']['id'] ) ){  
     913                    $occurrences = Controller::service('PostgreSQL')->execResultSql('SELECT DISTINCT occurrence FROM calendar_object as "c", calendar_repeat_occurrence as "o", calendar_repeat as "r" WHERE r.object_id = '. $event['id'] .' AND o.repeat_id = r.id ' );  
     914    
     915                    if($occurrences){  
     916                        $event['occurrences'] = array();  
     917 
     918                        foreach($occurrences as $o)  
     919                            $event['occurrences'][] = $o['occurrence'];  
     920                    }else  
     921                        unset( $event['occurrences'] );  
     922                }  
     923            } 
    890924 
    891925            $params = self::deepnessFindEvent($uri, $params, $criteria, $original); 
     
    899933    //TODO: Remover apos suporte a deepness na api  
    900934    public function deepnessFindEvent(&$uri, &$result, &$criteria, $original) { 
    901         if ((isset($original['criteria']['deepness']) && $original['criteria']['deepness'] != 0) ) { 
     935        if ((isset($criteria['deepness']) && $criteria['deepness'] != 0) ) { 
    902936 
    903937            $date = new DateTime('now', new DateTimeZone('UTC')); 
     
    9881022    public static function deepnessReadParticipant( &$uri , &$result , &$criteria , $original ){ 
    9891023         
    990        if(isset($original['criteria']['deepness']) && $original['criteria']['deepness'] != 0) 
     1024       if(isset($criteria['deepness']) && $criteria['deepness'] != 0) 
    9911025       { 
    9921026            if(isset($result['id']) && isset($result['user'])) 
Note: See TracChangeset for help on using the changeset viewer.