Commit 49e101efa1d64659d1f4f8a66aaf447876ae6dce

Authored by Eriksen Costa Paixão
1 parent 7e2dfd43
Exists in master

#20 by Eriksen: Corrigido bug que impedia atualizar ou excluir um motivo de afastamento de servidor.

ieducar/intranet/educar_motivo_afastamento_cad.php
1 <?php 1 <?php
2 -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  
3 - * *  
4 - * @author Prefeitura Municipal de Itajaí *  
5 - * @updated 29/03/2007 *  
6 - * Pacote: i-PLB Software Público Livre e Brasileiro *  
7 - * *  
8 - * Copyright (C) 2006 PMI - Prefeitura Municipal de Itajaí *  
9 - * ctima@itajai.sc.gov.br *  
10 - * *  
11 - * Este programa é software livre, você pode redistribuí-lo e/ou *  
12 - * modificá-lo sob os termos da Licença Pública Geral GNU, conforme *  
13 - * publicada pela Free Software Foundation, tanto a versão 2 da *  
14 - * Licença como (a seu critério) qualquer versão mais nova. *  
15 - * *  
16 - * Este programa é distribuído na expectativa de ser útil, mas SEM *  
17 - * QUALQUER GARANTIA. Sem mesmo a garantia implícita de COMERCIALI- *  
18 - * ZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM PARTICULAR. Con- *  
19 - * sulte a Licença Pública Geral GNU para obter mais detalhes. *  
20 - * *  
21 - * Você deve ter recebido uma cópia da Licença Pública Geral GNU *  
22 - * junto com este programa. Se não, escreva para a Free Software *  
23 - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA *  
24 - * 02111-1307, USA. *  
25 - * *  
26 - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */  
27 /** 2 /**
28 - * @author Adriano Erik Weiguert Nagasava 3 + *
  4 + * @author Prefeitura Municipal de Itajaí
  5 + * @version SVN: $Id$
  6 + *
  7 + * Pacote: i-PLB Software Público Livre e Brasileiro
  8 + *
  9 + * Copyright (C) 2006 PMI - Prefeitura Municipal de Itajaí
  10 + * ctima@itajai.sc.gov.br
  11 + *
  12 + * Este programa é software livre, você pode redistribuí-lo e/ou
  13 + * modificá-lo sob os termos da Licença Pública Geral GNU, conforme
  14 + * publicada pela Free Software Foundation, tanto a versão 2 da
  15 + * Licença como (a seu critério) qualquer versão mais nova.
  16 + *
  17 + * Este programa é distribuído na expectativa de ser útil, mas SEM
  18 + * QUALQUER GARANTIA. Sem mesmo a garantia implícita de COMERCIALI-
  19 + * ZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM PARTICULAR. Con-
  20 + * sulte a Licença Pública Geral GNU para obter mais detalhes.
  21 + *
  22 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU
  23 + * junto com este programa. Se não, escreva para a Free Software
  24 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  25 + * 02111-1307, USA.
  26 + *
29 */ 27 */
30 -require_once ("include/clsBase.inc.php");  
31 -require_once ("include/clsCadastro.inc.php");  
32 -require_once ("include/clsBanco.inc.php");  
33 -require_once( "include/pmieducar/geral.inc.php" ); 28 +
  29 +require_once 'include/clsBase.inc.php';
  30 +require_once 'include/clsCadastro.inc.php';
  31 +require_once 'include/clsBanco.inc.php';
  32 +require_once 'include/pmieducar/geral.inc.php';
