Ignore:
Timestamp:
04/11/11 11:47:31 (13 years ago)
Author:
rafaelraymundo
Message:

Ticket #1593 - Criação de grupos usando contatos apartir do catalogo geral.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.0.1/contactcenter/inc/class.ui_data.inc.php

    r3795 r3970  
    410410                                        $ids = false; 
    411411                                        $ids = $this->search($_GET['data']); 
    412                                         return $this->get_cards_data('search', '1', $ids); 
     412                                        $data = unserialize($_GET['data']); 
     413                                        $dontPaginate = false; 
     414                                        if (isset($data['ccAddGroup'])){ 
     415                                            $dontPaginate = true; 
     416                                        } 
     417                                        return $this->get_cards_data('search', '1', $ids, $dontPaginate); 
    413418 
    414419                                case 'email_win': 
     
    479484 
    480485                */ 
    481                 function set_catalog($id_catalog) 
     486                function set_catalog($id_catalog, $echo=true) 
    482487                { 
    483488                        $id_catalog = str_replace('\\"', '"', $id_catalog); 
     
    515520                                } 
    516521 
    517                                 echo serialize(array( 
    518                                         'status' => 'ok', 
    519                                         'catalog' => $catalog_info['class'], 
    520                                         'external' => $catalog_info['external']?true:false, 
    521                                         'resetCC_actual_letter' => $resetCC_actual_letter, 
    522                                         'perms'  => $perms 
    523                                 )); 
     522                                if ($echo) 
     523                                { 
     524                                    echo serialize(array( 
     525                                            'status' => 'ok', 
     526                                            'catalog' => $catalog_info['class'], 
     527                                            'external' => $catalog_info['external']?true:false, 
     528                                            'resetCC_actual_letter' => $resetCC_actual_letter, 
     529                                            'perms'  => $perms 
     530                                    )); 
     531                                } 
     532                                else 
     533                                    { 
     534                                        return serialize(array( 
     535                                            'status' => 'ok', 
     536                                            'catalog' => $catalog_info['class'], 
     537                                            'external' => $catalog_info['external']?true:false, 
     538                                            'resetCC_actual_letter' => $resetCC_actual_letter, 
     539                                            'perms'  => $perms 
     540                                        )); 
     541                                    } 
    524542 
    525543                                return; 
     
    678696                                using the new array 'msg','status','data' schema. 
    679697                */ 
    680                 function get_cards_data($letter, $page, $ids) 
     698                function get_cards_data($letter, $page, $ids, $dontPaginate = false) 
    681699                { 
    682700                        if( $ids ) 
     
    12031221                                { 
    12041222                                        //echo 'N_entries: '.$n_entries.'<br>'; 
    1205                                         $this->page_info['n_pages'] = ceil($n_entries/($this->page_info['n_cards'] ? $this->page_info['n_cards'] : 1)); 
     1223                                        $this->page_info['n_pages'] = ceil(($n_entries/($this->page_info['n_cards']) && !$dontPaginate ? $this->page_info['n_cards'] : 1)); 
    12061224                                } 
    12071225                                else 
     
    12731291                                        $this->page_info['actual_letter']  = $letter; 
    12741292                                        $this->page_info['actual_entries'] = $ids; 
    1275                                         $this->page_info['n_pages'] = ceil(count($ids)/($this->page_info['n_cards'] ? $this->page_info['n_cards'] : 1)); 
     1293                                        $this->page_info['n_pages'] = ceil((count($ids)/($this->page_info['n_cards']) && !$dontPaginate ? $this->page_info['n_cards'] : 1)); 
    12761294                                } 
    12771295                        } 
     
    13071325 
    13081326                                //echo 'Page: '.$page.'<br>'; 
    1309                                 $id_i = (($page-1)*$this->page_info['n_cards']); 
    1310                                 $id_f = $id_i + $this->page_info['n_cards']; 
    13111327                                $n_entries = count($this->page_info['actual_entries']); 
     1328                                $n_cards = $dontPaginate? $n_entries : $this->page_info['n_cards']; 
     1329                                $id_i = (($page-1)*$n_cards); 
     1330                                $id_f = $id_i + $n_cards; 
    13121331 
    13131332                                //echo 'ID_I: '.$id_i.'<br>'; 
     
    15831602                                $final[8] = $this->page_info['actual_catalog']['class']; 
    15841603                                $final[9] = $count; 
     1604                                $final[11] = $this->bo->catalog_level; 
    15851605 
    15861606 
     
    18271847                        @param string $sdata Serialized data 
    18281848                */ 
    1829                 function quick_add($sdata) 
     1849                function quick_add($sdata, $echo=true) 
    18301850                { 
    18311851 
     
    18391859                        if (!$tdata) 
    18401860                        { 
     1861                            if ($echo) 
     1862                            { 
    18411863                                echo serialize(array( 
    18421864                                        'msg'    => lang('Problems on adding your Contact. Invalid Data came from client. No Contact added!'), 
    18431865                                        'status' => 'abort' 
    18441866                                )); 
    1845  
     1867                             
    18461868                                return; 
     1869                            } 
     1870                            else 
     1871                                { 
     1872                                    return serialize(array( 
     1873                                        'msg'    => lang('Problems on adding your Contact. Invalid Data came from client. No Contact added!'), 
     1874                                        'status' => 'abort' 
     1875                                    )); 
     1876                                } 
    18471877                        } 
    18481878 
     
    18551885                                $str_contact = "\r\n - ".implode("\r\n - ",$contact); 
    18561886 
     1887                            if ($echo) 
     1888                            { 
    18571889                                echo serialize(array( 
    18581890                                        'msg'    => lang('Problems on adding your Contact. The email "%1" already exists in: %2',$tdata[4], $str_contact), 
     
    18611893 
    18621894                                return; 
     1895                            } 
     1896                            else 
     1897                                { 
     1898                                    return serialize(array( 
     1899                                        'msg'       => lang('Problems on adding your Contact. The email "%1" already exists in: %2',$tdata[4], $str_contact), 
     1900                                        'status'    => 'alreadyExists', 
     1901                                        'id_connection'  => $contact[1] 
     1902                                    )); 
     1903                                } 
    18631904                        } 
    18641905 
     
    18731914                        $boPeople = CreateObject('contactcenter.bo_people_catalog'); 
    18741915 
    1875                         if ($boPeople ->quick_add($data)) 
    1876                         { 
    1877                                 $this->page_info['changed'] = true; 
    1878  
    1879                                 echo serialize(array( 
    1880                                         'msg'    => lang('Entry added with success!'), 
    1881                                         'status' => 'ok' 
    1882                                 )); 
     1916                        $result = $boPeople->quick_add($data); 
     1917                        if ($result) 
     1918                        { 
     1919                            $this->page_info['changed'] = true; 
     1920 
     1921                            if ($echo) 
     1922                            { 
     1923                                echo serialize(array( 
     1924                                    'msg'    => lang('Entry added with success!'), 
     1925                                    'status' => 'ok' 
     1926                                )); 
     1927                            } 
     1928                            else 
     1929                                { 
     1930                                    return serialize(array( 
     1931                                        'msg'    => lang('Entry added with success!'), 
     1932                                        'status' => 'ok', 
     1933                                        'conn'   => $boPeople->get_connections($result) 
     1934                                    )); 
     1935                                } 
    18831936                        } 
    18841937                        else 
    18851938                        { 
    1886                                 echo serialize(array( 
    1887                                         'msg'    => lang('Problems on adding your Contact. No Contact added!'), 
    1888                                         'status' => 'error' 
    1889                                 )); 
     1939                            if ($echo) 
     1940                            { 
     1941                                echo serialize(array( 
     1942                                    'msg'    => lang('Problems on adding your Contact. No Contact added!'), 
     1943                                    'status' => 'error' 
     1944                                )); 
     1945                            } 
     1946                            else 
     1947                                { 
     1948                                    echo serialize(array( 
     1949                                        'msg'    => lang('Problems on adding your Contact. No Contact added!'), 
     1950                                        'status' => 'error' 
     1951                                    )); 
     1952                                } 
    18901953                        } 
    18911954 
     
    19241987                        $data['contact_in_list'] = $new_tdata[1]; 
    19251988                        $data['id_group'] = $new_tdata[2]; 
    1926  
     1989                        $acumulatedErrors = ''; 
     1990 
     1991                        $actualCatalog = $this->get_actual_catalog(); 
     1992                        for ($i = 0; $i < count($data['contact_in_list']); $i++) 
     1993                        { 
     1994                            if (preg_match('/ldap:.*:.*/', $data['contact_in_list'][$i])) // from ldap 
     1995                            { 
     1996                                list(, $level, $dn) = explode(':', $data['contact_in_list'][$i]); 
     1997 
     1998                                // pesquisa os dados, insere no catálogo e modifica 
     1999                                // a entrada em $data['contact_in_list'][$i] 
     2000                                $set_catalog = $this->set_catalog($level, false); 
     2001                                $contact_data = unserialize($this->get_catalog_add_contact($dn, false)); 
     2002                                $tmp_contact[] = $contact_data[0][0]; 
     2003                                $tmp_contact[] = $contact_data[1][0]; 
     2004                                $tmp_contact[] = $contact_data[2][0]; 
     2005                                $tmp_contact[] = $contact_data[3][0]; 
     2006                                $tmp_contact[] = $contact_data[4][0]; 
     2007 
     2008                                // Determinar o id_connection 
     2009                                $id_contact = unserialize($this->quick_add(serialize($tmp_contact), false)); 
     2010 
     2011                                switch ($id_contact['status']) 
     2012                                { 
     2013                                    case 'ok' : 
     2014                                        foreach ($id_contact['conn'] as $connection) 
     2015                                        { 
     2016                                            if ($connection['id_type'] == 1) 
     2017                                            { 
     2018                                                $data['contact_in_list'][$i] = $connection['id_connection']; 
     2019                                            } 
     2020                                        } 
     2021                                        break; 
     2022 
     2023                                    case 'alreadyExists': // if e-mail exists get their id_connection from people_catalog 
     2024                                        $data['contact_in_list'][$i] = $id_contact['id_connection']; 
     2025 
     2026                                    default: 
     2027                                        $acumulatedErrors += $id_contact['msg']."\n"; 
     2028                                } 
     2029                                unset($tmp_contact); 
     2030 
     2031                            } 
     2032                        } 
     2033                        $set_catalog = $this->set_catalog($actualCatalog['data'], false); // retorna ao catálogo original. 
    19272034                        $boGroup = CreateObject('contactcenter.bo_group_manager'); 
    19282035                        $id = $boGroup -> add_group($data); 
     
    19402047                        { 
    19412048                                echo serialize(array( 
    1942                                         'msg'    => lang('Problems on adding your Group. Be sure that a group with this name do not exists'), 
     2049                                        'msg'    => lang('Problems on adding your Contact. No Contact added!'). 
     2050                                            "\n".$acumulatedErrors, 
    19432051                                        'status' => 'error' 
    19442052                                )); 
     
    34563564                } 
    34573565 
    3458                 function get_catalog_add_contact($id){ 
     3566                function get_catalog_add_contact($id, $echo=true){ 
    34593567 
    34603568                        $array_participants = array(); 
     
    34753583 
    34763584                        ldap_close($ds); 
    3477                         echo serialize($array_participants); 
     3585                        if ($echo) 
     3586                        { 
     3587                            echo serialize($array_participants); 
     3588                        } 
     3589                        else 
     3590                            { 
     3591                                return serialize($array_participants); 
     3592                            } 
    34783593                } 
    34793594 
Note: See TracChangeset for help on using the changeset viewer.