Ignore:
Timestamp:
09/06/10 16:19:03 (14 years ago)
Author:
rodsouza
Message:

Ticket #884 - Adicionando novos campos a exportação de contato no padrão ExpressoLivre?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2/contactcenter/inc/class.so_group.inc.php

    r1280 r3215  
    110110                function selectAllContacts( $field = false ,$shared_from=null) 
    111111                { 
    112                         if($shared_from==null) {                 
    113                                 $query = 'select C.id_connection, A.id_contact, A.names_ordered, C.connection_value , B.id_typeof_contact_connection from phpgw_cc_contact A,'. 
    114                                 'phpgw_cc_contact_conns B, phpgw_cc_connections C where '. 
    115                                 'A.id_contact = B.id_contact and B.id_connection = C.id_connection and '. 
    116                                 'A.id_owner ='.$this->owner.' and C.connection_is_default = true '; 
     112                        if ( $shared_from == NULL ) 
     113                        { 
     114                                $query = "select" 
     115                                                . " phpgw_cc_connections.id_connection," 
     116                                                . " phpgw_cc_contact.id_contact," 
     117                                                . " phpgw_cc_contact.names_ordered," 
     118                                                . " phpgw_cc_contact.alias," 
     119                                                . " phpgw_cc_connections.connection_value ," 
     120                                                . " phpgw_cc_contact_conns.id_typeof_contact_connection," 
     121                                                . " phpgw_cc_addresses.address1," 
     122                                                . " phpgw_cc_addresses.complement," 
     123                                                . " phpgw_cc_addresses.postal_code," 
     124                                                . " phpgw_cc_city.city_name," 
     125                                                . " phpgw_cc_state.state_name," 
     126                                                . " phpgw_cc_addresses.id_country"; 
     127 
     128                                $query .= " from" 
     129                                                . " phpgw_cc_contact" 
     130                                                . " inner join phpgw_cc_contact_conns on ( phpgw_cc_contact.id_contact = phpgw_cc_contact_conns.id_contact )" 
     131                                                . " inner join phpgw_cc_connections on ( phpgw_cc_contact_conns.id_connection = phpgw_cc_connections.id_connection )" 
     132                                                . " left join phpgw_cc_contact_addrs on ( phpgw_cc_contact.id_contact = phpgw_cc_contact_addrs.id_contact )" 
     133                                                . " left join phpgw_cc_addresses on ( phpgw_cc_contact_addrs.id_address = phpgw_cc_addresses.id_address )" 
     134                                                . " left join phpgw_cc_city on ( phpgw_cc_addresses.id_city = phpgw_cc_city.id_city )" 
     135                                                . " left join phpgw_cc_state on ( phpgw_cc_addresses.id_state = phpgw_cc_state.id_state)"; 
     136 
     137                                $query .= " where" 
     138                                                . " phpgw_cc_contact.id_owner = {$this->owner}" 
     139                                                . " and phpgw_cc_connections.connection_is_default = true"; 
     140 
    117141                        } 
    118142                        else { 
     
    121145                                                          B.acl_appname = \'contactcenter\' and B.acl_rights & 1 <> 0  
    122146                                                          and A.id_typeof_contact_relation=1 and A.id_contact = '.$shared_from.' and A.id_related='.$this->owner; 
    123                                  
     147 
    124148                                $query = 'select C.id_connection, A.id_contact, A.names_ordered, C.connection_value , B.id_typeof_contact_connection from phpgw_cc_contact A,'. 
    125149                                'phpgw_cc_contact_conns B, phpgw_cc_connections C where '. 
     
    130154 
    131155                        if ( $field == 'only_email' ) 
    132                                 $query .= 'and B.id_typeof_contact_connection = 1 '; 
    133  
    134                         $query .= ' order by A.names_ordered,C.connection_value'; 
    135  
    136                                          
    137                         if (!$this->db->query($query)) 
    138                         { 
    139                                 exit ('Query failed! File: '.__FILE__.' on line'.__LINE__); 
    140                         } 
    141                           
     156                                $query .= 'and phpgw_cc_contact_conns.id_typeof_contact_connection = 1 '; 
     157 
     158                        $query .= ' order by phpgw_cc_contact.names_ordered, phpgw_cc_connections.connection_value'; 
     159 
     160                        if (!$this->db->query($query)) 
     161                        { 
     162                                exit ('Query failed! File: '.__FILE__.' on line'.__LINE__); 
     163                        } 
     164 
    142165                        $return = array(); 
    143                          
     166 
    144167                        while($this->db->next_record()) 
    145168                        { 
    146169                                $return[] = $this->db->row();  
    147170                        } 
    148                          
    149                         if(!count($return)) 
    150                                 return $return;                          
    151                         // Essa iteração transforma uma esturuta com contatos redundantes e separados por email ou tel. 
    152                         // em outra com apenas 1 elemento pra cada contato 
    153                         foreach($return as $i => $object){ 
    154                                 if ($object['id_typeof_contact_connection'] == 1){ 
    155                                         $all_contacts[$object['id_contact']]['connection_value'] = $object['connection_value']; 
    156                     $all_contacts[$object['id_contact']]['names_ordered'] = $object['names_ordered']; 
    157                     $all_contacts[$object['id_contact']]['id_contact'] = $object['id_contact']; 
    158                     $all_contacts[$object['id_contact']]['id_connection'] = $object['id_connection']; 
     171 
     172                        if( ! count( $return ) ) 
     173                                return $return; 
     174 
     175                        foreach( $return as $i => $object ) 
     176                        { 
     177                                switch( $object[ 'id_typeof_contact_connection' ] ) 
     178                                { 
     179                                        case 1 : 
     180                                                $all_contacts[ $object[ 'id_contact' ] ][ 'connection_value' ] = $object[ 'connection_value' ]; 
     181                                                break; 
     182                                        case 2 : 
     183                                                $all_contacts[ $object[ 'id_contact' ] ][ 'phone' ] = $object[ 'connection_value' ]; 
     184                                                break; 
    159185                                } 
    160                                 else  
    161                                         if ($object['id_typeof_contact_connection'] == 2){ 
    162                                                 $all_contacts[$object['id_contact']]['phone'] = $object['connection_value']; 
    163                                                 $all_contacts[$object['id_contact']]['names_ordered'] = $object['names_ordered']; 
    164                                                 $all_contacts[$object['id_contact']]['id_contact'] = $object['id_contact']; 
    165                                                 $all_contacts[$object['id_contact']]['id_connection'] = $object['id_connection']; 
    166                                         } 
    167                         } 
    168                          
     186 
     187                                $all_contacts[ $object[ 'id_contact' ] ][ 'names_ordered' ] = $object[ 'names_ordered' ]; 
     188                                $all_contacts[ $object[ 'id_contact' ] ][ 'id_contact' ]    = $object[ 'id_contact' ]; 
     189                                $all_contacts[ $object[ 'id_contact' ] ][ 'id_connection' ] = $object[ 'id_connection' ]; 
     190                                $all_contacts[ $object[ 'id_contact' ] ][ 'alias' ]         = $object[ 'alias' ]; 
     191                                $all_contacts[ $object[ 'id_contact' ] ][ 'address1' ]      = $object[ 'address1' ]; 
     192                                $all_contacts[ $object[ 'id_contact' ] ][ 'complement' ]    = $object[ 'complement' ]; 
     193                                $all_contacts[ $object[ 'id_contact' ] ][ 'postal_code' ]   = $object[ 'postal_code' ]; 
     194                                $all_contacts[ $object[ 'id_contact' ] ][ 'city_name' ]     = $object[ 'city_name' ]; 
     195                                $all_contacts[ $object[ 'id_contact' ] ][ 'state_name' ]    = $object[ 'state_name' ]; 
     196                                $all_contacts[ $object[ 'id_contact' ] ][ 'id_country' ]    = $object[ 'id_country' ]; 
     197                        } 
     198 
    169199                        return array_values($all_contacts); 
    170                 }                
    171                  
     200                } 
     201 
    172202                function verifyContact($email) 
    173203                { 
Note: See TracChangeset for help on using the changeset viewer.