34 33
35 class clsIndexBase extends clsBase 34 class clsIndexBase extends clsBase
36 { 35 {
@@ -48,18 +47,18 @@ class indice extends clsCadastro @@ -48,18 +47,18 @@ class indice extends clsCadastro
48 * 47 *
49 * @var int 48 * @var int
50 */ 49 */
51 - var $pessoa_logada;  
52 -  
53 - var $cod_motivo_afastamento;  
54 - var $ref_usuario_exc;  
55 - var $ref_usuario_cad;  
56 - var $nm_motivo;  
57 - var $descricao;  
58 - var $data_cadastro;  
59 - var $data_exclusao;  
60 - var $ativo;  
61 - //var $ref_cod_escola;  
62 - var $ref_cod_instituicao; 50 + public $pessoa_logada = NULL;
  51 +
  52 + public
  53 + $cod_motivo_afastamento = NULL,
  54 + $ref_usuario_exc = NULL,
  55 + $ref_usuario_cad = NULL,
  56 + $nm_motivo = NULL,
  57 + $descricao = NULL,
  58 + $data_cadastro = NULL,
  59 + $data_exclusao = NULL,
  60 + $ativo = NULL,
  61 + $ref_cod_instituicao = NULL;
63 62
64 function Inicializar() 63 function Inicializar()
65 { 64 {
@@ -78,9 +77,10 @@ class indice extends clsCadastro @@ -78,9 +77,10 @@ class indice extends clsCadastro
78 77
79 $obj = new clsPmieducarMotivoAfastamento( $this->cod_motivo_afastamento ); 78 $obj = new clsPmieducarMotivoAfastamento( $this->cod_motivo_afastamento );
80 $registro = $obj->detalhe(); 79 $registro = $obj->detalhe();
  80 +
81 if( $registro ) 81 if( $registro )
82 { 82 {
83 - foreach( $registro AS $campo => $val ) // passa todos os valores obtidos no registro para atributos do objeto 83 + foreach( $registro AS $campo => $val ) // passa todos os valores obtidos no registro para atributos do objeto
84 $this->$campo = $val; 84 $this->$campo = $val;
85 85
86 $obj_escola = new clsPmieducarEscola( $this->ref_cod_escola ); 86 $obj_escola = new clsPmieducarEscola( $this->ref_cod_escola );
@@ -93,9 +93,10 @@ class indice extends clsCadastro @@ -93,9 +93,10 @@ class indice extends clsCadastro
93 } 93 }
94 94
95 $retorno = "Editar"; 95 $retorno = "Editar";
  96 + $this->ref_cod_instituicao = $registro['ref_cod_instituicao'];
96 } 97 }
97 } 98 }
98 - $this->ref_cod_escola = $registro["ref_cod_escola"]; 99 +
99 $this->url_cancelar = ($retorno == "Editar") ? "educar_motivo_afastamento_det.php?cod_motivo_afastamento={$registro["cod_motivo_afastamento"]}" : "educar_motivo_afastamento_lst.php"; 100 $this->url_cancelar = ($retorno == "Editar") ? "educar_motivo_afastamento_det.php?cod_motivo_afastamento={$registro["cod_motivo_afastamento"]}" : "educar_motivo_afastamento_lst.php";
100 $this->nome_url_cancelar = "Cancelar"; 101 $this->nome_url_cancelar = "Cancelar";
101 return $retorno; 102 return $retorno;
@@ -141,30 +142,33 @@ class indice extends clsCadastro @@ -141,30 +142,33 @@ class indice extends clsCadastro
141 return false; 142 return false;
142 } 143 }
143 144
144 - function Editar()  
145 - {  
146 - @session_start();  
147 - $this->pessoa_logada = $_SESSION['id_pessoa'];  
148 - @session_write_close();  
149 145
150 - $obj_permissoes = new clsPermissoes();  
151 - $obj_permissoes->permissao_cadastra( 633, $this->pessoa_logada, 7, "educar_motivo_afastamento_lst.php" );  
152 146
  147 + public function Editar() {
  148 + session_start();
  149 + $this->pessoa_logada = $_SESSION['id_pessoa'];
  150 + session_write_close();
  151 +
  152 + $obj_permissoes = new clsPermissoes();
  153 + $obj_permissoes->permissao_cadastra(633, $this->pessoa_logada, 7,
  154 + 'educar_motivo_afastamento_lst.php');
  155 +
  156 + $obj = new clsPmieducarMotivoAfastamento($this->cod_motivo_afastamento,
  157 + $this->pessoa_logada, NULL, $this->nm_motivo, $this->descricao, NULL,
  158 + NULL, 1, $this->ref_cod_instituicao);
  159 +
  160 + $editou = $obj->edita();
  161 + if ($editou) {
  162 + $this->mensagem .= 'Edi&ccedil;&atilde;o efetuada com sucesso.<br>';
  163 + header('Location: educar_motivo_afastamento_lst.php');
  164 + die();
  165 + }
  166 +
  167 + $this->mensagem = 'Edi&ccedil;&atilde;o n&atilde;o realizada.<br>';
  168 + return FALSE;
  169 + }
153 170
154 - $obj = new clsPmieducarMotivoAfastamento( $this->cod_motivo_afastamento, $this->pessoa_logada, null, $this->nm_motivo, $this->descricao, null, null, 1, $this->ref_cod_escola );  
155 - $editou = $obj->edita();  
156 - if( $editou )  
157 - {  
158 - $this->mensagem .= "Edi&ccedil;&atilde;o efetuada com sucesso.<br>";  
159 - header( "Location: educar_motivo_afastamento_lst.php" );  
160 - die();  
161 - return true;  
162 - }  
163 171
164 - $this->mensagem = "Edi&ccedil;&atilde;o n&atilde;o realizada.<br>";  
165 - echo "<!--\nErro ao editar clsPmieducarMotivoAfastamento\nvalores obrigatorios\nif( is_numeric( $this->cod_motivo_afastamento ) && is_numeric( $this->pessoa_logada ) )\n-->";  
166 - return false;  
167 - }  
168 172
169 function Excluir() 173 function Excluir()
170 { 174 {
@@ -176,7 +180,9 @@ class indice extends clsCadastro @@ -176,7 +180,9 @@ class indice extends clsCadastro
176 $obj_permissoes->permissao_excluir( 633, $this->pessoa_logada, 7, "educar_motivo_afastamento_lst.php" ); 180 $obj_permissoes->permissao_excluir( 633, $this->pessoa_logada, 7, "educar_motivo_afastamento_lst.php" );
177 181
178 182
179 - $obj = new clsPmieducarMotivoAfastamento( $this->cod_motivo_afastamento, $this->pessoa_logada, null, $this->nm_motivo, $this->descricao, null, null, 0, $this->ref_cod_escola ); 183 + $obj = new clsPmieducarMotivoAfastamento($this->cod_motivo_afastamento,
  184 + $this->pessoa_logada, NULL, $this->nm_motivo, $this->descricao, NULL,
  185 + NULL, 0, $this->ref_cod_instituicao);
180 $excluiu = $obj->excluir(); 186 $excluiu = $obj->excluir();
181 if( $excluiu ) 187 if( $excluiu )
182 { 188 {
ieducar/intranet/include/pmieducar/clsPmieducarMotivoAfastamento.inc.php
1 <?php 1 <?php
2 -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  
3 -* *  
4 -* @author Prefeitura Municipal de Itajaí *  
5 -* @updated 29/03/2007 *  
6 -* Pacote: i-PLB Software Público Livre e Brasileiro *  
7 -* *  
8 -* Copyright (C) 2006 PMI - Prefeitura Municipal de Itajaí *  
9 -* ctima@itajai.sc.gov.br *  
10 -* *  
11 -* Este programa é software livre, você pode redistribuí-lo e/ou *  
12 -* modificá-lo sob os termos da Licença Pública Geral GNU, conforme *  
13 -* publicada pela Free Software Foundation, tanto a versão 2 da *  
14 -* Licença como (a seu critério) qualquer versão mais nova. *  
15 -* *  
16 -* Este programa é distribuído na expectativa de ser útil, mas SEM *  
17 -* QUALQUER GARANTIA. Sem mesmo a garantia implícita de COMERCIALI- *  
18 -* ZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM PARTICULAR. Con- *  
19 -* sulte a Licença Pública Geral GNU para obter mais detalhes. *  
20 -* *  
21 -* Você deve ter recebido uma cópia da Licença Pública Geral GNU *  
22 -* junto com este programa. Se não, escreva para a Free Software *  
23 -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA *  
24 -* 02111-1307, USA. *  
25 -* *  
26 -* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */  
27 /** 2 /**
28 -* @author Prefeitura Municipal de Itajaí  
29 -*  
30 -* Criado em 26/06/2006 16:19 pelo gerador automatico de classes  
31 -*/  
32 -  
33 -require_once( "include/pmieducar/geral.inc.php" );  
34 -  
35 -class clsPmieducarMotivoAfastamento  
36 -{  
37 - var $cod_motivo_afastamento;  
38 - var $ref_usuario_exc;  
39 - var $ref_usuario_cad;  
40 - var $nm_motivo;  
41 - var $descricao;  
42 - var $data_cadastro;  
43 - var $data_exclusao;  
44 - var $ativo;  
45 - var $ref_cod_instituicao;  
46 -  
47 - // propriedades padrao  
48 -  
49 - /**  
50 - * Armazena o total de resultados obtidos na ultima chamada ao metodo lista  
51 - *  
52 - * @var int  
53 - */  
54 - var $_total;  
55 -  
56 - /**  
57 - * Nome do schema  
58 - *  
59 - * @var string  
60 - */  
61 - var $_schema;  
62 -  
63 - /**  
64 - * Nome da tabela  
65 - *  
66 - * @var string  
67 - */  
68 - var $_tabela;  
69 -  
70 - /**  
71 - * Lista separada por virgula, com os campos que devem ser selecionados na proxima chamado ao metodo lista  
72 - *  
73 - * @var string  
74 - */  
75 - var $_campos_lista;  
76 -  
77 - /**  
78 - * Lista com todos os campos da tabela separados por virgula, padrao para selecao no metodo lista  
79 - *  
80 - * @var string  
81 - */  
82 - var $_todos_campos;  
83 -  
84 - /**  
85 - * Valor que define a quantidade de registros a ser retornada pelo metodo lista  
86 - *  
87 - * @var int  
88 - */  
89 - var $_limite_quantidade; 3 + *
  4 + * @author Prefeitura Municipal de Itajaí
  5 + * @version SVN: $Id$
  6 + *
  7 + * Pacote: i-PLB Software Público Livre e Brasileiro
  8 + *
  9 + * Copyright (C) 2006 PMI - Prefeitura Municipal de Itajaí
  10 + * ctima@itajai.sc.gov.br
  11 + *
  12 + * Este programa é software livre, você pode redistribuí-lo e/ou
  13 + * modificá-lo sob os termos da Licença Pública Geral GNU, conforme
  14 + * publicada pela Free Software Foundation, tanto a versão 2 da
  15 + * Licença como (a seu critério) qualquer versão mais nova.
  16 + *
  17 + * Este programa é distribuído na expectativa de ser útil, mas SEM
  18 + * QUALQUER GARANTIA. Sem mesmo a garantia implícita de COMERCIALI-
  19 + * ZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM PARTICULAR. Con-
  20 + * sulte a Licença Pública Geral GNU para obter mais detalhes.
  21 + *
  22 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU
  23 + * junto com este programa. Se não, escreva para a Free Software
  24 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  25 + * 02111-1307, USA.
  26 + *
  27 + */
  28 +
  29 +require_once 'include/pmieducar/geral.inc.php';
  30 +
  31 +class clsPmieducarMotivoAfastamento {
  32 +
  33 + public
  34 + $cod_motivo_afastamento = NULL,
  35 + $ref_usuario_exc = NULL,
  36 + $ref_usuario_cad = NULL,
  37 + $nm_motivo = NULL,
  38 + $descricao = NULL,
  39 + $data_cadastro = NULL,
  40 + $data_exclusao = NULL,
  41 + $ativo = NULL,
  42 + $ref_cod_instituicao = NULL;
  43 +
  44 + /**
  45 + * Armazena o total de resultados obtidos na ultima chamada ao metodo lista
  46 + *
  47 + * @var int
  48 + */
  49 + public $_total;
  50 +
  51 + /**
  52 + * Nome do schema
  53 + *
  54 + * @var string
  55 + */
  56 + public $_schema;
  57 +
  58 + /**
  59 + * Nome da tabela
  60 + *
  61 + * @var string
  62 + */
  63 + public $_tabela;
  64 +
  65 + /**
  66 + * Lista separada por virgula, com os campos que devem ser selecionados na proxima chamado ao metodo lista
  67 + *
  68 + * @var string
  69 + */
  70 + public $_campos_lista;
  71 +
  72 + /**
  73 + * Lista com todos os campos da tabela separados por virgula, padrao para selecao no metodo lista
  74 + *
  75 + * @var string
  76 + */
  77 + public $_todos_campos;
  78 +
  79 + /**
  80 + * Valor que define a quantidade de registros a ser retornada pelo metodo lista
  81 + *
  82 + * @var int
  83 + */
  84 + public $_limite_quantidade;
90 85
91 /** 86 /**
92 * Define o valor de offset no retorno dos registros no metodo lista 87 * Define o valor de offset no retorno dos registros no metodo lista
93 * 88 *
94 * @var int 89 * @var int
95 */ 90 */
96 - var $_limite_offset;  
97 -  
98 - /**  
99 - * Define o campo padrao para ser usado como padrao de ordenacao no metodo lista  
100 - *  
101 - * @var string  
102 - */  
103 - var $_campo_order_by; 91 + public $_limite_offset;
  92 +
  93 + /**
  94 + * Define o campo padrao para ser usado como padrao de ordenacao no metodo lista
  95 + *
  96 + * @var string
  97 + */
  98 + public $_campo_order_by;
  99 +
  100 +
  101 +
  102 + /**
  103 + * Construtor (PHP 4).
  104 + *
  105 + * @return clsPmieducarMotivoAfastamento
  106 + */
  107 + public function clsPmieducarMotivoAfastamento($cod_motivo_afastamento = NULL,
  108 + $ref_usuario_exc = NULL, $ref_usuario_cad = NULL, $nm_motivo = NULL,
  109 + $descricao = NULL, $data_cadastro = NULL, $data_exclusao = NULL,
  110 + $ativo = NULL, $ref_cod_instituicao = NULL) {
  111 +
  112 + $db = new clsBanco();
  113 + $this->_schema = 'pmieducar.';
  114 + $this->_tabela = "{$this->_schema}motivo_afastamento";
  115 +
  116 + $this->_campos_lista = $this->_todos_campos = 'cod_motivo_afastamento, ref_usuario_exc, ref_usuario_cad, nm_motivo, descricao, data_cadastro, data_exclusao, ativo, ref_cod_instituicao';
  117 +
  118 + if (is_numeric($ref_usuario_cad)) {
  119 +
  120 + if (class_exists('clsPmieducarUsuario')) {
  121 + $tmp_obj = new clsPmieducarUsuario( $ref_usuario_cad );
  122 + if (method_exists($tmp_obj, 'existe')) {
  123 + if ($tmp_obj->existe()) {
  124 + $this->ref_usuario_cad = $ref_usuario_cad;
  125 + }
  126 + }
  127 + elseif (method_exists($tmp_obj, 'detalhe')) {
  128 + if ($tmp_obj->detalhe()) {
  129 + $this->ref_usuario_cad = $ref_usuario_cad;
  130 + }
  131 + }
  132 + }
  133 + else {
  134 + if ($db->CampoUnico("SELECT 1 FROM pmieducar.usuario WHERE cod_usuario = '{$ref_usuario_cad}'")) {
  135 + $this->ref_usuario_cad = $ref_usuario_cad;
  136 + }
  137 + }
  138 +
  139 + }
  140 +
  141 + if (is_numeric($ref_usuario_exc)) {
  142 + if (class_exists('clsPmieducarUsuario')) {
  143 + $tmp_obj = new clsPmieducarUsuario($ref_usuario_exc);
  144 + if (method_exists($tmp_obj, 'existe')) {
  145 + if ($tmp_obj->existe()) {
  146 + $this->ref_usuario_exc = $ref_usuario_exc;
  147 + }
  148 + }
  149 + elseif (method_exists($tmp_obj, 'detalhe')) {
  150 + if ($tmp_obj->detalhe()) {
  151 + $this->ref_usuario_exc = $ref_usuario_exc;
  152 + }
  153 + }
  154 + }
  155 + else {
  156 + if ($db->CampoUnico("SELECT 1 FROM pmieducar.usuario WHERE cod_usuario = '{$ref_usuario_exc}'")) {
  157 + $this->ref_usuario_exc = $ref_usuario_exc;
  158 + }
  159 + }
  160 + }
  161 +
  162 + if (is_numeric($cod_motivo_afastamento)) {
  163 + $this->cod_motivo_afastamento = $cod_motivo_afastamento;
  164 + }
  165 +
  166 + if (is_string($nm_motivo)) {
  167 + $this->nm_motivo = $nm_motivo;
  168 + }
  169 +
  170 + if (is_string( $descricao)) {
  171 + $this->descricao = $descricao;
  172 + }
  173 +
  174 + if (is_string($data_cadastro)) {
  175 + $this->data_cadastro = $data_cadastro;
  176 + }
  177 +
  178 + if (is_string($data_exclusao)) {
  179 + $this->data_exclusao = $data_exclusao;
  180 + }
  181 +
  182 + if (is_numeric($ativo)) {
  183 + $this->ativo = $ativo;
  184 + }
  185 +
  186 + if (is_numeric($ref_cod_instituicao)) {
  187 + if (class_exists('clsPmieducarInstituicao')) {
  188 + $tmp_obj = new clsPmieducarInstituicao( $ref_cod_instituicao );
  189 + if (method_exists($tmp_obj, 'existe')) {
  190 + if ($tmp_obj->existe()) {
  191 + $this->ref_cod_instituicao = $ref_cod_instituicao;
  192 + }
  193 + }
  194 + elseif (method_exists($tmp_obj, 'detalhe')) {
  195 + if ($tmp_obj->detalhe()) {
  196 + $this->ref_cod_instituicao = $ref_cod_instituicao;
  197 + }
  198 + }
  199 + }
  200 + else {
  201 + if ($db->CampoUnico("SELECT 1 FROM pmieducar.instituicao WHERE cod_instituicao = '{$ref_cod_instituicao}'")) {
  202 + $this->ref_cod_instituicao = $ref_cod_instituicao;
  203 + }
  204 + }
  205 + }
  206 +
  207 + }
104 208
105 209
106 - /**  
107 - * Construtor (PHP 4)  
108 - *  
109 - * @return object  
110 - */  
111 - function clsPmieducarMotivoAfastamento( $cod_motivo_afastamento = null, $ref_usuario_exc = null, $ref_usuario_cad = null, $nm_motivo = null, $descricao = null, $data_cadastro = null, $data_exclusao = null, $ativo = null, $ref_cod_instituicao = null )  
112 - {  
113 - $db = new clsBanco();  
114 - $this->_schema = "pmieducar.";  
115 - $this->_tabela = "{$this->_schema}motivo_afastamento";  
116 -  
117 - $this->_campos_lista = $this->_todos_campos = "cod_motivo_afastamento, ref_usuario_exc, ref_usuario_cad, nm_motivo, descricao, data_cadastro, data_exclusao, ativo, ref_cod_instituicao";  
118 -  
119 - if( is_numeric( $ref_usuario_cad ) )  
120 - {  
121 - if( class_exists( "clsPmieducarUsuario" ) )  
122 - {  
123 - $tmp_obj = new clsPmieducarUsuario( $ref_usuario_cad );  
124 - if( method_exists( $tmp_obj, "existe") )  
125 - {  
126 - if( $tmp_obj->existe() )  
127 - {  
128 - $this->ref_usuario_cad = $ref_usuario_cad;  
129 - }  
130 - }  
131 - else if( method_exists( $tmp_obj, "detalhe") )  
132 - {  
133 - if( $tmp_obj->detalhe() )  
134 - {  
135 - $this->ref_usuario_cad = $ref_usuario_cad;  
136 - }  
137 - }  
138 - }  
139 - else  
140 - {  
141 - if( $db->CampoUnico( "SELECT 1 FROM pmieducar.usuario WHERE cod_usuario = '{$ref_usuario_cad}'" ) )  
142 - {  
143 - $this->ref_usuario_cad = $ref_usuario_cad;  
144 - }  
145 - }  
146 - }  
147 - if( is_numeric( $ref_usuario_exc ) )  
148 - {  
149 - if( class_exists( "clsPmieducarUsuario" ) )  
150 - {  
151 - $tmp_obj = new clsPmieducarUsuario( $ref_usuario_exc );  
152 - if( method_exists( $tmp_obj, "existe") )  
153 - {  
154 - if( $tmp_obj->existe() )  
155 - {  
156 - $this->ref_usuario_exc = $ref_usuario_exc;  
157 - }  
158 - }  
159 - else if( method_exists( $tmp_obj, "detalhe") )  
160 - {  
161 - if( $tmp_obj->detalhe() )  
162 - {  
163 - $this->ref_usuario_exc = $ref_usuario_exc;  
164 - }  
165 - }  
166 - }  
167 - else  
168 - {  
169 - if( $db->CampoUnico( "SELECT 1 FROM pmieducar.usuario WHERE cod_usuario = '{$ref_usuario_exc}'" ) )  
170 - {  
171 - $this->ref_usuario_exc = $ref_usuario_exc;  
172 - }  
173 - }  
174 - }  
175 -  
176 -  
177 - if( is_numeric( $cod_motivo_afastamento ) )  
178 - {  
179 - $this->cod_motivo_afastamento = $cod_motivo_afastamento;  
180 - }  
181 - if( is_string( $nm_motivo ) )  
182 - {  
183 - $this->nm_motivo = $nm_motivo;  
184 - }  
185 - if( is_string( $descricao ) )  
186 - {  
187 - $this->descricao = $descricao;  
188 - }  
189 - if( is_string( $data_cadastro ) )  
190 - {  
191 - $this->data_cadastro = $data_cadastro;  
192 - }  
193 - if( is_string( $data_exclusao ) )  
194 - {  
195 - $this->data_exclusao = $data_exclusao;  
196 - }  
197 - if( is_numeric( $ativo ) )  
198 - {  
199 - $this->ativo = $ativo;  
200 - }  
201 - if( is_numeric( $ref_cod_instituicao ) )  
202 - {  
203 - if( class_exists( "clsPmieducarInstituicao" ) )  
204 - {  
205 - $tmp_obj = new clsPmieducarInstituicao( $ref_cod_instituicao );  
206 - if( method_exists( $tmp_obj, "existe") )  
207 - {  
208 - if( $tmp_obj->existe() )  
209 - {  
210 - $this->ref_cod_instituicao = $ref_cod_instituicao;  
211 - }  
212 - }  
213 - else if( method_exists( $tmp_obj, "detalhe") )  
214 - {  
215 - if( $tmp_obj->detalhe() )  
216 - {  
217 - $this->ref_cod_instituicao = $ref_cod_instituicao;  
218 - }  
219 - }  
220 - }  
221 - else  
222 - {  
223 - if( $db->CampoUnico( "SELECT 1 FROM pmieducar.instituicao WHERE cod_instituicao = '{$ref_cod_instituicao}'" ) )  
224 - {  
225 - $this->ref_cod_instituicao = $ref_cod_instituicao;  
226 - }  
227 - }  
228 - }  
229 - }  
230 210
231 /** 211 /**
232 * Cria um novo registro 212 * Cria um novo registro
@@ -280,66 +260,73 @@ class clsPmieducarMotivoAfastamento @@ -280,66 +260,73 @@ class clsPmieducarMotivoAfastamento
280 return false; 260 return false;
281 } 261 }
282 262
283 - /**  
284 - * Edita os dados de um registro  
285 - *  
286 - * @return bool  
287 - */  
288 - function edita()  
289 - {  
290 - if( is_numeric( $this->cod_motivo_afastamento ) && is_numeric( $this->ref_usuario_exc ) && is_numeric( $this->ref_cod_instituicao ) )  
291 - {  
292 263
293 - $db = new clsBanco();  
294 - $set = "";  
295 264
296 - if( is_numeric( $this->ref_usuario_exc ) )  
297 - {  
298 - $set .= "{$gruda}ref_usuario_exc = '{$this->ref_usuario_exc}'";  
299 - $gruda = ", ";  
300 - }  
301 - if( is_numeric( $this->ref_usuario_cad ) )  
302 - {  
303 - $set .= "{$gruda}ref_usuario_cad = '{$this->ref_usuario_cad}'";  
304 - $gruda = ", ";  
305 - }  
306 - if( is_string( $this->nm_motivo ) )  
307 - {  
308 - $set .= "{$gruda}nm_motivo = '{$this->nm_motivo}'";  
309 - $gruda = ", ";  
310 - }  
311 - if( is_string( $this->descricao ) )  
312 - {  
313 - $set .= "{$gruda}descricao = '{$this->descricao}'";  
314 - $gruda = ", ";  
315 - }  
316 - if( is_string( $this->data_cadastro ) )  
317 - {  
318 - $set .= "{$gruda}data_cadastro = '{$this->data_cadastro}'";  
319 - $gruda = ", ";  
320 - }  
321 - $set .= "{$gruda}data_exclusao = NOW()";  
322 - $gruda = ", ";  
323 - if( is_numeric( $this->ativo ) )  
324 - {  
325 - $set .= "{$gruda}ativo = '{$this->ativo}'";  
326 - $gruda = ", ";  
327 - }  
328 - if( is_numeric( $this->ref_cod_instituicao ) )  
329 - {  
330 - $set .= "{$gruda}ref_cod_instituicao = '{$this->ref_cod_instituicao}'";  
331 - $gruda = ", ";  
332 - } 265 + /**
  266 + * Atualiza um registro.
  267 + *
  268 + * @param bool TRUE para que seja gravado a data atual no campo
  269 + * data_exclusao
  270 + * @return bool
  271 + */
  272 + public function edita($setDataExclusao = FALSE) {
333 273
  274 + if (is_numeric($this->cod_motivo_afastamento) && is_numeric($this->ref_usuario_exc)
  275 + && is_numeric($this->ref_cod_instituicao)) {
334 276
335 - if( $set )  
336 - {  
337 - $db->Consulta( "UPDATE {$this->_tabela} SET $set WHERE cod_motivo_afastamento = '{$this->cod_motivo_afastamento}'" );  
338 - return true;  
339 - }  
340 - }  
341 - return false;  
342 - } 277 + $db = new clsBanco();
  278 + $set = '';
  279 +
  280 + if (is_numeric($this->ref_usuario_exc)) {
  281 + $set .= "{$gruda}ref_usuario_exc = '{$this->ref_usuario_exc}'";
  282 + $gruda = ", ";
  283 + }
  284 +
  285 + if (is_numeric($this->ref_usuario_cad)) {
  286 + $set .= "{$gruda}ref_usuario_cad = '{$this->ref_usuario_cad}'";
  287 + $gruda = ", ";
  288 + }
  289 +
  290 + if (is_string($this->nm_motivo)) {
  291 + $set .= "{$gruda}nm_motivo = '{$this->nm_motivo}'";
  292 + $gruda = ", ";
  293 + }
  294 +
  295 + if (is_string($this->descricao)) {
  296 + $set .= "{$gruda}descricao = '{$this->descricao}'";
  297 + $gruda = ", ";
  298 + }
  299 +
  300 + if (is_string($this->data_cadastro)) {
  301 + $set .= "{$gruda}data_cadastro = '{$this->data_cadastro}'";
  302 + $gruda = ", ";
  303 + }
  304 +
  305 + if (is_numeric($this->ativo)) {
  306 + $set .= "{$gruda}ativo = '{$this->ativo}'";
  307 + $gruda = ", ";
  308 + }
  309 +
  310 + if (is_numeric($this->ref_cod_instituicao)) {
  311 + $set .= "{$gruda}ref_cod_instituicao = '{$this->ref_cod_instituicao}'";
  312 + $gruda = ", ";
  313 + }
  314 +
  315 + // Configura a data de exclusão para a data da execução do comando SQL
  316 + if ($setDataExclusao == TRUE) {
  317 + $set .= $gruda . ' data_exclusao = NOW()';
  318 + }
  319 +
  320 + if ($set) {
  321 + $db->Consulta( "UPDATE {$this->_tabela} SET $set WHERE
  322 + cod_motivo_afastamento = '{$this->cod_motivo_afastamento}'");
  323 +
  324 + return TRUE;
  325 + }
  326 + }
  327 +
  328 + return FALSE;
  329 + }
343 330
344 /** 331 /**
345 * Retorna uma lista filtrados de acordo com os parametros 332 * Retorna uma lista filtrados de acordo com os parametros
@@ -486,28 +473,29 @@ class clsPmieducarMotivoAfastamento @@ -486,28 +473,29 @@ class clsPmieducarMotivoAfastamento
486 return false; 473 return false;
487 } 474 }
488 475
489 - /**  
490 - * Exclui um registro  
491 - *  
492 - * @return bool  
493 - */  
494 - function excluir()  
495 - {  
496 - if( is_numeric( $this->cod_motivo_afastamento ) && is_numeric( $this->ref_usuario_exc ) )  
497 - {  
498 476
499 - /*  
500 - delete  
501 - $db = new clsBanco();  
502 - $db->Consulta( "DELETE FROM {$this->_tabela} WHERE cod_motivo_afastamento = '{$this->cod_motivo_afastamento}'" );  
503 - return true;  
504 - */  
505 477
506 - $this->ativo = 0;  
507 - return $this->edita();  
508 - }  
509 - return false;  
510 - } 478 +
  479 + /**
  480 + * Marca um registro como inativo.
  481 + *
  482 + * O registro é marcado como inativo para que outros registros que usam
  483 + * esta tabela em um relacionamento possam recuperar a informação
  484 + * complementar, nesse caso, um motivo de afastamento.
  485 + *
  486 + * @return bool
  487 + */
  488 + public function excluir() {
  489 + if (is_numeric($this->cod_motivo_afastamento) && is_numeric($this->ref_usuario_exc)) {
  490 + $this->ativo = 0;
  491 +
  492 + return $this->edita(TRUE);
  493 + }
  494 +
  495 + return FALSE;
  496 + }
  497 +
  498 +
511 499
512 /** 500 /**
513 * Define quais campos da tabela serao selecionados na invocacao do metodo lista 501 * Define quais campos da tabela serao selecionados na invocacao do metodo lista
@@ -589,5 +577,4 @@ class clsPmieducarMotivoAfastamento @@ -589,5 +577,4 @@ class clsPmieducarMotivoAfastamento
589 return ""; 577 return "";
590 } 578 }
591 579
592 -}  
593 -?>  
594 \ No newline at end of file 580 \ No newline at end of file
  581 +}
595 \ No newline at end of file 582 \ No newline at end of file
ieducar/tests/functional/ServidorMotivoAfastamentoWebTest.class.php 0 → 100644
@@ -0,0 +1,66 @@ @@ -0,0 +1,66 @@
  1 +<?php
  2 +
  3 +/**
  4 + * ServidorMotivoAfastamentoWebTest class.
  5 + *
  6 + * Testa as ações de atualizar e apagar um motivo de afastamento, como
  7 + * verificação da correção do bug #20.
  8 + *
  9 + * Esse teste precisa ser executado com o banco de dados distribuído na
  10 + * versão 1.0.0.
  11 + *
  12 + * @author Eriksen Costa <eriksen.paixao_bs@cobra.com.br>
  13 + * @since 1.0.1
  14 + * @version SVN: $Id$
  15 + */
  16 +
  17 +require_once realpath(dirname(__FILE__) . '/../') . '/FunctionalBaseTest.class.php';
  18 +
  19 +class ServidorMotivoAfastamentoWebTest extends FunctionalBaseTest {
  20 +
  21 + /**
  22 + * Os testes a seguir cobrem o bug report #20.
  23 + *
  24 + * @link http://svn.softwarepublico.gov.br/trac/ieducar/ticket/20 Bug report #20
  25 + * @{
  26 + */
  27 + public function createNewEntry() {
  28 + $this->open("/intranet/educar_motivo_afastamento_lst.php");
  29 + $this->clickAndWait("//input[@value=' Novo ']");
  30 + $this->select("ref_cod_instituicao", "label=COBRA Tecnologia");
  31 + $this->type("nm_motivo", "Motivo teste");
  32 + $this->clickAndWait("btn_enviar");
  33 + }
  34 +
  35 + public function testMotivoAfastamentoUpdate() {
  36 + $this->doLogin();
  37 + $this->createNewEntry();
  38 +
  39 + $this->open("/intranet/educar_motivo_afastamento_cad.php?cod_motivo_afastamento=1");
  40 + $this->select("ref_cod_instituicao", "label=COBRA Tecnologia");
  41 + $this->type("nm_motivo", "Motivo teste");
  42 + $this->clickAndWait("btn_enviar");
  43 +
  44 + $statusMessage = $this->isTextPresent("Edição não realizada.");
  45 + $this->assertTrue(!$statusMessage);
  46 + $this->doLogout();
  47 + }
  48 +
  49 + public function testMotivoAfastamentoDelete() {
  50 + $this->doLogin();
  51 +
  52 + $this->open("/intranet/educar_motivo_afastamento_lst.php");
  53 + $this->clickAndWait("link=Motivo teste");
  54 + $this->clickAndWait("//input[@value=' Editar ']");
  55 + $this->clickAndWait("//input[@value=' Excluir ']");
  56 + $this->assertTrue((bool)preg_match('/^Excluir registro[\s\S]$/',$this->getConfirmation()));
  57 + $statusMessage = $this->isTextPresent("Exclusão não realizada.");
  58 + $this->assertTrue(!$statusMessage);
  59 +
  60 + $this->doLogout();
  61 + }
  62 + /**
  63 + * }@
  64 + */
  65 +
  66 +}
0 \ No newline at end of file 67 \ No newline at end of file