Changeset 7228 for branches/2.4/workflow


Ignore:
Timestamp:
09/17/12 14:30:47 (12 years ago)
Author:
douglas
Message:

Ticket #0000 - Copiadas as alterações do Trunk. Versão final da 2.4.2.

Location:
branches/2.4
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/2.4

  • branches/2.4/workflow/inc/class.bo_orgchart.inc.php

    r6507 r7228  
    407407        { 
    408408                extract( $params ); 
    409                 $result = $this->so->addLocal($organizacao_id, $this->_nullReplace($centro_custo_id), $descricao, $empresa, $endereco, $complemento, $cep, $bairro, $cidade, $uf ); 
     409                $result = $this->so->addLocal($organizacao_id, $this->_nullReplace($centro_custo_id), $descricao, $empresa, $endereco, $complemento, $cep, $bairro, $cidade, $uf, $externa ); 
    410410                $this->disconnect_all(); 
    411411 
     
    422422        { 
    423423                extract( $params ); 
    424                 $result = $this->so->updateLocal($organizacao_id, $this->_nullReplace($centro_custo_id), $descricao, $localidade_id, $empresa, $endereco, $complemento, $cep, $bairro, $cidade, $uf ); 
     424                $result = $this->so->updateLocal($organizacao_id, $this->_nullReplace($centro_custo_id), $descricao, $localidade_id, $empresa, $endereco, $complemento, $cep, $bairro, $cidade, $uf, $externa ); 
    425425                $this->disconnect_all(); 
    426426 
  • branches/2.4/workflow/inc/class.so_orgchart.inc.php

    r6589 r7228  
    617617                $this->_checkAccess($organizationID); 
    618618 
    619                 $query_fields = 'organizacao_id, localidade_id, centro_custo_id, descricao, empresa, endereco, complemento, cep, bairro, cidade, uf'; 
     619                $query_fields = 'organizacao_id, localidade_id, centro_custo_id, descricao, empresa, endereco, complemento, cep, bairro, cidade, uf, externa'; 
    620620                $query = "SELECT {$query_fields} FROM localidade WHERE organizacao_id = ? ORDER BY descricao"; 
    621621                $result = $this->db->query($query, array($organizationID)); 
     
    623623 
    624624                $output = $result->GetArray(-1); 
    625                 for ($i = 0; $i < count($output); $i++) 
     625                for ($i = 0; $i < count($output); $i++){ 
    626626                        for ($j = 0; $j < $result->_numOfFields; $j++) 
    627627                                unset($output[$i][$j]); 
     628                        $output[$i]['centro_custo_id'] = empty($output[$i]['centro_custo_id']) ? 'NULL' : $output[$i]['centro_custo_id']; 
     629                } 
    628630 
    629631                return $output; 
     
    638640         * @access public 
    639641         */ 
    640         function addLocal($organizationID, $costCenter, $description, $company, $address, $complement, $zipCode, $neighborhood, $city, $state ) 
    641         { 
    642                 $this->_checkAccess($organizationID); 
    643  
    644                 $query = "INSERT INTO localidade(organizacao_id, centro_custo_id, descricao, empresa, endereco, complemento, cep, bairro, cidade, uf) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 
    645                 $result = $this->db->query($query, array($organizationID, $costCenter, $description, $company, $address, $complement, $zipCode, $neighborhood, $city, $state )); 
     642        function addLocal($organizationID, $costCenter, $description, $company, $address, $complement, $zipCode, $neighborhood, $city, $state, $external ) 
     643        { 
     644                $this->_checkAccess($organizationID); 
     645 
     646                $query = "INSERT INTO localidade(organizacao_id, centro_custo_id, descricao, empresa, endereco, complemento, cep, bairro, cidade, uf, externa) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 
     647                $result = $this->db->query($query, array($organizationID, $costCenter, $description, $company, $address, $complement, $zipCode, $neighborhood, $city, $state, $external )); 
    646648                $this->_checkError($result); 
    647649 
     
    658660         * @access public 
    659661         */ 
    660         function updateLocal($organizationID, $costCenter, $description, $localID, $company, $address, $complement, $zipCode, $neighborhood, $city, $state ) 
    661         { 
    662                 $this->_checkAccess($organizationID); 
    663  
    664                 $query = "UPDATE localidade SET organizacao_id = ?, centro_custo_id = ?, descricao = ?, empresa = ?, endereco = ?, complemento = ?, cep = ?, bairro = ?, cidade = ?, uf = ? WHERE (localidade_id = ?)"; 
    665                 $result = $this->db->query($query, array($organizationID, $costCenter, $description, $company, $address, $complement, $zipCode, $neighborhood, $city, $state, $localID) ); 
     662        function updateLocal($organizationID, $costCenter, $description, $localID, $company, $address, $complement, $zipCode, $neighborhood, $city, $state, $external ) 
     663        { 
     664                $this->_checkAccess($organizationID); 
     665 
     666                $query = "UPDATE localidade SET organizacao_id = ?, centro_custo_id = ?, descricao = ?, empresa = ?, endereco = ?, complemento = ?, cep = ?, bairro = ?, cidade = ?, uf = ?, externa = ? WHERE (localidade_id = ?)"; 
     667                $result = $this->db->query($query, array($organizationID, $costCenter, $description, $company, $address, $complement, $zipCode, $neighborhood, $city, $state, $external, $localID) ); 
    666668                $this->_checkError($result); 
    667669 
     
    967969                        $row['titular_funcionario_id_desc'] = ($row['titular_funcionario_id'] != '') ? $ldap->getName($row['titular_funcionario_id']) : ''; 
    968970                        $row['auxiliar_funcionario_id_desc'] = ($row['auxiliar_funcionario_id'] != '') ? $ldap->getName($row['auxiliar_funcionario_id']) : ''; 
     971                        $row['superior_area_id'] = empty($row['superior_area_id']) ? 'NULL' : $row['superior_area_id']; 
    969972                        $output[] = $row; 
    970973                } 
  • branches/2.4/workflow/inc/local/classes/class.wf_orgchart.php

    r6244 r7228  
    111111 
    112112                $output = $result->GetArray(-1); 
     113 
     114                return $output; 
     115        } 
     116 
     117        /** 
     118         * Busca os funcionários de uma organização 
     119         * 
     120         * Este método irá buscar na tabela de funcionários, todos os funcionários que pertencem à organização solicitada. 
     121         * @param int $organizationID O ID da organização. 
     122         * @param boolean $searchLdap True, caso seja necessário buscar no LDAP os dados dos usuários. Ou false, caso contrário. 
     123         * @param int $employeeStatusID O ID do status dos funcionários a serem listados. 
     124         * @return array Uma array seqüencial contendo os funcionários de uma organização. Cada linha do array conterá: 
     125         * - organizacao_id 
     126         * - funcionario_id: uidNumber do funcionário 
     127         * - localidade_id 
     128         * - localidade_descricao 
     129         * - area_id 
     130         * - area_sigla 
     131         * - centro_custo_id 
     132         * - nm_centro_custo: número do centro de custo 
     133         * - centro_custo_descricao 
     134         * - nome: nome do funcionário (quando busca no Ldap) 
     135         * - email: email do funcionário (quando busca no Ldap) 
     136         * - telefone: telefone do funcionário (quando busca no Ldap) 
     137         * @access public 
     138         */ 
     139        function getOrganizationEmployees($organizationID, $searchLdap = false, $employeeStatusID = null) 
     140        { 
     141                $query = "SELECT f.organizacao_id, " . 
     142                                 "       f.funcionario_id, " . 
     143                                 "       l.localidade_id, " . 
     144                                 "       l.descricao AS localidade_descricao, " . 
     145                                 "       a.area_id, " . 
     146                                 "       a.sigla AS area_sigla, " . 
     147                                 "       c.centro_custo_id, " . 
     148                                 "       c.nm_centro_custo, " . 
     149                                 "       c.descricao AS centro_custo_descricao " . 
     150                                 " FROM funcionario f " . 
     151                                 "  INNER JOIN area a " . 
     152                                 "  ON (f.area_id = a.area_id) " . 
     153                                 "  INNER JOIN localidade l " . 
     154                                 "  ON (f.localidade_id = l.localidade_id) " . 
     155                                 "  LEFT OUTER JOIN centro_custo c " . 
     156                                 "  ON (COALESCE(f.centro_custo_id, l.centro_custo_id, a.centro_custo_id) = c.centro_custo_id) " . 
     157                                 " WHERE " . 
     158                                 "      f.organizacao_id = ? "; 
     159 
     160                $bindValues = array($organizationID); 
     161 
     162                // Se desejar somente retornar as áreas que estão ativas 
     163                if(!empty($employeeStatusID)){ 
     164                        $query .=" AND f.funcionario_status_id = ? "; 
     165                        $bindValues[] = $employeeStatusID; 
     166                } 
     167 
     168                $query .= " ORDER BY f.funcionario_id"; 
     169 
     170                $result = $this->db->query($query, $bindValues); 
     171                if (!$result) 
     172                        return false; 
     173 
     174                $output = $result->GetArray(-1); 
     175 
     176                if($searchLdap){ 
     177                        $output = $this->searchEmployeeDataInLdap($output); 
     178                } 
    113179 
    114180                return $output; 
     
    11451211         * @param int $organizationID O ID da organização. 
    11461212         * @param boolean $searchLdap True, caso seja necessário buscar no LDAP os dados dos usuários. Ou false, caso contrário. 
     1213         * @param string $external Null, caso deseje-se recuperar localidades externas e internas à organização. 'S', para recuperar apenas as externas e 'N', para apenas as internas. 
    11471214         * @return array Uma array contendo os dados dos usários e sua localidade 
    11481215         * @access public 
    11491216         */ 
    1150         function getEmployeesByLocalID($localID = 0, $organizationID = 1, $searchLdap = false) 
     1217        function getEmployeesByLocalID($localID = 0, $organizationID = 1, $searchLdap = false, $external = null) 
    11511218        { 
    11521219                if(!is_numeric($localID) || !is_numeric($organizationID)) 
     
    11751242                } 
    11761243 
     1244                if(!empty($external) && ($external == 'S' || $external == 'N')){ 
     1245                        $query  .= " AND l.externa = ? "; 
     1246                        $param[] = $external; 
     1247                } 
     1248 
    11771249                $query .= "ORDER BY l.descricao, a.sigla "; 
    11781250 
     
    11831255                $output = $result->GetArray(-1); 
    11841256 
    1185                 if(is_array($output) && $searchLdap){ 
     1257                if($searchLdap){ 
     1258                        $output = $this->searchEmployeeDataInLdap($output); 
     1259                } 
     1260 
     1261                return $output; 
     1262        } 
     1263 
     1264        /** 
     1265         * Percorre o array passado por parâmetro, buscando os dados dos funcionários no Ldap. Adiciona estes dados no array e o retorna. 
     1266         * 
     1267         * @param array $output Array contendo os usuários que deverão ser consultados no Ldap 
     1268         * @return array Retorna o mesmo array passado por parâmetro, adicionados os dados dos usuários buscados no Ldap 
     1269         */ 
     1270        function searchEmployeeDataInLdap($output) 
     1271        { 
     1272                if(is_array($output)){ 
    11861273                        foreach($output AS $k => $value){ 
    1187                                 $user_data = $this->ldap->getEntryByID($value['funcionario_id']); 
    1188                                 $output[$k]['nome']     = $user_data['cn']; 
    1189                                 $output[$k]['telefone'] = $user_data['telephonenumber']; 
     1274                                if(is_numeric($value['funcionario_id'])){ 
     1275                                        $user_data = $this->ldap->getEntryByID($value['funcionario_id']); 
     1276                                        $output[$k]['nome']     = $user_data['cn']; 
     1277                                        $output[$k]['email']    = $user_data['mail']; 
     1278                                        $output[$k]['telefone'] = $user_data['telephonenumber']; 
     1279                                } 
    11901280                        } 
    11911281                } 
    1192  
    11931282                return $output; 
    11941283        } 
  • branches/2.4/workflow/js/orgchart/organization.js

    r6589 r7228  
    566566        content += "<table>"; 
    567567        content += '<tr><td><label for="descricao">Nome</label></td><td><input type="text" name="descricao" id="descricao" size="30" /></td></tr>'; 
    568         content += '<tr><td><label for="exibir">Exibir para o usuário</label></td>' + constructSelectBox('exibir', valoresSimNao) + '</td></tr>'; 
     568        content += '<tr><td><label for="exibir">Exibir para o usuário</label></td><td>' + constructSelectBox('exibir', valoresSimNao) + '</td></tr>'; 
    569569        content += "</table>"; 
    570570        content += '</form>'; 
     
    659659function loadAddLocalUI(organizationID) 
    660660{ 
     661        var valoresSimNao = new Array(); 
     662        valoresSimNao['S'] = 'Sim'; 
     663        valoresSimNao['N'] = 'Não'; 
     664 
    661665        var content; 
    662666        content = '<h2 id="modalTitle">Adicionar Localidade</h2>'; 
     
    675679 
    676680        content += '<tr><td><label for="centro_custo_id">Centro de Custo</label></td><td id="comboCentroCusto"><i>carregando</i></td></tr>'; 
     681        content += '<tr><td><label for="externa">Externa à organização</label></td><td>' + constructSelectBox('externa', valoresSimNao) + '</td></tr>'; 
    677682        content += "</table>"; 
    678683        content += '</form>'; 
  • branches/2.4/workflow/setup/default_records.inc.php

    r6589 r7228  
    8484        $workflowDB->query('CREATE TABLE area_status (area_status_id serial NOT NULL, organizacao_id integer NOT NULL, descricao character varying(50) NOT NULL, nivel integer NOT NULL)'); 
    8585        $workflowDB->query('CREATE TABLE centro_custo (organizacao_id integer NOT NULL, centro_custo_id serial NOT NULL, nm_centro_custo integer NOT NULL, grupo character varying(30), descricao character varying(100) NOT NULL)'); 
    86         $workflowDB->query('CREATE TABLE localidade (organizacao_id integer NOT NULL, localidade_id serial NOT NULL, centro_custo_id integer, descricao character varying(50) NOT NULL, empresa CHARACTER VARYING(100), endereco CHARACTER VARYING(100), complemento CHARACTER VARYING(50), cep CHARACTER VARYING(9), bairro CHARACTER VARYING(30), cidade CHARACTER VARYING(50), uf CHARACTER(2))'); 
     86        $workflowDB->query('CREATE TABLE localidade (organizacao_id integer NOT NULL, localidade_id serial NOT NULL, centro_custo_id integer, descricao character varying(50) NOT NULL, empresa CHARACTER VARYING(100), endereco CHARACTER VARYING(100), complemento CHARACTER VARYING(50), cep CHARACTER VARYING(9), bairro CHARACTER VARYING(30), cidade CHARACTER VARYING(50), uf CHARACTER(2), externa CHARACTER VARYING(1))'); 
    8787        $workflowDB->query('CREATE TABLE funcionario (funcionario_id int4 NOT NULL, area_id integer NOT NULL, localidade_id integer NOT NULL, centro_custo_id integer, organizacao_id integer NOT NULL, funcionario_status_id integer NOT NULL, cargo_id int4, nivel int2, funcionario_categoria_id int4, titulo CHARACTER VARYING(30), funcao CHARACTER VARYING(200), data_admissao DATE, apelido CHARACTER VARYING(20))'); 
    8888        $workflowDB->query('CREATE TABLE area (organizacao_id integer NOT NULL, area_id serial NOT NULL, area_status_id integer NOT NULL, superior_area_id integer, centro_custo_id integer, titular_funcionario_id int4, sigla character varying(20) NOT NULL, descricao character varying(100) NOT NULL, ativa character varying(1) NOT NULL, auxiliar_funcionario_id int4)'); 
  • branches/2.4/workflow/setup/setup.inc.php

    r6589 r7228  
    1313        $setup_info['workflow']['name']                 = 'workflow'; 
    1414        $setup_info['workflow']['title']                = 'Workflow Management'; 
    15         $setup_info['workflow']['version']              = '2.4.1'; 
     15        $setup_info['workflow']['version']              = '2.4.2'; 
    1616        $setup_info['workflow']['app_order']    = 10; 
    1717        $setup_info['workflow']['enable']               = 1; 
     
    6363        $setup_info['workflow']['depends'][] = array( 
    6464                'appname' => 'preferences', 
    65                 'versions' => Array('0.9.13.002', '2.0', '2.2', '2.4') 
     65                'versions' => Array('0.9.13.002', '2.0', '2.2', '2.4.2') 
    6666        ); 
    6767?> 
  • branches/2.4/workflow/setup/tables_update.inc.php

    r6589 r7228  
    331331                return $GLOBALS['setup_info']['workflow']['currentver']; 
    332332        } 
    333          
    334         $test[] = '2.4.0';       
     333 
     334        $test[] = '2.4.0'; 
    335335        function workflow_upgrade2_4_0() 
    336336        { 
    337          
     337 
    338338                $workflowHostInfo = extractDatabaseParameters(); 
    339339 
     
    345345                        $workflowDB->query('ALTER TABLE ONLY public.funcionario ADD COLUMN data_admissao DATE'); 
    346346                        $workflowDB->query('ALTER TABLE ONLY public.funcionario ADD COLUMN apelido CHARACTER VARYING(20)'); 
     347                        $workflowDB->query('ALTER TABLE ONLY public.localidade ADD COLUMN externa CHARACTER VARYING(1)'); 
    347348                } 
    348349 
     
    352353                return $GLOBALS['setup_info']['workflow']['currentver']; 
    353354        } 
     355 
     356    $test[] = '2.4.1'; 
     357    function workflow_upgrade2_4_1() 
     358    { 
     359        $GLOBALS['setup_info']['workflow']['currentver'] = '2.4.2'; 
     360        return $GLOBALS['setup_info']['workflow']['currentver']; 
     361    } 
     362 
    354363?> 
Note: See TracChangeset for help on using the changeset viewer.