- Timestamp:
- 03/16/12 15:02:14 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/modules/calendar/interceptors/DBMapping.php
r5737 r5741 120 120 121 121 $params = Controller::service('PostgreSQL')->execResultSql($sql); 122 123 $params = array_merge( $params, $occ ); 122 124 $params = self::deepnessFindEvent( &$uri , &$params , &$criteria , $original); 123 124 $params = array_merge( $params, $occ );125 125 126 126 return false; … … 166 166 unset( $repeat['id'] ); 167 167 168 $params = self::decodeRepeat( $repeat, $ranges[0]['rangeStart'], $ranges[0]['rangeEnd'] ); 168 $exceptions = array(); 169 170 if( isset( $repeat['exceptions'] ) ) 171 { 172 $exceptions = explode( ',', $repeat['exceptions'] ); 173 unset( $repeat['exceptions'] ); 174 } 175 176 $params = array_diff( self::decodeRepeat( $repeat, $ranges[0]['rangeStart'], $ranges[0]['rangeEnd'] ), $exceptions ); 169 177 170 178 Controller::delete( array( 'concept' => 'repeatOccurrence' ), false, array( 'filter' => array( '=', 'repeat', $id ) ) ); 171 179 172 180 if( !empty($params) ) 173 Controller::service('PostgreSQL')->execResultSql( "INSERT INTO calendar_repeat_occurrence(repeat_id, occurrence)VALUES('".$id."', '".implode( "'),('".$id."','", $params )."')");181 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."','0','", $exceptions )."')" ) ); 174 182 175 183 } … … 244 252 } 245 253 246 $return = Controller::find( array( 'concept' => 'repeatOccurrence' ), false, array( 'filter' => array( 'AND', array( '>=', 'occurrence', $origStart ), array( '<=', 'occurrence', $origEnd ), array( 'IN', 'repeat', $ids ) ), 'deepness' => $deep ) ); 254 // $return = Controller::find( array( 'concept' => 'repeatOccurrence' ), false, array( 'filter' => array( 'AND', array( '>=', 'occurrence', $origStart ), array( '<=', 'occurrence', $origEnd ), array( 'IN', 'repeat', $ids ) ), 'deepness' => $deep ) ); 255 256 $return = Controller::service('PostgreSQL')->execResultSql( 'SELECT calendar_repeat_occurrence.occurrence as "occurrence", calendar_repeat.object_id as "schedulable" FROM calendar_repeat, calendar_repeat_occurrence WHERE calendar_repeat_occurrence.occurrence >= \''.$origStart.'\' AND calendar_repeat_occurrence.occurrence <= \''.$origEnd.'\' AND calendar_repeat_occurrence.repeat_id IN (\''.implode( '\',\'', $ids ).'\') AND calendar_repeat.id = calendar_repeat_occurrence.repeat_id AND calendar_repeat_occurrence.exception != 1' ); 247 257 248 258 if( !is_array( $return ) ) … … 254 264 foreach( $return as $ret ) 255 265 { 256 $currentId = $ret[' repeat']['schedulable']['id'];266 $currentId = $ret['schedulable']; 257 267 258 268 if( !isset( $result[ $currentId ] ) ) 259 269 { 260 $result[ $currentId ] = $ret['repeat']['schedulable']; 261 $result[ $currentId ]['repeat']['schedulable'] = $currentId; 262 270 $result[ $currentId ] = Controller::read( array( 'concept' => 'schedulable', 'id' => $currentId ) ); 263 271 $result[ $currentId ][ 'occurrences' ] = array(); 264 272 265 273 $calendarToCalendarObj = self::schedulable2calendarToObject( $currentId ); 266 267 $result[ $currentId ]['calendar'] = $calendarToCalendarObj[0]['calendar_id']; 274 $result[ $currentId ]['calendar'] = $calendarToCalendarObj[0]['calendar_id']; 268 275 } 269 276 … … 527 534 $repeat = Controller::find( array( 'concept' => 'repeat' ), false, array( 'filter' => array( '=', 'schedulable', $v['id'] ) ) ); 528 535 536 unset( $result[$i]['repeat'] ); 537 529 538 if( is_array($repeat) ) 530 539 $result[$i]['repeat'] = $repeat[0];
Note: See TracChangeset
for help on using the changeset viewer.