From a3f8b4ab193439c0425d422e195615e1f0ccba6c Mon Sep 17 00:00:00 2001 From: Eriksen Costa Paixão Date: Mon, 4 May 2009 18:02:24 +0000 Subject: [PATCH] #23 by Eriksen: Corrigido bug que não permitia afastar servidor --- ieducar/intranet/educar_servidor_afastamento_cad.php | 835 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ieducar/intranet/include/pmieducar/clsPmieducarServidor.inc.php | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------- ieducar/intranet/include/pmieducar/clsPmieducarServidorAfastamento.inc.php | 65 ++++++++++++++++++++++++++++++----------------------------------- ieducar/intranet/include/pmieducar/clsPmieducarServidorFuncao.inc.php | 14 ++++++++++++-- ieducar/tests/functional/ServidorAfastarWebTest.class.php | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ieducar/tests/unit/ClsPmieducarServidorTest.class.php | 38 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 704 insertions(+), 490 deletions(-) create mode 100644 ieducar/tests/functional/ServidorAfastarWebTest.class.php create mode 100644 ieducar/tests/unit/ClsPmieducarServidorTest.class.php diff --git a/ieducar/intranet/educar_servidor_afastamento_cad.php b/ieducar/intranet/educar_servidor_afastamento_cad.php index a0b9f40..8281d33 100644 --- a/ieducar/intranet/educar_servidor_afastamento_cad.php +++ b/ieducar/intranet/educar_servidor_afastamento_cad.php @@ -1,431 +1,446 @@ SetTitulo( "{$this->_instituicao} i-Educar - Servidor Afastamento" ); - $this->processoAp = "635"; - } + +require_once 'include/clsBase.inc.php'; +require_once 'include/clsCadastro.inc.php'; +require_once 'include/clsBanco.inc.php'; +require_once 'include/pmieducar/geral.inc.php'; + + +class clsIndexBase extends clsBase { + + public function Formular() { + $this->SetTitulo($this->_instituicao . ' i-Educar - Servidor Afastamento'); + $this->processoAp = '635'; + } + } -class indice extends clsCadastro -{ - /** - * Referencia pega da session para o idpes do usuario atual - * - * @var int - */ - var $pessoa_logada; - - var $ref_cod_servidor; - var $sequencial; - var $ref_cod_instituicao; - var $ref_cod_motivo_afastamento; - var $ref_usuario_exc; - var $ref_usuario_cad; - var $data_cadastro; - var $data_exclusao; - var $data_retorno; - var $data_saida; - var $ativo; - var $status; - var $alocacao_array; - var $dias_da_semana = array( '' => 'Selecione', 1 => 'Domingo', 2 => 'Segunda', 3 => 'Terça', 4 => 'Quarta', 5 => 'Quinta', 6 => 'Sexta', 7 => 'Sábado' ); - var $parametros; - - function Inicializar() - { - $retorno = "Novo"; - $this->status = "N"; - @session_start(); - $this->pessoa_logada = $_SESSION['id_pessoa']; - @session_write_close(); - $this->ref_cod_instituicao = $_GET["ref_cod_instituicao"]; - $this->ref_cod_servidor = $_GET["ref_cod_servidor"]; - $this->sequencial = $_GET["sequencial"]; +class indice extends clsCadastro { - $obj_permissoes = new clsPermissoes(); - $obj_permissoes->permissao_cadastra( 635, $this->pessoa_logada, 7, "educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" ); + /** + * Referência a usuário da sessão + * + * @var int + */ + public $pessoa_logada = NULL; - if( is_numeric( $this->ref_cod_servidor ) && is_numeric( $this->sequencial ) && is_numeric( $this->ref_cod_instituicao ) ) - { - $obj = new clsPmieducarServidorAfastamento( $this->ref_cod_servidor, $this->sequencial, null, null, null, null, null, null, null, 1, $this->ref_cod_instituicao ); - $registro = $obj->detalhe(); - if( $registro ) - { - foreach( $registro AS $campo => $val ) // passa todos os valores obtidos no registro para atributos do objeto - $this->$campo = $val; - if ( $this->data_retorno ) - $this->data_retorno = dataFromPgToBr( $this->data_retorno ); - if ( $this->data_saida ) - $this->data_saida = dataFromPgToBr( $this->data_saida ); - - $obj_permissoes = new clsPermissoes(); - if( $obj_permissoes->permissao_excluir( 635, $this->pessoa_logada, 7 ) ) - { - //$this->fexcluir = true; - } + public + $ref_cod_servidor = NULL, + $sequencial = NULL, + $ref_cod_instituicao = NULL, + $ref_cod_motivo_afastamento = NULL, + $ref_usuario_exc = NULL, + $ref_usuario_cad = NULL, + $data_cadastro = NULL, + $data_exclusao = NULL, + $data_retorno = NULL, + $data_saida = NULL, + $ativo = NULL, + $status = NULL, + $alocacao_array = NULL, + $parametros = NULL; + + /** + * Array dos dias da semana + * + * @var Array + */ + public $dias_da_semana = array( + '' => 'Selecione', + 1 => 'Domingo', + 2 => 'Segunda', + 3 => 'Terça', + 4 => 'Quarta', + 5 => 'Quinta', + 6 => 'Sexta', + 7 => 'Sábado' + ); + + + + public function Inicializar() { + session_start(); + $this->pessoa_logada = $_SESSION['id_pessoa']; + session_write_close(); + + $retorno = "Novo"; + $this->status = "N"; + + $this->ref_cod_instituicao = $_GET['ref_cod_instituicao']; + $this->ref_cod_servidor = $_GET['ref_cod_servidor']; + $this->sequencial = $_GET['sequencial']; + + $urlPermite = sprintf('educar_servidor_det.php?cod_servidor=%s&ref_cod_instituicao=%s', + $this->ref_cod_servidor, $this->ref_cod_instituicao); + + $obj_permissoes = new clsPermissoes(); + $obj_permissoes->permissao_cadastra(635, $this->pessoa_logada, 7, $urlPemite); + + if (is_numeric($this->ref_cod_servidor) && is_numeric($this->sequencial) && + is_numeric($this->ref_cod_instituicao)) { + + $obj = new clsPmieducarServidorAfastamento( + $this->ref_cod_servidor, $this->sequencial, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, 1, $this->ref_cod_instituicao); + + $registro = $obj->detalhe(); + + if ($registro) { + + // passa todos os valores obtidos no registro para atributos do objeto + foreach ($registro as $campo => $val) { + $this->$campo = $val; + } + + if ($this->data_retorno) { + $this->data_retorno = dataFromPgToBr($this->data_retorno); + } + + if ($this->data_saida) { + $this->data_saida = dataFromPgToBr($this->data_saida); + } + + $retorno = "Editar"; + $this->status = "E"; + } + } + + $this->url_cancelar = sprintf( + 'educar_servidor_det.php?cod_servidor=%s&ref_cod_instituicao=%s', + $this->ref_cod_servidor, $this->ref_cod_instituicao); + + $this->nome_url_cancelar = "Cancelar"; + + return $retorno; + } + + + + public function Gerar() { + $this->campoOculto('ref_cod_servidor', $this->ref_cod_servidor); + $this->campoOculto('sequencial', $this->sequencial); + $this->campoOculto('ref_cod_instituicao', $this->ref_cod_instituicao); + + $opcoes = array('' => 'Selecione'); + + $objTemp = new clsPmieducarMotivoAfastamento(); + $lista = $objTemp->lista(); + + if (is_array($lista) && count($lista)) { + foreach ($lista as $registro) { + $opcoes[$registro['cod_motivo_afastamento']] = $registro['nm_motivo']; + } + } + else { + $opcoes = array('' => 'Erro na geracao'); + } - $retorno = "Editar"; - $this->status = "E"; - } - } - $this->url_cancelar = ($retorno == "Editar") ? "educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" : "educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}"; - $this->nome_url_cancelar = "Cancelar"; - return $retorno; - } + if ($this->status == 'N') { + $this->campoLista('ref_cod_motivo_afastamento', 'Motivo Afastamento', + $opcoes, $this->ref_cod_motivo_afastamento); + } + elseif ($this->status == 'E') { + $this->campoLista('ref_cod_motivo_afastamento', 'Motivo Afastamento', + $opcoes, $this->ref_cod_motivo_afastamento, '', FALSE, '', '', TRUE); + } - function Gerar() - { - // primary keys - $this->campoOculto( "ref_cod_servidor", $this->ref_cod_servidor ); - $this->campoOculto( "sequencial", $this->sequencial ); - $this->campoOculto( "ref_cod_instituicao", $this->ref_cod_instituicao ); - - // foreign keys - $opcoes = array( "" => "Selecione" ); - if( class_exists( "clsPmieducarMotivoAfastamento" ) ) - { - $objTemp = new clsPmieducarMotivoAfastamento(); - $lista = $objTemp->lista(); - if ( is_array( $lista ) && count( $lista ) ) - { - foreach ( $lista as $registro ) - { - $opcoes["{$registro['cod_motivo_afastamento']}"] = "{$registro['nm_motivo']}"; - } - } - } - else - { - echo ""; - $opcoes = array( "" => "Erro na geracao" ); - } - if ( $this->status == "N" ) - $this->campoLista( "ref_cod_motivo_afastamento", "Motivo Afastamento", $opcoes, $this->ref_cod_motivo_afastamento ); - elseif ( $this->status == "E" ) - $this->campoLista( "ref_cod_motivo_afastamento", "Motivo Afastamento", $opcoes, $this->ref_cod_motivo_afastamento, "", false, "", "", true ); - - // text - - // data - if ( $this->status == "N" ) - $this->campoData( "data_saida", "Data de Afastamento", $this->data_saida, true ); - elseif ( $this->status == "E" ) - $this->campoRotulo( "data_saida", "Data de Afastamento", $this->data_saida ); - - if ( $this->status == "E" ) - $this->campoData( "data_retorno", "Data de Retorno", $this->data_retorno, false ); - if ( "clsPmieducarServidor" ) { - $obj_servidor = new clsPmieducarServidor( $this->ref_cod_servidor, null, null, null, null, null, 1, $this->ref_cod_instituicao ); - $det_servidor = $obj_servidor->detalhe(); - if ( $det_servidor ) { - if ( "clsPmieducarFuncao" ) { - $obj_funcao = new clsPmieducarFuncao( $det_servidor["ref_cod_funcao"], null, null, null, null, null, null, null, 1, $this->ref_cod_instituicao ); - $det_funcao = $obj_funcao->detalhe(); - if ( $det_funcao["professor"] == 1 ) - { - //$obj = new clsPmieducarQuadroHorarioHorarios( null, null, null, null, null, null, null, $this->ref_cod_instituicao, null, $this->ref_cod_servidor, null, null, null, null, 1, null ); - //$obj = new clsPmieducarServidorAlocacao(); - $obj = new clsPmieducarQuadroHorarioHorarios(); - $lista = $obj->lista( null, null, null, null, null, null, null, $this->ref_cod_instituicao, null, $this->ref_cod_servidor, null, null, null, null, null, null, null, null, 1, null ); - //$lista = $obj->lista( null, $this->ref_cod_instituicao, null, null, null, $this->ref_cod_servidor, null, null, null, null, null, null, null, null, null, 1 ); - if( $lista ) - { - foreach( $lista AS $campo => $val ){ // passa todos os valores obtidos no registro para atributos do objeto - $temp = array(); - $temp['hora_inicial'] = $val['hora_inicial']; - $temp['hora_final'] = $val['hora_final']; - $temp['dia_semana'] = $val['dia_semana']; - $temp['ref_cod_escola'] = $val['ref_cod_escola']; - $temp['ref_cod_substituto'] = $val['ref_servidor_substituto'] ; - $this->alocacao_array[] = $temp; - } - if ( $this->alocacao_array ){ - $tamanho = sizeof( $alocacao ); - $script = ""; - echo $script; - }*/ - $script .= "\n"; - echo $script; - } - } - } - } - } - } - } + // data + if ($this->status == 'N') { + $this->campoData('data_saida', 'Data de Afastamento', $this->data_saida, TRUE); + } + elseif ($this->status == 'E') { + $this->campoRotulo('data_saida', 'Data de Afastamento', $this->data_saida); + } - function Novo() - { - @session_start(); - $this->pessoa_logada = $_SESSION['id_pessoa']; - @session_write_close(); - - $obj_permissoes = new clsPermissoes(); - $obj_permissoes->permissao_cadastra( 635, $this->pessoa_logada, 7, "educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" ); -//echo '
';print_r($_POST);die;
-		$obj = new clsPmieducarServidorAfastamento( $this->ref_cod_servidor, null, $this->ref_cod_motivo_afastamento, null, $this->pessoa_logada, null, null, $this->data_retorno, $this->data_saida, 1, $this->ref_cod_instituicao );
-		$cadastrou = $obj->cadastra();
-		if( $cadastrou )
-		{
-			if(is_array($_POST['ref_cod_servidor_substituto']))
-				foreach ( $_POST['ref_cod_servidor_substituto'] as $key => $valor )
-				{
-					//if ( substr( $campo, 0, 28 ) == 'ref_cod_servidor_substituto_' )
-				//	{
-						$ref_cod_servidor_substituto = $valor;
-				//	}
-					//if ( substr( $campo, 0, 15 ) == 'ref_cod_escola_' )
-						$ref_cod_escola = $_POST["ref_cod_escola_{$key}"];
-					//if ( substr( $campo, 0, 11 ) == 'dia_semana_' )
-						$dia_semana = $_POST["dia_semana_{$key}"];
-					//if ( substr( $campo, 0, 13 ) == 'hora_inicial_' )
-						$hora_inicial = urldecode( $_POST["hora_inicial_{$key}"] );
-				//	if ( substr( $campo, 0, 11 ) == 'hora_final_' )
-						$hora_final = urldecode( $_POST["hora_final_{$key}"] );
-
-					if ( is_numeric( $ref_cod_servidor_substituto ) && is_numeric( $ref_cod_escola ) && is_numeric( $dia_semana ) && is_string( $hora_inicial ) && is_string( $hora_final ) )
-					{
-
-						//if ( substr( $campo, 0, 28 ) == 'ref_cod_servidor_substituto_' )
-						//{die;
-							$obj_horarios = new clsPmieducarQuadroHorarioHorarios( null, null, $ref_cod_escola,null, null,null, $this->ref_cod_instituicao,$ref_cod_servidor_substituto, $this->ref_cod_servidor, $hora_inicial, $hora_final, null, null, 1, $dia_semana );
-							$det_horarios = $obj_horarios->detalhe($ref_cod_escola);
-							//echo " = new clsPmieducarQuadroHorarioHorarios( {$det_horarios["ref_cod_quadro_horario"]}, {$det_horarios["ref_cod_serie"]}, {$det_horarios["ref_cod_escola"]}, {$det_horarios["ref_cod_disciplina"]}, {$det_horarios["ref_ref_cod_turma"]}, {$det_horarios["sequencial"]}, {$det_horarios["ref_cod_instituicao_servidor"]}, null, {$ref_cod_servidor_substituto}, null, null, null, null, null, null, null );";die;
-							$obj_horario = new clsPmieducarQuadroHorarioHorarios( $det_horarios["ref_cod_quadro_horario"], $det_horarios["ref_cod_serie"], $det_horarios["ref_cod_escola"], $det_horarios["ref_cod_disciplina"], $det_horarios["sequencial"], $det_horarios["ref_cod_instituicao_servidor"],$det_horarios["ref_cod_instituicao_servidor"], $ref_cod_servidor_substituto, $this->ref_cod_servidor, null, null, null, null, null, null );
-							if( !$obj_horario->edita() )
-							{
-								$this->mensagem = "Cadastro não realizado.
"; - return false; - } - //} - } - } - $this->mensagem .= "Cadastro efetuado com sucesso.
"; - header( "Location: educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" ); - die(); - return true; - } - else - { - $this->mensagem = "Cadastro não realizado.
"; - return false; - } - $this->mensagem = "Cadastro não realizado.
"; - echo ""; - return false; - } + if ($this->status == 'E') { + $this->campoData('data_retorno', 'Data de Retorno', $this->data_retorno, FALSE); + } - function Editar() - { - @session_start(); - $this->pessoa_logada = $_SESSION['id_pessoa']; - @session_write_close(); + if (class_exists('clsPmieducarServidor')) { + $obj_servidor = new clsPmieducarServidor($this->ref_cod_servidor, + NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao); - $obj_permissoes = new clsPermissoes(); - $obj_permissoes->permissao_cadastra( 635, $this->pessoa_logada, 7, "educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" ); + $det_servidor = $obj_servidor->detalhe(); - $obj = new clsPmieducarServidorAfastamento( $this->ref_cod_servidor, $this->sequencial, $this->ref_cod_motivo_afastamento, $this->pessoa_logada, null, null, null, $this->data_retorno, unserialize( $this->data_saida ), 1, $this->ref_cod_instituicao ); - $editou = $obj->edita(); - if( $editou ) - { - if(is_array($_POST['ref_cod_servidor_substituto'])) - foreach ( $_POST['ref_cod_servidor_substituto'] as $key => $valor ) - { - $ref_cod_servidor_substituto = $valor; - - //if ( substr( $campo, 0, 15 ) == 'ref_cod_escola_' ) - $ref_cod_escola = $_POST["ref_cod_escola_{$key}"]; - //if ( substr( $campo, 0, 11 ) == 'dia_semana_' ) - $dia_semana = $_POST["dia_semana_{$key}"]; - //if ( substr( $campo, 0, 13 ) == 'hora_inicial_' ) - $hora_inicial = urldecode( $_POST["hora_inicial_{$key}"] ); - // if ( substr( $campo, 0, 11 ) == 'hora_final_' ) - $hora_final = urldecode( $_POST["hora_final_{$key}"] ); - - if ( is_numeric( $ref_cod_servidor_substituto ) && is_numeric( $ref_cod_escola ) && is_numeric( $dia_semana ) && is_string( $hora_inicial ) && is_string( $hora_final ) ) - { - //if ( substr( $campo, 0, 28 ) == 'ref_cod_servidor_substituto_' ) - //{ - $obj_horarios = new clsPmieducarQuadroHorarioHorarios( null, null, $ref_cod_escola,null, null,null, $this->ref_cod_instituicao,$ref_cod_servidor_substituto, $this->ref_cod_servidor, $hora_inicial, $hora_final, null, null, 1, $dia_semana ); - $det_horarios = $obj_horarios->detalhe($ref_cod_escola); - //if ( is_string( $this->data_retorno ) && $this->data_retorno != '' ) - //{ - //$obj_horario = new clsPmieducarQuadroHorarioHorarios( $det_horarios["ref_cod_quadro_horario"], $det_horarios["ref_ref_cod_serie"], $det_horarios["ref_ref_cod_escola"], $det_horarios["ref_ref_cod_disciplina"], $det_horarios["ref_ref_cod_turma"], $det_horarios["sequencial"], null, null, null, null, null, null, null, null, null, null ); - $obj_horario = new clsPmieducarQuadroHorarioHorarios( $det_horarios["ref_cod_quadro_horario"], $det_horarios["ref_cod_serie"], $det_horarios["ref_cod_escola"], $det_horarios["ref_cod_disciplina"], $det_horarios["sequencial"], null,$det_horarios["ref_cod_instituicao_servidor"], null, $this->ref_cod_servidor, null, null, null, null, null, null ); - //} - /* else - { - // $obj_horario = new clsPmieducarQuadroHorarioHorarios( $det_horarios["ref_cod_quadro_horario"], $det_horarios["ref_ref_cod_serie"], $det_horarios["ref_ref_cod_escola"], $det_horarios["ref_ref_cod_disciplina"], $det_horarios["ref_ref_cod_turma"], $det_horarios["sequencial"], $det_horarios["ref_cod_instituicao_servidor"], null, $ref_cod_servidor_substituto, null, null, null, null, null, null, null ); - $obj_horario = new clsPmieducarQuadroHorarioHorarios( $det_horarios["ref_cod_quadro_horario"], $det_horarios["ref_cod_serie"], $det_horarios["ref_cod_escola"], $det_horarios["ref_cod_disciplina"], $det_horarios["sequencial"], $det_horarios["ref_cod_instituicao_servidor"],$det_horarios["ref_cod_instituicao_servidor"], $ref_cod_servidor_substituto, $this->ref_cod_servidor, null, null, null, null, null, null ); - }*/ - if( !$obj_horario->edita() ) - { - $this->mensagem = "Cadastro não realizado.
"; - return false; - } - //} - } - } - $this->mensagem .= "Edição efetuada com sucesso.
"; - header( "Location: educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" ); - die(); - return true; - } - - $this->mensagem = "Edição não realizada.
"; - echo ""; - return false; - } + if ($det_servidor) { - function Excluir() - { - @session_start(); - $this->pessoa_logada = $_SESSION['id_pessoa']; - @session_write_close(); + if (class_exists('clsPmieducarFuncao')) { + $obj_funcao = new clsPmieducarFuncao($det_servidor['ref_cod_funcao'], + NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao); - $obj_permissoes = new clsPermissoes(); - $obj_permissoes->permissao_excluir( 635, $this->pessoa_logada, 7, "educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" ); + $det_funcao = $obj_funcao->detalhe(); + if ($det_funcao['professor'] == 1) { + $obj = new clsPmieducarQuadroHorarioHorarios(); + $lista = $obj->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, + $this->ref_cod_instituicao, NULL, $this->ref_cod_servidor, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL); - $obj = new clsPmieducarServidorAfastamento($this->ref_cod_servidor, $this->sequencial, $this->ref_ref_cod_instituicao, $this->ref_cod_motivo_afastamento, $this->pessoa_logada, $this->pessoa_logada, $this->data_cadastro, $this->data_exclusao, $this->data_retorno, $this->data_saida, 0); - $excluiu = $obj->excluir(); - if( $excluiu ) - { - $this->mensagem .= "Exclusão efetuada com sucesso.
"; - header( "Location: educar_servidor_afastamento_lst.php" ); - die(); - return true; - } - - $this->mensagem = "Exclusão não realizada.
"; - echo ""; - return false; - } + if ($lista) { + + // Passa todos os valores obtidos no registro para atributos do objeto + foreach ($lista as $campo => $val) { + $temp = array(); + $temp['hora_inicial'] = $val['hora_inicial']; + $temp['hora_final'] = $val['hora_final']; + $temp['dia_semana'] = $val['dia_semana']; + $temp['ref_cod_escola'] = $val['ref_cod_escola']; + $temp['ref_cod_substituto'] = $val['ref_servidor_substituto']; + $this->alocacao_array[] = $temp; + } + + if ($this->alocacao_array) { + $tamanho = sizeof($alocacao); + $script = ""; + + // Print do Javascript + print $script; + } + } + } + } + + } + } + } + + + + public function Novo() { + session_start(); + $this->pessoa_logada = $_SESSION['id_pessoa']; + session_write_close(); + + $this->ref_cod_servidor = isset($_POST['ref_cod_servidor']) ? + $_POST['ref_cod_servidor'] : NULL; + + $obj_permissoes = new clsPermissoes(); + $obj_permissoes->permissao_cadastra(635, $this->pessoa_logada, 7, + "educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}"); + + $obj = new clsPmieducarServidorAfastamento($this->ref_cod_servidor, NULL, + $this->ref_cod_motivo_afastamento, NULL, $this->pessoa_logada, NULL, NULL, + $this->data_retorno, $this->data_saida, 1, $this->ref_cod_instituicao); + + $cadastrou = $obj->cadastra(); + if ($cadastrou) { + + if(is_array($_POST['ref_cod_servidor_substituto'])) + foreach ( $_POST['ref_cod_servidor_substituto'] as $key => $valor ) + { + //if ( substr( $campo, 0, 28 ) == 'ref_cod_servidor_substituto_' ) + // { + $ref_cod_servidor_substituto = $valor; + // } + //if ( substr( $campo, 0, 15 ) == 'ref_cod_escola_' ) + $ref_cod_escola = $_POST["ref_cod_escola_{$key}"]; + //if ( substr( $campo, 0, 11 ) == 'dia_semana_' ) + $dia_semana = $_POST["dia_semana_{$key}"]; + //if ( substr( $campo, 0, 13 ) == 'hora_inicial_' ) + $hora_inicial = urldecode( $_POST["hora_inicial_{$key}"] ); + // if ( substr( $campo, 0, 11 ) == 'hora_final_' ) + $hora_final = urldecode( $_POST["hora_final_{$key}"] ); + + if ( is_numeric( $ref_cod_servidor_substituto ) && is_numeric( $ref_cod_escola ) && is_numeric( $dia_semana ) && is_string( $hora_inicial ) && is_string( $hora_final ) ) + { + + //if ( substr( $campo, 0, 28 ) == 'ref_cod_servidor_substituto_' ) + //{die; + $obj_horarios = new clsPmieducarQuadroHorarioHorarios( null, null, $ref_cod_escola,null, null,null, $this->ref_cod_instituicao,$ref_cod_servidor_substituto, $this->ref_cod_servidor, $hora_inicial, $hora_final, null, null, 1, $dia_semana ); + $det_horarios = $obj_horarios->detalhe($ref_cod_escola); + //echo " = new clsPmieducarQuadroHorarioHorarios( {$det_horarios["ref_cod_quadro_horario"]}, {$det_horarios["ref_cod_serie"]}, {$det_horarios["ref_cod_escola"]}, {$det_horarios["ref_cod_disciplina"]}, {$det_horarios["ref_ref_cod_turma"]}, {$det_horarios["sequencial"]}, {$det_horarios["ref_cod_instituicao_servidor"]}, null, {$ref_cod_servidor_substituto}, null, null, null, null, null, null, null );";die; + $obj_horario = new clsPmieducarQuadroHorarioHorarios( $det_horarios["ref_cod_quadro_horario"], $det_horarios["ref_cod_serie"], $det_horarios["ref_cod_escola"], $det_horarios["ref_cod_disciplina"], $det_horarios["sequencial"], $det_horarios["ref_cod_instituicao_servidor"],$det_horarios["ref_cod_instituicao_servidor"], $ref_cod_servidor_substituto, $this->ref_cod_servidor, null, null, null, null, null, null ); + if( !$obj_horario->edita() ) + { + $this->mensagem = "Cadastro não realizado.
"; + return false; + } + //} + } + } + $this->mensagem .= "Cadastro efetuado com sucesso.
"; + header( "Location: educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" ); + die(); + return true; + } + else + { + $this->mensagem = "Cadastro não realizado.
"; + return false; + } + $this->mensagem = "Cadastro não realizado.
"; + echo ""; + return false; + } + + function Editar() + { + @session_start(); + $this->pessoa_logada = $_SESSION['id_pessoa']; + @session_write_close(); + + $obj_permissoes = new clsPermissoes(); + $obj_permissoes->permissao_cadastra( 635, $this->pessoa_logada, 7, "educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" ); + + $obj = new clsPmieducarServidorAfastamento( $this->ref_cod_servidor, $this->sequencial, $this->ref_cod_motivo_afastamento, $this->pessoa_logada, null, null, null, $this->data_retorno, unserialize( $this->data_saida ), 1, $this->ref_cod_instituicao ); + $editou = $obj->edita(); + if( $editou ) + { + if(is_array($_POST['ref_cod_servidor_substituto'])) + foreach ( $_POST['ref_cod_servidor_substituto'] as $key => $valor ) + { + $ref_cod_servidor_substituto = $valor; + + //if ( substr( $campo, 0, 15 ) == 'ref_cod_escola_' ) + $ref_cod_escola = $_POST["ref_cod_escola_{$key}"]; + //if ( substr( $campo, 0, 11 ) == 'dia_semana_' ) + $dia_semana = $_POST["dia_semana_{$key}"]; + //if ( substr( $campo, 0, 13 ) == 'hora_inicial_' ) + $hora_inicial = urldecode( $_POST["hora_inicial_{$key}"] ); + // if ( substr( $campo, 0, 11 ) == 'hora_final_' ) + $hora_final = urldecode( $_POST["hora_final_{$key}"] ); + + if ( is_numeric( $ref_cod_servidor_substituto ) && is_numeric( $ref_cod_escola ) && is_numeric( $dia_semana ) && is_string( $hora_inicial ) && is_string( $hora_final ) ) + { + //if ( substr( $campo, 0, 28 ) == 'ref_cod_servidor_substituto_' ) + //{ + $obj_horarios = new clsPmieducarQuadroHorarioHorarios( null, null, $ref_cod_escola,null, null,null, $this->ref_cod_instituicao,$ref_cod_servidor_substituto, $this->ref_cod_servidor, $hora_inicial, $hora_final, null, null, 1, $dia_semana ); + $det_horarios = $obj_horarios->detalhe($ref_cod_escola); + //if ( is_string( $this->data_retorno ) && $this->data_retorno != '' ) + //{ + //$obj_horario = new clsPmieducarQuadroHorarioHorarios( $det_horarios["ref_cod_quadro_horario"], $det_horarios["ref_ref_cod_serie"], $det_horarios["ref_ref_cod_escola"], $det_horarios["ref_ref_cod_disciplina"], $det_horarios["ref_ref_cod_turma"], $det_horarios["sequencial"], null, null, null, null, null, null, null, null, null, null ); + $obj_horario = new clsPmieducarQuadroHorarioHorarios( $det_horarios["ref_cod_quadro_horario"], $det_horarios["ref_cod_serie"], $det_horarios["ref_cod_escola"], $det_horarios["ref_cod_disciplina"], $det_horarios["sequencial"], null,$det_horarios["ref_cod_instituicao_servidor"], null, $this->ref_cod_servidor, null, null, null, null, null, null ); + //} + /* else + { + // $obj_horario = new clsPmieducarQuadroHorarioHorarios( $det_horarios["ref_cod_quadro_horario"], $det_horarios["ref_ref_cod_serie"], $det_horarios["ref_ref_cod_escola"], $det_horarios["ref_ref_cod_disciplina"], $det_horarios["ref_ref_cod_turma"], $det_horarios["sequencial"], $det_horarios["ref_cod_instituicao_servidor"], null, $ref_cod_servidor_substituto, null, null, null, null, null, null, null ); + $obj_horario = new clsPmieducarQuadroHorarioHorarios( $det_horarios["ref_cod_quadro_horario"], $det_horarios["ref_cod_serie"], $det_horarios["ref_cod_escola"], $det_horarios["ref_cod_disciplina"], $det_horarios["sequencial"], $det_horarios["ref_cod_instituicao_servidor"],$det_horarios["ref_cod_instituicao_servidor"], $ref_cod_servidor_substituto, $this->ref_cod_servidor, null, null, null, null, null, null ); + }*/ + if( !$obj_horario->edita() ) + { + $this->mensagem = "Cadastro não realizado.
"; + return false; + } + //} + } + } + $this->mensagem .= "Edição efetuada com sucesso.
"; + header( "Location: educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" ); + die(); + return true; + } + + $this->mensagem = "Edição não realizada.
"; + echo ""; + return false; + } + + function Excluir() + { + @session_start(); + $this->pessoa_logada = $_SESSION['id_pessoa']; + @session_write_close(); + + $obj_permissoes = new clsPermissoes(); + $obj_permissoes->permissao_excluir( 635, $this->pessoa_logada, 7, "educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" ); + + + $obj = new clsPmieducarServidorAfastamento($this->ref_cod_servidor, $this->sequencial, $this->ref_ref_cod_instituicao, $this->ref_cod_motivo_afastamento, $this->pessoa_logada, $this->pessoa_logada, $this->data_cadastro, $this->data_exclusao, $this->data_retorno, $this->data_saida, 0); + $excluiu = $obj->excluir(); + if( $excluiu ) + { + $this->mensagem .= "Exclusão efetuada com sucesso.
"; + header( "Location: educar_servidor_afastamento_lst.php" ); + die(); + return true; + } + + $this->mensagem = "Exclusão não realizada.
"; + echo ""; + return false; + } } // cria uma extensao da classe base diff --git a/ieducar/intranet/include/pmieducar/clsPmieducarServidor.inc.php b/ieducar/intranet/include/pmieducar/clsPmieducarServidor.inc.php index 5978b61..024b2ec 100644 --- a/ieducar/intranet/include/pmieducar/clsPmieducarServidor.inc.php +++ b/ieducar/intranet/include/pmieducar/clsPmieducarServidor.inc.php @@ -1,36 +1,32 @@ _schema = "pmieducar."; $this->_tabela = "{$this->_schema}servidor"; @@ -409,8 +408,19 @@ class clsPmieducarServidor * * @return array */ - function lista( $int_cod_servidor = null, $int_ref_cod_deficiencia = null, $int_ref_idesco = null, $int_carga_horaria = null, $date_data_cadastro_ini = null, $date_data_cadastro_fim = null, $date_data_exclusao_ini = null, $date_data_exclusao_fim = null, $int_ativo = null, $int_ref_cod_instituicao = null, $str_tipo = null, $array_horario = null, $str_not_in_servidor = null, $str_nome_servidor = null, $boo_professor = false, $str_horario = null, $bool_ordena_por_nome = false, $lst_matriculas = null, $matutino = false, $vespertino = false, $noturno = false, $int_ref_cod_escola = null, $str_hr_mat = nul, $str_hr_ves = null, $str_hr_not = null, $int_dia_semana = null,$alocacao_escola_instituicao = null, $int_identificador = null, $int_ref_cod_curso = null, $int_ref_cod_disciplina = null, $int_ref_cod_subnivel = null ) - { + public function lista($int_cod_servidor = NULL, $int_ref_cod_deficiencia = NULL, + $int_ref_idesco = null, $int_carga_horaria = NULL, $date_data_cadastro_ini = NULL, + $date_data_cadastro_fim = NULL, $date_data_exclusao_ini = NULL, + $date_data_exclusao_fim = NULL, $int_ativo = NULL, + $int_ref_cod_instituicao = NULL, $str_tipo = NULL, $array_horario = NULL, + $str_not_in_servidor = NULL, $str_nome_servidor = NULL, $boo_professor = FALSE, + $str_horario = NULL, $bool_ordena_por_nome = FALSE, $lst_matriculas = NULL, + $matutino = FALSE, $vespertino = FALSE, $noturno = FALSE, + $int_ref_cod_escola = NULL, $str_hr_mat = NULL, $str_hr_ves = NULL, + $str_hr_not = NULL, $int_dia_semana = NULL, + $alocacao_escola_instituicao = NULL, $int_identificador = NULL, + $int_ref_cod_curso = NULL, $int_ref_cod_disciplina = NULL, + $int_ref_cod_subnivel = NULL) { $whereAnd = " WHERE "; $filtros = ""; @@ -425,7 +435,7 @@ class clsPmieducarServidor { $tabela_compl .= ", cadastro.pessoa p"; $this->_campos_lista2 .= ",p.nome"; - $filtros .= "{$whereAnd} cod_servidor = idpes "; + $filtros .= "{$whereAnd} s.cod_servidor = p.idpes "; $whereAnd = " AND "; $this->setOrderby( "nome" ); } @@ -540,9 +550,14 @@ class clsPmieducarServidor { $filtros .= "{$whereAnd} s.cod_servidor IN ( SELECT a.ref_cod_servidor FROM pmieducar.servidor_alocacao a - WHERE a.ref_ref_cod_instituicao = '{$int_ref_cod_instituicao}' - and ref_cod_escola = '{$int_ref_cod_escola}' )"; - + WHERE "; + if (is_numeric($int_ref_cod_instituicao)) { + $filtros .= " a.ref_ref_cod_instituicao = '{$int_ref_cod_instituicao}'"; + } + if (is_numeric($int_ref_cod_escola)) { + $filtros .= " and ref_cod_escola = '{$int_ref_cod_escola}' "; + } + $filtros .= ') '; } if ( is_array( $array_horario ) ) @@ -791,7 +806,7 @@ class clsPmieducarServidor $sql = "SELECT {$this->_campos_lista2} FROM {$this->_schema}servidor s{$tabela_compl} {$filtros}".$this->getOrderby().$this->getLimite(); $this->_total = $db->CampoUnico( "SELECT COUNT(0) FROM {$this->_schema}servidor s{$tabela_compl} {$filtros}" ); - +print '
'.$sql.'
'; $db->Consulta( $sql ); if( $countCampos > 1 ) @@ -976,5 +991,4 @@ class clsPmieducarServidor return $db->Tupla(); } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/ieducar/intranet/include/pmieducar/clsPmieducarServidorAfastamento.inc.php b/ieducar/intranet/include/pmieducar/clsPmieducarServidorAfastamento.inc.php index 1859565..5da7ba3 100644 --- a/ieducar/intranet/include/pmieducar/clsPmieducarServidorAfastamento.inc.php +++ b/ieducar/intranet/include/pmieducar/clsPmieducarServidorAfastamento.inc.php @@ -1,36 +1,32 @@ _schema = "pmieducar."; $this->_tabela = "{$this->_schema}servidor_afastamento"; @@ -206,7 +202,7 @@ class clsPmieducarServidorAfastamento { if( class_exists( "clsPmieducarServidor" ) ) { - $tmp_obj = new clsPmieducarServidor( $ref_cod_servidor, null, null, null, null, null, null, 1, $ref_cod_instituicao ); + $tmp_obj = new clsPmieducarServidor( $ref_cod_servidor, null, null, null, null, null, 1, $ref_cod_instituicao ); if( method_exists( $tmp_obj, "existe") ) { if( $tmp_obj->existe() ) @@ -710,5 +706,4 @@ class clsPmieducarServidorAfastamento } return false; } -} -?> \ No newline at end of file +} \ No newline at end of file diff --git a/ieducar/intranet/include/pmieducar/clsPmieducarServidorFuncao.inc.php b/ieducar/intranet/include/pmieducar/clsPmieducarServidorFuncao.inc.php index 0fb5409..2c15428 100644 --- a/ieducar/intranet/include/pmieducar/clsPmieducarServidorFuncao.inc.php +++ b/ieducar/intranet/include/pmieducar/clsPmieducarServidorFuncao.inc.php @@ -291,11 +291,21 @@ class clsPmieducarServidorFuncao */ function detalhe() { - if( is_numeric( $this->ref_ref_cod_instituicao ) && is_numeric( $this->ref_cod_servidor ) && is_numeric( $this->ref_cod_funcao ) ) + if( is_numeric( $this->ref_ref_cod_instituicao ) && is_numeric( $this->ref_cod_servidor ) ) #&& is_numeric( $this->ref_cod_funcao ) ) { + $sql = sprintf( + "SELECT %s FROM %s WHERE ref_ref_cod_instituicao = '%d' AND ref_cod_servidor = '%d'", + $this->_todos_campos, $this->_tabela, $this->ref_ref_cod_instituicao, + $this->ref_cod_servidor + ); + + if (is_numeric($this->ref_cod_funcao)) { + $sql .= sprintf(" AND ref_cod_funcao = '%d'", $this->ref_cod_funcao); + } $db = new clsBanco(); - $db->Consulta( "SELECT {$this->_todos_campos} FROM {$this->_tabela} WHERE ref_ref_cod_instituicao = '{$this->ref_ref_cod_instituicao}' AND ref_cod_servidor = '{$this->ref_cod_servidor}' AND ref_cod_funcao = '{$this->ref_cod_funcao}'" ); + #$db->Consulta( "SELECT {$this->_todos_campos} FROM {$this->_tabela} WHERE ref_ref_cod_instituicao = '{$this->ref_ref_cod_instituicao}' AND ref_cod_servidor = '{$this->ref_cod_servidor}' AND ref_cod_funcao = '{$this->ref_cod_funcao}'" ); + $db->Consulta($sql); $db->ProximoRegistro(); return $db->Tupla(); } diff --git a/ieducar/tests/functional/ServidorAfastarWebTest.class.php b/ieducar/tests/functional/ServidorAfastarWebTest.class.php new file mode 100644 index 0000000..cf092e3 --- /dev/null +++ b/ieducar/tests/functional/ServidorAfastarWebTest.class.php @@ -0,0 +1,142 @@ + + * @since 1.0.1 + * @version $Id$ + */ + +require_once realpath(dirname(__FILE__) . '/../') . '/FunctionalBaseTest.class.php'; + +class ServidorAfastarWebTest extends FunctionalBaseTest { + + private + $slPessoaNome = 'Selenese Test User', + $slPessoaMatricula = 'selen_tuser', + $slPessoaID = NULL; + + + + protected function setUp() { + parent::setUp(); + + $db = new clsBanco(); + + // Cria uma nova pessoa e guarda o ID gerado + $db->Consulta(sprintf("INSERT INTO cadastro.pessoa (nome, data_cad,tipo,situacao,origem_gravacao, idsis_cad, operacao , idpes_cad) VALUES ('%s', NOW(), 'F', 'P', 'U', 17, 'I' , '1')", $this->slPessoaNome)); + $this->slPessoaID = $id = $db->InsertId('cadastro.seq_pessoa'); + + + // Cria pessoa física + $db->Consulta(sprintf("INSERT INTO cadastro.fisica (idpes, origem_gravacao, idsis_cad, data_cad, operacao, idpes_cad , sexo) VALUES ( '%d', 'M', 17, NOW(), 'I', '1' , 'M')", $id)); + + // Cria novo funcionário no sistema + $db->Consulta( + sprintf( + "INSERT INTO portal.funcionario + (ref_cod_pessoa_fj, matricula, senha, ativo, ramal, ref_cod_funcionario_vinculo, tempo_expira_senha, tempo_expira_conta, data_troca_senha, data_reativa_conta, ref_ref_cod_pessoa_fj, proibido, ref_cod_setor_new, matricula_permanente) + VALUES + ('%d', '%s', '25d55ad283aa400af464c76d713c07ad', '1', '', '4', '30', '365', NOW(), NOW(), '28', '0', '1', '1')", $id, $this->slPessoaMatricula) + ); + + + // Cria um novo servidor, com a função de professor + $sql = sprintf("INSERT INTO pmieducar.servidor (cod_servidor, ref_idesco, carga_horaria, data_cadastro, ativo, ref_cod_instituicao ) VALUES( '%d', '14', '40', NOW(), '1', '2' )", $id); + $db->Consulta($sql); + + $sql = sprintf("INSERT INTO pmieducar.servidor_funcao (ref_ref_cod_instituicao, ref_cod_servidor, ref_cod_funcao ) VALUES( '2', '%d', '2')", $id); + $db->Consulta($sql); + + + // Atribue disciplinas ao servidor e o curso em que ministra + $sql = sprintf("INSERT INTO pmieducar.servidor_disciplina (ref_cod_disciplina, ref_ref_cod_instituicao, ref_cod_servidor) VALUES('6', '2', '%d')", $id); + $db->Consulta($sql); + $sql = sprintf("INSERT INTO pmieducar.servidor_disciplina (ref_cod_disciplina, ref_ref_cod_instituicao, ref_cod_servidor) VALUES('3', '2', '%d')", $id); + $db->Consulta($sql); + $sql = sprintf("INSERT INTO pmieducar.servidor_disciplina (ref_cod_disciplina, ref_ref_cod_instituicao, ref_cod_servidor) VALUES('4', '2', '%d')", $id); + $db->Consulta($sql); + + $sql = sprintf("INSERT INTO pmieducar.servidor_curso_ministra (ref_cod_curso, ref_ref_cod_instituicao, ref_cod_servidor) VALUES('1', '2', '%d')", $id); + $db->Consulta($sql); + + + // Aloca tempo de trabalho para o servidor + $sql = sprintf("INSERT INTO pmieducar.servidor_alocacao (ref_ref_cod_instituicao, ref_usuario_cad, ref_cod_escola, ref_cod_servidor, carga_horaria, periodo, data_cadastro, ativo ) VALUES( '2', '28', '1', '%d', '10:00', '1', NOW(), '1')", $id); + $db->Consulta($sql); + $sql = sprintf("INSERT INTO pmieducar.servidor_alocacao (ref_ref_cod_instituicao, ref_usuario_cad, ref_cod_escola, ref_cod_servidor, carga_horaria, periodo, data_cadastro, ativo ) VALUES( '2', '28', '1', '%d', '06:00', '2', NOW(), '1')", $id); + $db->Consulta($sql); + $sql = sprintf("INSERT INTO pmieducar.servidor_alocacao (ref_ref_cod_instituicao, ref_usuario_cad, ref_cod_escola, ref_cod_servidor, carga_horaria, periodo, data_cadastro, ativo ) VALUES( '2', '28', '2', '%d', '14:00', '1', NOW(), '1')", $id); + $db->Consulta($sql); + $sql = sprintf("INSERT INTO pmieducar.servidor_alocacao (ref_ref_cod_instituicao, ref_usuario_cad, ref_cod_escola, ref_cod_servidor, carga_horaria, periodo, data_cadastro, ativo ) VALUES( '2', '28', '2', '%d', '05:00', '2', NOW(), '1')", $id); + $db->Consulta($sql); + + // Aloca horas aula ao servidor + $sql = sprintf("INSERT INTO pmieducar.quadro_horario_horarios ( ref_cod_quadro_horario, ref_cod_serie, ref_cod_escola, ref_cod_disciplina, sequencial, ref_cod_instituicao_servidor, ref_servidor, hora_inicial, hora_final, data_cadastro, ativo, dia_semana ) VALUES( '2', '2', '1', '6', '3', '2', '%d', '09:00', '10:00', NOW(), '1', '3')", $id); + $db->Consulta($sql); + + $sql = sprintf("INSERT INTO pmieducar.quadro_horario_horarios ( ref_cod_quadro_horario, ref_cod_serie, ref_cod_escola, ref_cod_disciplina, sequencial, ref_cod_instituicao_servidor, ref_servidor, hora_inicial, hora_final, data_cadastro, ativo, dia_semana ) VALUES( '2', '2', '1', '3', '4', '2', '%d', '08:00', '09:00', NOW(), '1', '5' )", $id); + $db->Consulta($sql); + } + + + + protected function tearDown() { + $db = new clsBanco(); + + // ID da pessoa/servidor + $id = $this->slPessoaID; + + // Array com instruções SQL para limpar os registros + $sqls = array(); + + $sqls[] = sprintf("DELETE FROM pmieducar.quadro_horario_horarios WHERE ref_servidor = '%d'", $id); + $sqls[] = sprintf("DELETE FROM pmieducar.servidor_alocacao WHERE ref_cod_servidor = '%d'", $id); + $sqls[] = sprintf("DELETE FROM pmieducar.servidor_curso_ministra WHERE ref_cod_servidor = '%d'", $id); + $sqls[] = sprintf("DELETE FROM pmieducar.servidor_disciplina WHERE ref_cod_servidor = '%d'", $id); + $sqls[] = sprintf("DELETE FROM pmieducar.servidor_funcao WHERE ref_cod_servidor = '%d'", $id); + $sqls[] = sprintf("DELETE FROM pmieducar.servidor_afastamento WHERE ref_cod_servidor = '%d'", $id); // Criado na interface, apenas para não ter problemas com alguma restrição referencial + $sqls[] = sprintf("DELETE FROM pmieducar.servidor WHERE cod_servidor = '%d'", $id); + $sqls[] = sprintf("DELETE FROM portal.menu_funcionario WHERE ref_ref_cod_pessoa_fj = '%d'", $id); // Não é criado mas apenas para não ser surpreendido por alguma restrição referencial + $sqls[] = sprintf("DELETE FROM portal.funcionario WHERE ref_cod_pessoa_fj = '%d'", $id); + $sqls[] = sprintf("DELETE FROM cadastro.fisica WHERE idpes = '%d'", $id); + $sqls[] = sprintf("DELETE FROM cadastro.pessoa WHERE idpes = '%d'", $id); + + foreach ($sqls as $sql) { + $db->Consulta($sql); + } + + } + + + + /** + * Testa a ação afastar servidor. + * + * Verifica pelo nome de matrícula que aparece na página de detalhes logo após + * a requisição enviada ao servidor. + */ + public function testServidorAfastar() { + $this->doLogin(); + + $this->open('/intranet/educar_servidor_lst.php'); + $this->clickAndWait('link=' . $this->slPessoaNome); + $this->clickAndWait("//input[@value='Afastar Servidor']"); + + $this->select('ref_cod_motivo_afastamento', 'label=Capacitação'); + + // Cria data daqui a 10 dias + $data = date('d/m/Y', (time() + (60 * 60 * 24 * 10))); + $this->type('data_saida', $data); + + $this->clickAndWait('btn_enviar'); + $this->assertTrue($this->isTextPresent($this->slPessoaMatricula)); + + $this->doLogout(); + } + +} \ No newline at end of file diff --git a/ieducar/tests/unit/ClsPmieducarServidorTest.class.php b/ieducar/tests/unit/ClsPmieducarServidorTest.class.php new file mode 100644 index 0000000..97c1ab6 --- /dev/null +++ b/ieducar/tests/unit/ClsPmieducarServidorTest.class.php @@ -0,0 +1,38 @@ + + * @version $Id$ + */ + +require_once realpath(dirname(__FILE__) . '/../') . '/UnitBaseTest.class.php'; +require_once 'include/pmieducar/clsPmieducarServidor.inc.php'; + +class ClsPmieducarServidorTest extends UnitBaseTest { + + private + $codServidor = NULL, + $codInstituicao = NULL; + + protected function setUp() { + $db = new clsBanco(); + $sql = 'SELECT cod_servidor, ref_cod_instituicao FROM pmieducar.servidor WHERE ativo = 1 LIMIT 1'; + + $db->Consulta($sql); + $db->ProximoRegistro(); + list($this->codServidor, $this->codInstituicao) = $db->Tupla(); + } + + public function testPmieducarServidorExists() { + $codServidor = $this->codServidor; + $codInstituicao = $this->codInstituicao; + + $servidor = new clsPmieducarServidor( + $codServidor, NULL, NULL, NULL, NULL, NULL, 1, $codInstituicao); + + $this->assertTrue((boolean) $servidor->existe()); + } + +} \ No newline at end of file -- libgit2 0.21.2