Changeset 2056 for trunk/workflow/inc/class.so_orgchart.inc.php
- Timestamp:
- 02/23/10 15:28:20 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/workflow/inc/class.so_orgchart.inc.php
r2042 r2056 699 699 $this->_checkAccess($organizationID); 700 700 701 $supervisors = '{' . implode(', ', $this->db->GetRow('SELECT COALESCE( titular_funcionario_id, -1) AS titular_funcionario_id, COALESCE(substituto_funcionario_id, -1) AS substituto_funcionario_id FROM areaWHERE (area_id = ?) AND (organizacao_id = ?)', array($areaID, $organizationID))) . '}';701 $supervisors = '{' . implode(', ', $this->db->GetRow('SELECT COALESCE(a.titular_funcionario_id, -1) AS titular_funcionario_id, COALESCE(s.funcionario_id, -1) AS substituto_funcionario_id FROM area a LEFT OUTER JOIN substituicao s ON ((a.area_id = s.area_id) AND (CURRENT_DATE BETWEEN s.data_inicio AND s.data_fim)) WHERE (area_id = ?) AND (organizacao_id = ?)', array($areaID, $organizationID))) . '}'; 702 702 $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 (?))"; 703 703 $result = $this->db->query($query, array($areaID, $organizationID, $supervisors)); … … 863 863 $this->_checkAccess($organizationID); 864 864 865 $query = 'SELECT sigla FROM area WHERE (? IN (titular_funcionario_id, substituto_funcionario_id,auxiliar_funcionario_id))';865 $query = 'SELECT DISTINCT(a.sigla) FROM area a LEFT OUTER JOIN substituicao s USING (area_id) WHERE (? IN (a.titular_funcionario_id, s.funcionario_id, a.auxiliar_funcionario_id))'; 866 866 $areas = array(); 867 867 $resultSet = $this->db->query($query, $employeeID); … … 871 871 { 872 872 $errors = array( 873 "O funcionário \"" . $GLOBALS['workflow']['factory']->getInstance('WorkflowLDAP')->getName($employeeID) . "\" é titular, substituto ouauxiliar administrativo das seguintes áreas: " . implode(", ", $areas),873 "O funcionário \"" . $GLOBALS['workflow']['factory']->getInstance('WorkflowLDAP')->getName($employeeID) . "\" é titular, substituto, já participou de substituição ou é auxiliar administrativo das seguintes áreas: " . implode(", ", $areas), 874 874 '-----------------', 875 875 'Se você quiser excluir este funcionário, precisa removê-lo dos "cargos" que ele possui nas áreas citadas.' … … 901 901 $area_condition = ""; 902 902 if (($areaID != -1) && !empty($areaID)) { 903 $area_condition = " AND a rea_id = ? ";903 $area_condition = " AND a.area_id = ? "; 904 904 $values[]= $areaID; 905 905 } 906 906 907 $query = "SELECT a rea_id, centro_custo_id, organizacao_id, area_status_id, titular_funcionario_id, superior_area_id, sigla, descricao, ativa, auxiliar_funcionario_id FROM areaWHERE organizacao_id = ? " . $area_condition . " ORDER BY sigla";907 $query = "SELECT a.area_id, a.centro_custo_id, a.organizacao_id, a.area_status_id, a.titular_funcionario_id, a.superior_area_id, a.sigla, a.descricao, a.ativa, a.auxiliar_funcionario_id, s.funcionario_id as substituto_funcionario_id FROM area a LEFT OUTER JOIN substituicao s ON ((a.area_id = s.area_id) AND (CURRENT_DATE BETWEEN s.data_inicio AND s.data_fim)) WHERE organizacao_id = ? " . $area_condition . " ORDER BY sigla"; 908 908 $result = $this->db->query($query, $values); 909 909 $this->_checkError($result);
Note: See TracChangeset
for help on using the changeset viewer.