Ignore:
Timestamp:
06/22/12 17:42:39 (12 years ago)
Author:
viani
Message:

Ticket #2851 - Atualização do organograma no branch 2.4

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.4/workflow/inc/class.so_orgchart.inc.php

    r6507 r6589  
    128128                $this->acl = &$GLOBALS['ajax']->acl; 
    129129                $this->db = &Factory::getInstance('WorkflowObjects')->getDBWorkflow()->Link_ID; 
    130                 $this->db = &Factory::getInstance('WorkflowObjects')->getDBWorkflow()->Link_ID; 
    131130                $this->db->SetFetchMode(ADODB_FETCH_ASSOC); 
    132131        } 
     
    706705                $supervisors = '{' . implode(', ', $areaInfo) . '}'; 
    707706 
    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 (?))";  
     707                $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 (?))"; 
    709708                $result = $this->db->query($query, array($areaID, $organizationID, $supervisors)); 
    710709                $this->_checkError($result); 
     
    784783 
    785784                /* 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, 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))  ."))"; 
     785                $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, to_char(f.data_admissao, 'DD/MM/YYYY') as data_admissao, 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))  ."))"; 
    787786                $result = $this->db->query($query); 
    788787                $this->_checkError($result); 
     
    801800        } 
    802801 
    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                   
     802 
     803        /** 
     804         * Valida se o formato da data está correto.. 
     805         * @param $date data a ser validada. 
     806         **/ 
     807 
     808        function validateDate($date) 
     809        { 
     810                $date_pattern = '/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/[12][0-9]{3}$/'; 
     811 
     812                if (!preg_match($date_pattern, $date)) 
     813                        $this->endExecution("Formato inválido para data (dd/mm/aaaa)."); 
     814        } 
     815 
    817816        /** 
    818817         * 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.  
     818         * @param int $employeeID O ID do funcionário. 
     819         * @param int $organizationID O ID da organização. 
     820         * @param int $areaID O ID da área. 
     821         * @param int $costCenterID O ID do centro de custo. 
     822         * @param int $localID O ID da localidade. 
     823         * @param int $employeeStatusID O ID do status do funcionário. 
     824         * @param int $jobTitleID O ID do cargo do funcionário. 
     825         * @param int $level O nível do cargo do funcionário. 
     826         * @param int $title O título do funcionário. 
     827         * @param int $nickname O apelido do funcionário. 
     828         * @param int $jobDesc A descrição do cargo (função). 
     829         * @param int $admDate Data de admissão do funcionário. 
     830         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário. 
     831         * @access public 
     832         */ 
     833        function addEmployee($employeeID, $organizationID, $areaID, $costCenterID, $localID, $employeeStatusID, $jobTitleID, $level, $employeeCategoryID, $title, $nickname, $jobDesc, $admDate) 
     834        { 
     835                $this->_checkAccess($organizationID); 
     836                if ($admDate!='') 
     837                { 
     838                        $this->validateDate($admDate); 
     839                        $admission_date = implode('-', array_reverse(explode('/', $admDate))); 
     840                } 
     841                else 
     842                { 
     843                        $admission_date=NULL; 
     844                } 
     845 
     846                $query = 'SELECT area.sigla FROM funcionario, area WHERE (funcionario.area_id = area.area_id) AND (funcionario.funcionario_id = ?)'; 
     847                if (($row = $this->db->query($query, $employeeID)->fetchRow())) 
     848                { 
     849                        $errors = array( 
     850                                "O funcionário \"" . Factory::getInstance('WorkflowLDAP')->getName($employeeID) . "\" já pertença à área \"{$row['sigla']}\".", 
     851                                '-----------------', 
     852                                '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.' 
     853                        ); 
     854                        $this->endExecution($errors); 
     855                } 
     856 
     857                $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(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 
     858                $result = $this->db->query($query, array($employeeID, $organizationID, $areaID, $costCenterID, $localID, $employeeStatusID, $jobTitleID, $level, $employeeCategoryID, $title, $nickname, $jobDesc, $admission_date)); 
     859                $this->_checkError($result); 
     860 
     861                return (($result === false) ? false : true); 
     862        } 
     863 
     864        /** 
     865         * Atualiza o funcionário. 
    859866         * @param int $employeeID O ID do funcionário. 
    860867         * @param int $organizationID O ID da organização. 
     
    866873         * @param int $level O nível do cargo do funcionário. 
    867874         * @param int $employeeCategoryID O ID da categoria do funcionário. 
    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));  
    882                 $this->_checkError($result); 
    883  
     875         * @param int $title O título do funcionário. 
     876         * @param int $nickname O apelido do funcionário. 
     877         * @param int $jobDesc A descrição do cargo (função). 
     878         * @param int $admDate Data de admissão do funcionário. 
     879         * @return bool TRUE se a ação foi concluída com êxito e FALSE caso contrário. 
     880         * @access public 
     881         */ 
     882        function updateEmployee($employeeID, $organizationID, $areaID, $costCenterID, $localID, $employeeStatusID, $jobTitleID, $level, $employeeCategoryID, $title, $nickname, $jobDesc, $admDate) 
     883        { 
     884                $this->_checkAccess($organizationID); 
     885                if ($admDate!='') 
     886                { 
     887                        $this->validateDate($admDate); 
     888                        $admission_date = implode('-', array_reverse(explode('/', $admDate))); 
     889                } 
     890                else 
     891                { 
     892                        $admission_date=NULL; 
     893                } 
     894 
     895                $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 = ?)"; 
     896                         
     897                $result = $this->db->query($query, array($areaID, $costCenterID, $localID, $employeeStatusID, $jobTitleID, $level, $employeeCategoryID, $title,$nickname, $jobDesc, $admission_date, $employeeID, $organizationID)); 
     898                 
     899                $this->_checkError($result); 
     900                 
    884901                return (($result === false) ? false : true); 
    885902        } 
Note: See TracChangeset for help on using the changeset viewer.