Changeset 6507 for branches/2.4/workflow/inc/class.so_orgchart.inc.php
- Timestamp:
- 06/14/12 18:22:31 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.4/workflow/inc/class.so_orgchart.inc.php
r3290 r6507 706 706 $supervisors = '{' . implode(', ', $areaInfo) . '}'; 707 707 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 (?))"; 709 709 $result = $this->db->query($query, array($areaID, $organizationID, $supervisors)); 710 710 $this->_checkError($result); … … 784 784 785 785 /* 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)) ."))"; 787 787 $result = $this->db->query($query); 788 788 $this->_checkError($result); … … 801 801 } 802 802 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 803 817 /** 804 818 * 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. 805 859 * @param int $employeeID O ID do funcionário. 806 860 * @param int $organizationID O ID da organização. … … 812 866 * @param int $level O nível do cargo do funcionário. 813 867 * @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)); 859 882 $this->_checkError($result); 860 883
Note: See TracChangeset
for help on using the changeset viewer.