Changeset 6490


Ignore:
Timestamp:
06/14/12 11:47:05 (7 years ago)
Author:
leticiabohnert
Message:

Ticket #2851 - Alterada a interface de inclusão/atualiz. de funcionário no organograma.

Location:
trunk/workflow
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/workflow/inc/class.bo_orgchart.inc.php

    r5921 r6490  
    481481        function addEmployee($params) 
    482482        { 
    483                 $result = $this->so->addEmployee($params['funcionario_id'], $params['organizacao_id'], $params['area_id'], $this->_nullReplace($params['centro_custo_id']), $params['localidade_id'], $params['funcionario_status_id'], $this->_nullReplace($params['cargo_id']), $this->_nullReplace($params['nivel']), $this->_nullReplace($params['funcionario_categoria_id']), $params['titulo']); 
     483                $result = $this->so->addEmployee($params['funcionario_id'], $params['organizacao_id'], $params['area_id'], $this->_nullReplace($params['centro_custo_id']), $params['localidade_id'], $params['funcionario_status_id'], $this->_nullReplace($params['cargo_id']), $this->_nullReplace($params['nivel']), $this->_nullReplace($params['funcionario_categoria_id']), $params['titulo'], $params['apelido'], $params['funcao'], $params['data_admissao']); 
    484484                $this->disconnect_all(); 
    485485 
     
    495495        function updateEmployee($params) 
    496496        { 
    497                 $result = $this->so->updateEmployee($params['funcionario_id'], $params['organizacao_id'], $params['area_id'], $this->_nullReplace($params['centro_custo_id']), $params['localidade_id'], $params['funcionario_status_id'], $this->_nullReplace($params['cargo_id']), $this->_nullReplace($params['nivel']), $this->_nullReplace($params['funcionario_categoria_id']), $params['titulo']); 
     497                $result = $this->so->updateEmployee($params['funcionario_id'], $params['organizacao_id'], $params['area_id'], $this->_nullReplace($params['centro_custo_id']), $params['localidade_id'], $params['funcionario_status_id'], $this->_nullReplace($params['cargo_id']), $this->_nullReplace($params['nivel']), $this->_nullReplace($params['funcionario_categoria_id']), $params['titulo'], $params['apelido'], $params['funcao'], $params['data_admissao']); 
    498498                $this->disconnect_all(); 
    499499 
  • trunk/workflow/inc/class.so_orgchart.inc.php

    r3290 r6490  
    706706                $supervisors = '{' . implode(', ', $areaInfo) . '}'; 
    707707 
    708                 $query = "SELECT funcionario_id, funcionario_status_id, centro_custo_id, localidade_id, organizacao_id, area_id, cargo_id, nivel, funcionario_categoria_id, titulo FROM funcionario WHERE ((area_id = ?) AND (organizacao_id = ?)) OR (funcionario_id = ANY (?))"; 
     708                $query = "SELECT funcionario_id, funcionario_status_id, centro_custo_id, localidade_id, organizacao_id, area_id, cargo_id, nivel, funcionario_categoria_id, titulo, funcao, to_char(data_admissao,'DD/MM/YYYY') as data_admissao, apelido FROM funcionario WHERE ((area_id = ?) AND (organizacao_id = ?)) OR (funcionario_id = ANY (?))"; 
    709709                $result = $this->db->query($query, array($areaID, $organizationID, $supervisors)); 
    710710                $this->_checkError($result); 
     
    784784 
    785785                /* load employee information */ 
    786                 $query = "SELECT f.funcionario_id, f.funcionario_status_id, f.centro_custo_id, f.localidade_id, f.organizacao_id, f.area_id, f.cargo_id, f.nivel, f.funcionario_categoria_id, f.titulo, a.sigla AS area_sigla FROM funcionario f, area a WHERE (f.area_id = a.area_id) AND (f.organizacao_id = $organizationID) AND (f.funcionario_id IN (" . implode(',', array_keys($unifiedResult))  ."))"; 
     786                $query = "SELECT f.funcionario_id, f.funcionario_status_id, f.centro_custo_id, f.localidade_id, f.organizacao_id, f.area_id, f.cargo_id, f.nivel, f.funcionario_categoria_id, f.titulo, f.apelido, f.funcao, f.data_admisao, a.sigla AS area_sigla FROM funcionario f, area a WHERE (f.area_id = a.area_id) AND (f.organizacao_id = $organizationID) AND (f.funcionario_id IN (" . implode(',', array_keys($unifiedResult))  ."))"; 
    787787                $result = $this->db->query($query); 
    788788                $this->_checkError($result); 
     
    801801        } 
    802802 
     803 
     804        /** 
     805         * Valida se o formato da data está correto.. 
     806         * @param $date data a ser validada. 
     807         **/ 
     808 
     809        function validateDate($date) 
     810        { 
     811                $date_pattern = '/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/[12][0-9]{3}$/'; 
     812 
     813                if (!preg_match($date_pattern, $date)) 
     814                        $this->endExecution("Formato inválido para data (dd/mm/aaaa)."); 
     815        } 
     816 
    803817        /** 
    804818         * Adiciona um funcionário. 
     819         * @param int $employeeID O ID do funcionário. 
     820         * @param int $organizationID O ID da organização. 
     821         * @param int $areaID O ID da área. 
     822         * @param int $costCenterID O ID do centro de custo. 
     823         * @param int $localID O ID da localidade. 
     824         * @param int $employeeStatusID O ID do status do funcionário. 
     825         * @param int $jobTitleID O ID do cargo do funcionário. 
     826         * @param int $level O nível do cargo do funcionário. 
     827         * @param int $title O título do funcionário. 
     828         * @param int $nickname O apelido do funcionário. 
     829         * @param int $jobDesc A descrição do cargo (função). 
     830         * @param int $admDate Data de admissão do funcionário. 
     831         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário. 
     832         * @access public 
     833         */ 
     834        function addEmployee($employeeID, $organizationID, $areaID, $costCenterID, $localID, $employeeStatusID, $jobTitleID, $level, $employeeCategoryID, $title, $nickname, $jobDesc, $admDate) 
     835        { 
     836                $this->_checkAccess($organizationID); 
     837                $this->validateDate($admDate); 
     838 
     839                $query = 'SELECT area.sigla FROM funcionario, area WHERE (funcionario.area_id = area.area_id) AND (funcionario.funcionario_id = ?)'; 
     840                if (($row = $this->db->query($query, $employeeID)->fetchRow())) 
     841                { 
     842                        $errors = array( 
     843                                "O funcionário \"" . Factory::getInstance('WorkflowLDAP')->getName($employeeID) . "\" já pertença à área \"{$row['sigla']}\".", 
     844                                '-----------------', 
     845                                'Caso você queira colocá-lo na área selecionada, siga o procedimento: faça uma busca por seu nome, clique para editá-lo e, troque pela área desejada.' 
     846                        ); 
     847                        $this->endExecution($errors); 
     848                } 
     849 
     850                $query = "INSERT INTO funcionario(funcionario_id, organizacao_id, area_id, centro_custo_id, localidade_id, funcionario_status_id, cargo_id, nivel, funcionario_categoria_id, titulo, apelido, funcao, data_admissao) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 
     851                $result = $this->db->query($query, array($employeeID, $organizationID, $areaID, $costCenterID, $localID, $employeeStatusID, $jobTitleID, $level, $employeeCategoryID, $title, $nickname, $jobDesc, $admDate)); 
     852                $this->_checkError($result); 
     853 
     854                return (($result === false) ? false : true); 
     855        } 
     856 
     857        /** 
     858         * Atualiza o funcionário. 
    805859         * @param int $employeeID O ID do funcionário. 
    806860         * @param int $organizationID O ID da organização. 
     
    812866         * @param int $level O nível do cargo do funcionário. 
    813867         * @param int $employeeCategoryID O ID da categoria do funcionário. 
    814          * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário. 
    815          * @access public 
    816          */ 
    817         function addEmployee($employeeID, $organizationID, $areaID, $costCenterID, $localID, $employeeStatusID, $jobTitleID, $level, $employeeCategoryID, $title) 
    818         { 
    819                 $this->_checkAccess($organizationID); 
    820  
    821                 $query = 'SELECT area.sigla FROM funcionario, area WHERE (funcionario.area_id = area.area_id) AND (funcionario.funcionario_id = ?)'; 
    822                 if (($row = $this->db->query($query, $employeeID)->fetchRow())) 
    823                 { 
    824                         $errors = array( 
    825                                 "O funcionário \"" . Factory::getInstance('WorkflowLDAP')->getName($employeeID) . "\" já pertença à área \"{$row['sigla']}\".", 
    826                                 '-----------------', 
    827                                 'Caso você queira colocá-lo na área selecionada, siga o procedimento: faça uma busca por seu nome, clique para editá-lo e, troque pela área desejada.' 
    828                         ); 
    829                         $this->endExecution($errors); 
    830                 } 
    831  
    832                 $query = "INSERT INTO funcionario(funcionario_id, organizacao_id, area_id, centro_custo_id, localidade_id, funcionario_status_id, cargo_id, nivel, funcionario_categoria_id, titulo) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 
    833                 $result = $this->db->query($query, array($employeeID, $organizationID, $areaID, $costCenterID, $localID, $employeeStatusID, $jobTitleID, $level, $employeeCategoryID, $title)); 
    834                 $this->_checkError($result); 
    835  
    836                 return (($result === false) ? false : true); 
    837         } 
    838  
    839         /** 
    840          * Atualiza o funcionário. 
    841          * @param int $employeeID O ID do funcionário. 
    842          * @param int $organizationID O ID da organização. 
    843          * @param int $areaID O ID da área. 
    844          * @param int $costCenterID O ID do centro de custo. 
    845          * @param int $localID O ID da localidade. 
    846          * @param int $employeeStatusID O ID do status do funcionário. 
    847          * @param int $jobTitleID O ID do cargo do funcionário. 
    848          * @param int $level O nível do cargo do funcionário. 
    849          * @param int $employeeCategoryID O ID da categoria do funcionário. 
    850          * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário. 
    851          * @access public 
    852          */ 
    853         function updateEmployee($employeeID, $organizationID, $areaID, $costCenterID, $localID, $employeeStatusID, $jobTitleID, $level, $employeeCategoryID, $title) 
    854         { 
    855                 $this->_checkAccess($organizationID); 
    856  
    857                 $query = "UPDATE funcionario SET area_id = ?, centro_custo_id = ?, localidade_id = ?, funcionario_status_id = ?, cargo_id = ?, nivel = ?, funcionario_categoria_id = ?, titulo = ? WHERE (funcionario_id = ?) AND (organizacao_id = ?)"; 
    858                 $result = $this->db->query($query, array($areaID, $costCenterID, $localID, $employeeStatusID, $jobTitleID, $level, $employeeCategoryID, $title, $employeeID, $organizationID)); 
     868         * @param int $title O título do funcionário. 
     869         * @param int $nickname O apelido do funcionário. 
     870         * @param int $jobDesc A descrição do cargo (função). 
     871         * @param int $admDate Data de admissão do funcionário. 
     872         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário. 
     873         * @access public 
     874         */ 
     875        function updateEmployee($employeeID, $organizationID, $areaID, $costCenterID, $localID, $employeeStatusID, $jobTitleID, $level, $employeeCategoryID, $title, $nickname, $jobDesc, $admDate) 
     876        { 
     877                $this->_checkAccess($organizationID); 
     878                $this->validateDate($admDate); 
     879                 
     880                $query = "UPDATE funcionario SET area_id = ?, centro_custo_id = ?, localidade_id = ?, funcionario_status_id = ?, cargo_id = ?, nivel = ?, funcionario_categoria_id = ?, titulo = ?, apelido = ?, funcao = ?, data_admissao = ? WHERE (funcionario_id = ?) AND (organizacao_id = ?)"; 
     881                $result = $this->db->query($query, array($areaID, $costCenterID, $localID, $employeeStatusID, $jobTitleID, $level, $employeeCategoryID, $title,$nickname, $jobDesc, $admDate, $employeeID, $organizationID)); 
    859882                $this->_checkError($result); 
    860883 
  • trunk/workflow/js/orgchart/organization.js

    r3167 r6490  
    703703        content += '<a href="javascript:void(0)" onclick="openParticipants(\'funcionario_id\', \'uid=1&hidegroups=1\');" id="addEmployeeLink"><img border="0" width="16" height="16" src="workflow/templateFile.php?file=images/add_user.png" /></a>'; 
    704704        content += '</td></tr>'; 
     705        content += '<tr><td><label for="apelido">Apelido</label></td><td><input type="text" size="20" maxlength="20" name="apelido" id="apelido"/></td></tr>'; 
    705706        content += '<tr><td><label for="funcionario_status_id">Status</label></td><td id="comboStatus"><i>carregando</i></td></tr>'; 
    706707        content += '<tr><td><label for="funcionario_categoria_id">Categoria</label></td><td id="comboFuncionarioCategoria"><i>carregando</i></td></tr>'; 
    707708        content += '<tr><td><label for="cargo_id">Cargo</label></td><td id="comboCargo"><i>carregando</i></td></tr>'; 
    708  
     709        content += '<tr><td><label for="funcao">Função</label></td><td><input type="text" size="50" maxlength="200" name="funcao" id="funcao"/></td></tr>'; 
     710        content += '<tr><td><label for="data_admissao">Data de admissão</label></td><td><input type="text" name="data_admissao" id="data_admissao" size="15" onkeypress="return formatDateField(event, this);" /></td></tr>'; 
    709711        content += '<tr><td><label for="titulo">T&iacute;tulo</label></td><td><input type="text" size="30" name="titulo" id="titulo"/></td></tr>'; 
    710712 
Note: See TracChangeset for help on using the changeset viewer.