Changeset 6589 for branches/2.4/workflow/inc/class.so_orgchart.inc.php
- Timestamp:
- 06/22/12 17:42:39 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.4/workflow/inc/class.so_orgchart.inc.php
r6507 r6589 128 128 $this->acl = &$GLOBALS['ajax']->acl; 129 129 $this->db = &Factory::getInstance('WorkflowObjects')->getDBWorkflow()->Link_ID; 130 $this->db = &Factory::getInstance('WorkflowObjects')->getDBWorkflow()->Link_ID;131 130 $this->db->SetFetchMode(ADODB_FETCH_ASSOC); 132 131 } … … 706 705 $supervisors = '{' . implode(', ', $areaInfo) . '}'; 707 706 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 (?))"; 709 708 $result = $this->db->query($query, array($areaID, $organizationID, $supervisors)); 710 709 $this->_checkError($result); … … 784 783 785 784 /* 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)) ."))"; 787 786 $result = $this->db->query($query); 788 787 $this->_checkError($result); … … 801 800 } 802 801 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 817 816 /** 818 817 * 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. 859 866 * @param int $employeeID O ID do funcionário. 860 867 * @param int $organizationID O ID da organização. … … 866 873 * @param int $level O nível do cargo do funcionário. 867 874 * @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 884 901 return (($result === false) ? false : true); 885 902 }
Note: See TracChangeset
for help on using the changeset viewer.