Changeset 5965


Ignore:
Timestamp:
04/18/12 15:36:25 (12 years ago)
Author:
adriano
Message:

Ticket #2633 - interceptors de consistencia para a funcionalidade de sinalizadores

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/mail/interceptors/Helpers.php

    r5961 r5965  
    141141        public function doImapRead( &$uri , &$result , &$criteria , $original ) { 
    142142 
    143                 if ($reusult) { 
     143                if ($result) { 
    144144                        $imap_result = Controller::read( 
    145145                                array('concept' => 'followupflagged', 'service' => 'Imap'),  
     
    149149                } 
    150150 
     151                /** 
     152                 * Faz a consistência do banco com o imap 
     153                 */ 
    151154                if (!$imap_result) { 
    152                         /** 
    153                          * TODO - deletar do banco se não existe no imap  
    154                          */ 
    155                          return false; 
     155                        $r = Controller::deleteALL(array('concept' => 'followupflagged'), null , $criteria); 
     156                        return false; 
     157                } 
     158                 
     159                /** 
     160                 * Faz a consistência do banco com o imap 
     161                 */ 
     162                if ($imap_result['messageId'] !== $imap_result['messageId']) { 
     163                        $n = $imap_result; 
     164                        $n['followupflagId']  = 1; 
     165                        $n['backgroundColor'] = '#FF2016'; 
     166                        $n['id'] = Controller::create(array('concept' => 'followupflagged'), $n); 
     167                        $result = $imap_result + $n; 
    156168                } 
    157169                 
     
    179191                foreach ($imap_result as $ir) { 
    180192                 
    181                         foreach($result as $r) { 
    182                                 if ($r['messageId'] == $ir['messageId']) {                       
     193                        foreach($result as $k => $r) { 
     194                                if ($r['messageId'] == $ir['messageId']) { 
    183195                                        $merge_result[] = $r + $ir; 
     196                                        unset($result[$k]); 
    184197                                        break; 
    185198                                } 
     199                        } 
     200                         
     201                        unset($imap_result[$k]); 
     202                } 
     203                 
     204                /** 
     205                 * Faz a consistência do banco com o imap 
     206                 */ 
     207                if ($result) { 
     208                        $idList = array(); 
     209                        foreach ($result as $ir ) { 
     210                                $idList = $ir['messageId']; 
     211                        } 
     212                        $filter = array('IN','messageId',$idList); 
     213                        Controller::delete(array('concept' => 'followupflagged'), null , array('filter' => $filter)); 
     214                } 
     215                 
     216                /** 
     217                 * Faz a consistência do banco com o imap 
     218                 */ 
     219                if ($imap_result) { 
     220                        foreach ($imap_result as $ir ) { 
     221                                $n = $ir; 
     222                                $n['followupflagId']  = 1; 
     223                                $n['backgroundColor'] = '#FF2016'; 
     224                                $n['id'] = Controller::create(array('concept' => 'followupflagged'), $n); 
     225                                $merge_result[] = $ir + $n; 
    186226                        } 
    187227                } 
Note: See TracChangeset for help on using the changeset viewer.