Ignore:
Timestamp:
05/28/12 21:17:51 (12 years ago)
Author:
acoutinho
Message:

Ticket #2795 - Problema ao tentar aceitar convite da agenda para a conta compartilhada

File:
1 edited

Legend:

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

    r6299 r6331  
    373373/////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    374374 
    375     public function updateCalendar(&$uri, &$params, &$criteria, $original) { 
    376         if (isset($params['calendar'])) { 
    377             $calendarObjects = self::schedulable2calendarToObject($uri['id']); 
    378             $params2['calendar'] = $params['calendar']; 
    379  
    380             foreach ($calendarObjects as $calendarObject) 
     375    public function updateCalendar(&$uri, &$params, &$criteria, $original) {        
     376        if (isset($params['calendar'])) { 
     377            if(isset($params['lastCalendar'])){ 
     378                $calendarObjects = self::referenceCalendarToObject($uri['id'], $params['lastCalendar']); 
     379                $params2['calendar'] = $params['calendar']; 
     380            }else{ 
     381                $calendarObjects = self::schedulable2calendarToObject($uri['id']); 
     382                $params2['calendar'] = $params['calendar']; 
     383            } 
     384             
     385            foreach ($calendarObjects as $calendarObject) 
    381386                Controller::update(array('concept' => 'calendarToSchedulable', 'id' => $calendarObject['calendar_to_calendar_object']), $params2); 
    382387 
     
    717722            $idCalendar = $criteria['filter'][2][2]; 
    718723             
    719             if(!self::ownerSchedulable($idSchedulable)){ 
     724            if(!self::ownerSchedulable($idSchedulable, $criteria['filter'][3][2])){ 
    720725                $isPermissionFromOwner = self::permissionFromCalendarSignature($idCalendar, $idSchedulable); 
    721726                 
     
    727732 
    728733                    foreach($calendarsToSchedulable as $value) 
    729                         if($value['calendar_id'] == $idCalendar){ 
     734                        if($value['calendar_id'] == $idCalendar){     
     735 
     736                            $participant = Controller::read(array('concept' => 'participant'), array('id'), array('filter' => 
     737                                array('AND', 
     738                                    array('=', 'user', $criteria['filter'][3][2]), 
     739                                    array('=', 'schedulable', $idSchedulable) 
     740                                ))); 
     741 
     742                            Controller::call(('update'), array('concept' => 'participant', 'id' => $participant[0]['id']), array('status' => STATUS_CANCELLED)); 
    730743                            Controller::delete(array('concept' => 'calendarToSchedulable', 'id' => $value['calendar_to_calendar_object'])); 
    731744                            break; 
     
    740753        $calendarsToSchedulable = self::schedulable2calendarToObject($uri['id']); 
    741754 
    742         if (!self::ownerSchedulable($uri['id']) && !self::isAllowDeleteInCalendar($calendarsToSchedulable[0]['calendar_id'])) { 
     755        if (!self::ownerSchedulable($uri['id'], Config::me('uidNumber')) && !self::isAllowDeleteInCalendar($calendarsToSchedulable[0]['calendar_id'])) { 
    743756 
    744757            foreach ($calendarsToSchedulable as $i => $v) { 
     
    750763 
    751764            /* Seta o participante como rejeitado */ 
    752             Controller::update(array('concept' => 'participant'), array('status' => STATUS_CANCELLED), array('filter' => 
     765            $participant = Controller::read(array('concept' => 'participant'), array('id'), array('filter' => 
    753766                array('AND', 
    754767                    array('=', 'user', Config::me('uidNumber')), 
    755                     array('=', 'schedulable', $uri['id']) 
    756                     ))); 
     768                    array('=', 'schedulable', $idSchedulable) 
     769                ))); 
     770 
     771            Controller::call(('update'), array('concept' => 'participant', 'id' => $participant[0]['id']), array('status' => STATUS_CANCELLED)); 
    757772 
    758773            return false; /* Mata o restante da execução */ 
     
    10171032     
    10181033     
    1019     private static function ownerSchedulable($id) { 
     1034    private static function ownerSchedulable($id, $me) { 
    10201035 
    10211036        $isOwner = Controller::find(array('concept' => 'participant'), array('id'), array('filter' => 
    10221037                    array('AND', 
    10231038                        array('=', 'isOrganizer', '1'), 
    1024                         array('=', 'user', $_SESSION['wallet']['user']['uidNumber']), 
     1039                        array('=', 'user', $me), 
    10251040                        array('=', 'schedulable', $id) 
    10261041                        ))); 
     
    10281043        return ( isset($isOwner[0]['id']) ) ? true : false; 
    10291044    } 
    1030  
     1045     
     1046     
     1047    private static function referenceCalendarToObject($schedulable, $calendar) { 
     1048        return Controller::service('PostgreSQL')->execResultSql('SELECT calendar_to_calendar_object.id as calendar_to_calendar_Object FROM calendar_to_calendar_object' 
     1049            . ' WHERE calendar_to_calendar_object.calendar_id = '. $calendar 
     1050            . ' AND calendar_to_calendar_object.calendar_object_id = ' . addslashes($schedulable)); 
     1051    } 
     1052     
    10311053    private static function schedulable2calendarToObject($Schedulable) { 
    10321054        return Controller::service('PostgreSQL')->execResultSql('SELECT calendar_to_calendar_object.id as calendar_to_calendar_Object , calendar.name as calendar_name ,calendar.location as calendar_location, calendar.id as calendar_id FROM calendar_to_calendar_object , calendar , calendar_signature' 
Note: See TracChangeset for help on using the changeset viewer.