Ignore:
Timestamp:
08/06/12 10:03:03 (12 years ago)
Author:
acoutinho
Message:

Ticket #2966 - Criacao de atividades com suporte a alarmes e anexos

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.4.2-expresso1/prototype/modules/calendar/interceptors/DBMapping.php

    r6891 r6945  
    150150                .'calendar FROM calendar_to_calendar_object , calendar_object ' 
    151151                .'WHERE ( calendar_to_calendar_object.calendar_id IN (\'' . implode('\',\'', $criteria['filter'][2][2]) . '\')) ' 
    152                 .'AND calendar_to_calendar_object.calendar_object_id = calendar_object.id ';     
     152                .'AND calendar_to_calendar_object.calendar_object_id = calendar_object.id ' 
     153        .'AND calendar_object.id NOT IN(select calendar_object_task_id from calendar_task_to_activity_object where owner = \'' . Config::me('uidNumber') . '\') ';       
    153154             
    154155            if(isset($criteria['searchEvent']) && $criteria['searchEvent']){ 
     
    180181                $params = array_merge($params, $occ);            
    181182            } 
     183            $params = self::deepnessFindEvent($uri, $params, $criteria, $original); 
     184            return false; 
     185        } 
     186    } 
     187 
     188    public function findTask(&$uri, &$params, &$criteria, $original) { 
     189 
     190        ob_start(); 
     191        print_r('$uri' . "\n"); 
     192        print_r($uri); 
     193        print_r('$params' . "\n"); 
     194        print_r($params); 
     195        print_r('$criteria' . "\n"); 
     196        print_r($criteria); 
     197        print_r('$original' . "\n"); 
     198        print_r($original); 
     199        $output = ob_get_clean(); 
     200        file_put_contents( "/tmp/acoutinho.log",  $output , FILE_APPEND); 
     201        if (isset($criteria['filterTasks']) && $criteria['filterTasks']) { 
     202 
     203            $sql = ' SELECT calendar_object.id as id ,calendar_object.cal_uid as "uid", calendar_object.type_id as "type", ' 
     204            .'calendar_object.dtstart as "startTime", calendar_object.summary as "summary", ' 
     205            .'calendar_object.description as "description", calendar_object.dtend as "endTime" , ' 
     206            .'calendar_object.priority as "priority", calendar_object.due as "due", ' 
     207            .'calendar_object.percentage as "percentage", calendar_object.status as "status", ' 
     208            .'calendar_object.location as "location", calendar_object.allday as "allDay", ' 
     209            .'calendar_object.transp as "transparent", calendar_object.class_id as "class", ' 
     210            .'calendar_object.repeat as "repeat", calendar_object.range_start as "rangeStart", ' 
     211            .'calendar_object.range_end as "rangeEnd", calendar_object.last_update as "lastUpdate", ' 
     212            .'calendar_object.dtstamp as "dtstamp", calendar_object.sequence as "sequence", ' 
     213            .'calendar_object.tzid as "timezone" ,calendar_to_calendar_object.calendar_id as ' 
     214            .'calendar FROM calendar_to_calendar_object , calendar_object ' 
     215            .'WHERE ( calendar_to_calendar_object.calendar_id IN (\'' . implode('\',\'', $criteria['filter'][3][2]) . '\')) ' 
     216            .'AND calendar_to_calendar_object.calendar_object_id = calendar_object.id ' 
     217        .'AND calendar_to_calendar_object.calendar_object_id NOT IN (select calendar_object_activity_id from calendar_task_to_activity_object where owner =  \'' . Config::me("uidNumber") . '\' ) '     
     218        .'AND calendar_to_calendar_object.calendar_object_id NOT IN (select calendar_object_task_id from calendar_task_to_activity_object where owner =  \'' . Config::me("uidNumber") . '\' ) ';     
     219 
     220        if(isset($criteria['filter'][4])) 
     221            $sql .= 'AND (((upper("summary") like upper(\'%'.$criteria['filter'][4][1][2].'%\') OR upper("description") like upper(\'%'.$criteria['filter'][4][1][2].'%\'))))'; 
     222 
     223            $sql .= 'AND (range_start >= \'' . $criteria['filter'][2][2] . '\' AND type_id <= \'' .  $criteria['filter'][1][2] . '\')'; 
     224 
     225            $params = Controller::service('PostgreSQL')->execResultSql($sql); 
    182226            $params = self::deepnessFindEvent($uri, $params, $criteria, $original); 
    183227            return false; 
     
    495539    } 
    496540 
     541    //TODO: Remover apos suporte a ManytoMany na api  
     542    public function createTasksToActivity(&$uri, &$result, &$criteria, $original) { 
     543 
     544        ob_start(); 
     545        print_r('$uri' . "\n"); 
     546        print_r($uri); 
     547        print_r('$params' . "\n"); 
     548        print_r($params); 
     549        print_r('$criteria' . "\n"); 
     550        print_r($criteria); 
     551        print_r('$original' . "\n"); 
     552        print_r($original); 
     553        $output = ob_get_clean(); 
     554        file_put_contents( "/tmp/acoutinho.log",  $output , FILE_APPEND); 
     555 
     556        if(isset($original['properties']['taskToActivity']) && $original['properties']['taskToActivity']){ 
     557 
     558            foreach($original['properties']['taskToActivity'] as $relational) 
     559 
     560                Controller::create(array('concept' => 'taskToActivity'), array('task' => $relational['task'], 'owner' => $relational['owner'], 'activity' => $result['id'])); 
     561 
     562        } 
     563    } 
     564 
    497565    public function createCreateSchedulableToAttachment(&$uri, &$params, &$criteria, $original) { 
    498566        if (array_key_exists('attachments', $original['properties'])) 
     
    541609 
    542610    //TODO: Remover apos suporte a deepness na api  
     611    public function deepnessFindTask(&$uri, &$result, &$criteria, $original) { 
     612        if (isset($original['criteria']['deepness']) && $original['criteria']['deepness'] != 0)  
     613           foreach($result as &$value) 
     614                $value['task'] = Controller::read(array('concept' => 'schedulable', 'id' => $value['task'])); 
     615            
     616         
     617        return $result; 
     618    } 
     619 
     620 
     621 
     622    //TODO: Remover apos suporte a deepness na api  
    543623    public function deepnessFindEvent(&$uri, &$result, &$criteria, $original) { 
    544624        if (isset($original['criteria']['deepness']) && $original['criteria']['deepness'] != 0) { 
     
    572652 
    573653                $result[$i]['DayLigth'] = $DayLigth; 
     654 
     655        if(((int)$v['type']) == 2){ 
     656 
     657            $taskToActivity = Controller::find(array('concept' => 'taskToActivity'), false, array('filter' => array('AND', array('=', 'activity', $v['id']), array('=','owner', Config::me('uidNumber'))) , 'deepness' => 2)); 
     658 
     659            if($taskToActivity) 
     660                $result[$i]['taskToActivity'] = $taskToActivity; 
     661 
     662        } 
    574663 
    575664                if (isset($v['id'])) { 
Note: See TracChangeset for help on using the changeset viewer.