Ignore:
Timestamp:
06/22/12 17:32:11 (12 years ago)
Author:
eduardow
Message:

Ticket #2864 - Problema com os eventos que contém repetição.

File:
1 edited

Legend:

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

    r6584 r6588  
    147147                        .'(range_start >= \'' . $start[1] . '\' AND range_start <= \'' . $end[1] . '\') OR ' 
    148148                        .'(range_start <= \'' . $start[2] . '\' AND range_end >= \'' . $end[2] . '\')) ' 
    149                 .(!empty($ids) ? ' ' .'AND calendar_object.id NOT IN (\'' . implode('\',\'', $ids) . '\') ' : ' '); 
    150  
     149                .(!empty($ids) ? ' ' .'AND calendar_object.id NOT IN (\'' . implode('\',\'', $ids) . '\') ' : ' ')  
     150                .'AND calendar_object.dtstart NOT IN (SELECT calendar_repeat_occurrence.occurrence from calendar_repeat_occurrence, '  
     151                .'calendar_repeat where (calendar_repeat_occurrence.repeat_id = calendar_repeat.id) '  
     152                .'AND (calendar_repeat.object_id = calendar_object.id))'; 
    151153 
    152154                $params = Controller::service('PostgreSQL')->execResultSql($sql.$where); 
     
    204206        //Recurepa as execeções anteriores caso exista 
    205207        if (isset($lastExceptions) && count($lastExceptions) && $lastExceptions) 
    206             foreach ($lastExceptions as $key => $value) 
    207                 array_push($exceptions, $lastExceptions[$key]['occurrence']); 
     208            foreach ($lastExceptions as $value)  
     209                array_push($exceptions, $value['occurrence']); 
    208210 
    209211        $params = array_diff(self::decodeRepeat($repeat, $ranges[0]['rangeStart'], $ranges[0]['rangeEnd']), $exceptions); 
     
    213215        if (!empty($params)) 
    214216            Controller::service('PostgreSQL')->execResultSql("INSERT INTO calendar_repeat_occurrence(repeat_id,exception,occurrence)VALUES('" . $id . "','0','" . implode("'),('" . $id . "','0','", $params) . "')" . ( empty($exceptions) ? "" : ",('" . $id . "','1','" . implode("'),('" . $id . "','1','", $exceptions) . "')" )); 
    215     } 
     217        else if(!empty($exceptions))  
     218            Controller::service('PostgreSQL')->execResultSql("INSERT INTO calendar_repeat_occurrence(repeat_id,exception,occurrence)VALUES ('" . $id . "','1','" . implode("'),('" . $id . "','1','", $exceptions) . "')" );  
     219   } 
    216220 
    217221    public function checkOccurrences($start, $end, $calendarIds) { 
Note: See TracChangeset for help on using the changeset viewer.