Commit a3f8b4ab193439c0425d422e195615e1f0ccba6c

Authored by Eriksen Costa Paixão
1 parent 311492f6
Exists in master

#23 by Eriksen: Corrigido bug que não permitia afastar servidor

ieducar/intranet/educar_servidor_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 $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" );  
34 -  
35 -class clsIndexBase extends clsBase  
36 -{  
37 - function Formular()  
38 - {  
39 - $this->SetTitulo( "{$this->_instituicao} i-Educar - Servidor Afastamento" );  
40 - $this->processoAp = "635";  
41 - } 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';
  33 +
  34 +
  35 +class clsIndexBase extends clsBase {
  36 +
  37 + public function Formular() {
  38 + $this->SetTitulo($this->_instituicao . ' i-Educar - Servidor Afastamento');
  39 + $this->processoAp = '635';
  40 + }
  41 +
42 } 42 }
43 43
44 -class indice extends clsCadastro  
45 -{  
46 - /**  
47 - * Referencia pega da session para o idpes do usuario atual  
48 - *  
49 - * @var int  
50 - */  
51 - var $pessoa_logada;  
52 -  
53 - var $ref_cod_servidor;  
54 - var $sequencial;  
55 - var $ref_cod_instituicao;  
56 - var $ref_cod_motivo_afastamento;  
57 - var $ref_usuario_exc;  
58 - var $ref_usuario_cad;  
59 - var $data_cadastro;  
60 - var $data_exclusao;  
61 - var $data_retorno;  
62 - var $data_saida;  
63 - var $ativo;  
64 - var $status;  
65 - var $alocacao_array;  
66 - var $dias_da_semana = array( '' => 'Selecione', 1 => 'Domingo', 2 => 'Segunda', 3 => 'Ter&ccedil;a', 4 => 'Quarta', 5 => 'Quinta', 6 => 'Sexta', 7 => 'S&aacute;bado' );  
67 - var $parametros;  
68 -  
69 - function Inicializar()  
70 - {  
71 - $retorno = "Novo";  
72 - $this->status = "N";  
73 - @session_start();  
74 - $this->pessoa_logada = $_SESSION['id_pessoa'];  
75 - @session_write_close();  
76 44
77 - $this->ref_cod_instituicao = $_GET["ref_cod_instituicao"];  
78 - $this->ref_cod_servidor = $_GET["ref_cod_servidor"];  
79 - $this->sequencial = $_GET["sequencial"]; 45 +class indice extends clsCadastro {
80 46
81 - $obj_permissoes = new clsPermissoes();  
82 - $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}" ); 47 + /**
  48 + * Referência a usuário da sessão
  49 + *
  50 + * @var int
  51 + */
  52 + public $pessoa_logada = NULL;
83 53
84 - if( is_numeric( $this->ref_cod_servidor ) && is_numeric( $this->sequencial ) && is_numeric( $this->ref_cod_instituicao ) )  
85 - {  
86 - $obj = new clsPmieducarServidorAfastamento( $this->ref_cod_servidor, $this->sequencial, null, null, null, null, null, null, null, 1, $this->ref_cod_instituicao );  
87 - $registro = $obj->detalhe();  
88 - if( $registro )  
89 - {  
90 - foreach( $registro AS $campo => $val ) // passa todos os valores obtidos no registro para atributos do objeto  
91 - $this->$campo = $val;  
92 - if ( $this->data_retorno )  
93 - $this->data_retorno = dataFromPgToBr( $this->data_retorno );  
94 - if ( $this->data_saida )  
95 - $this->data_saida = dataFromPgToBr( $this->data_saida );  
96 -  
97 - $obj_permissoes = new clsPermissoes();  
98 - if( $obj_permissoes->permissao_excluir( 635, $this->pessoa_logada, 7 ) )  
99 - {  
100 - //$this->fexcluir = true;  
101 - } 54 + public
  55 + $ref_cod_servidor = NULL,
  56 + $sequencial = NULL,
  57 + $ref_cod_instituicao = NULL,
  58 + $ref_cod_motivo_afastamento = NULL,
  59 + $ref_usuario_exc = NULL,
  60 + $ref_usuario_cad = NULL,
  61 + $data_cadastro = NULL,
  62 + $data_exclusao = NULL,
  63 + $data_retorno = NULL,
  64 + $data_saida = NULL,
  65 + $ativo = NULL,
  66 + $status = NULL,
  67 + $alocacao_array = NULL,
  68 + $parametros = NULL;
  69 +
  70 + /**
  71 + * Array dos dias da semana
  72 + *
  73 + * @var Array
  74 + */
  75 + public $dias_da_semana = array(
  76 + '' => 'Selecione',
  77 + 1 => 'Domingo',
  78 + 2 => 'Segunda',
  79 + 3 => 'Ter&ccedil;a',
  80 + 4 => 'Quarta',
  81 + 5 => 'Quinta',
  82 + 6 => 'Sexta',
  83 + 7 => 'S&aacute;bado'
  84 + );
  85 +
  86 +
  87 +
  88 + public function Inicializar() {
  89 + session_start();
  90 + $this->pessoa_logada = $_SESSION['id_pessoa'];
  91 + session_write_close();
  92 +
  93 + $retorno = "Novo";
  94 + $this->status = "N";
  95 +
  96 + $this->ref_cod_instituicao = $_GET['ref_cod_instituicao'];
  97 + $this->ref_cod_servidor = $_GET['ref_cod_servidor'];
  98 + $this->sequencial = $_GET['sequencial'];
  99 +
  100 + $urlPermite = sprintf('educar_servidor_det.php?cod_servidor=%s&ref_cod_instituicao=%s',
  101 + $this->ref_cod_servidor, $this->ref_cod_instituicao);
  102 +
  103 + $obj_permissoes = new clsPermissoes();
  104 + $obj_permissoes->permissao_cadastra(635, $this->pessoa_logada, 7, $urlPemite);
  105 +
  106 + if (is_numeric($this->ref_cod_servidor) && is_numeric($this->sequencial) &&
  107 + is_numeric($this->ref_cod_instituicao)) {
  108 +
  109 + $obj = new clsPmieducarServidorAfastamento(
  110 + $this->ref_cod_servidor, $this->sequencial, NULL, NULL, NULL, NULL,
  111 + NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
  112 +
  113 + $registro = $obj->detalhe();
  114 +
  115 + if ($registro) {
  116 +
  117 + // passa todos os valores obtidos no registro para atributos do objeto
  118 + foreach ($registro as $campo => $val) {
  119 + $this->$campo = $val;
  120 + }
  121 +
  122 + if ($this->data_retorno) {
  123 + $this->data_retorno = dataFromPgToBr($this->data_retorno);
  124 + }
  125 +
  126 + if ($this->data_saida) {
  127 + $this->data_saida = dataFromPgToBr($this->data_saida);
  128 + }
  129 +
  130 + $retorno = "Editar";
  131 + $this->status = "E";
  132 + }
  133 + }
  134 +
  135 + $this->url_cancelar = sprintf(
  136 + 'educar_servidor_det.php?cod_servidor=%s&ref_cod_instituicao=%s',
  137 + $this->ref_cod_servidor, $this->ref_cod_instituicao);
  138 +
  139 + $this->nome_url_cancelar = "Cancelar";
  140 +
  141 + return $retorno;
  142 + }
  143 +
  144 +
  145 +
  146 + public function Gerar() {
  147 + $this->campoOculto('ref_cod_servidor', $this->ref_cod_servidor);
  148 + $this->campoOculto('sequencial', $this->sequencial);
  149 + $this->campoOculto('ref_cod_instituicao', $this->ref_cod_instituicao);
  150 +
  151 + $opcoes = array('' => 'Selecione');
  152 +
  153 + $objTemp = new clsPmieducarMotivoAfastamento();
  154 + $lista = $objTemp->lista();
  155 +
  156 + if (is_array($lista) && count($lista)) {
  157 + foreach ($lista as $registro) {
  158 + $opcoes[$registro['cod_motivo_afastamento']] = $registro['nm_motivo'];
  159 + }
  160 + }
  161 + else {
  162 + $opcoes = array('' => 'Erro na geracao');
  163 + }
102 164
103 - $retorno = "Editar";  
104 - $this->status = "E";  
105 - }  
106 - }  
107 - $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}";  
108 - $this->nome_url_cancelar = "Cancelar";  
109 - return $retorno;  
110 - } 165 + if ($this->status == 'N') {
  166 + $this->campoLista('ref_cod_motivo_afastamento', 'Motivo Afastamento',
  167 + $opcoes, $this->ref_cod_motivo_afastamento);
  168 + }
  169 + elseif ($this->status == 'E') {
  170 + $this->campoLista('ref_cod_motivo_afastamento', 'Motivo Afastamento',
  171 + $opcoes, $this->ref_cod_motivo_afastamento, '', FALSE, '', '', TRUE);
  172 + }
111 173
112 - function Gerar()  
113 - {  
114 - // primary keys  
115 - $this->campoOculto( "ref_cod_servidor", $this->ref_cod_servidor );  
116 - $this->campoOculto( "sequencial", $this->sequencial );  
117 - $this->campoOculto( "ref_cod_instituicao", $this->ref_cod_instituicao );  
118 -  
119 - // foreign keys  
120 - $opcoes = array( "" => "Selecione" );  
121 - if( class_exists( "clsPmieducarMotivoAfastamento" ) )  
122 - {  
123 - $objTemp = new clsPmieducarMotivoAfastamento();  
124 - $lista = $objTemp->lista();  
125 - if ( is_array( $lista ) && count( $lista ) )  
126 - {  
127 - foreach ( $lista as $registro )  
128 - {  
129 - $opcoes["{$registro['cod_motivo_afastamento']}"] = "{$registro['nm_motivo']}";  
130 - }  
131 - }  
132 - }  
133 - else  
134 - {  
135 - echo "<!--\nErro\nClasse clsPmieducarMotivoAfastamento nao encontrada\n-->";  
136 - $opcoes = array( "" => "Erro na geracao" );  
137 - }  
138 - if ( $this->status == "N" )  
139 - $this->campoLista( "ref_cod_motivo_afastamento", "Motivo Afastamento", $opcoes, $this->ref_cod_motivo_afastamento );  
140 - elseif ( $this->status == "E" )  
141 - $this->campoLista( "ref_cod_motivo_afastamento", "Motivo Afastamento", $opcoes, $this->ref_cod_motivo_afastamento, "", false, "", "", true );  
142 -  
143 - // text  
144 -  
145 - // data  
146 - if ( $this->status == "N" )  
147 - $this->campoData( "data_saida", "Data de Afastamento", $this->data_saida, true );  
148 - elseif ( $this->status == "E" )  
149 - $this->campoRotulo( "data_saida", "Data de Afastamento", $this->data_saida );  
150 -  
151 - if ( $this->status == "E" )  
152 - $this->campoData( "data_retorno", "Data de Retorno", $this->data_retorno, false );  
153 - if ( "clsPmieducarServidor" ) {  
154 - $obj_servidor = new clsPmieducarServidor( $this->ref_cod_servidor, null, null, null, null, null, 1, $this->ref_cod_instituicao );  
155 - $det_servidor = $obj_servidor->detalhe();  
156 - if ( $det_servidor ) {  
157 - if ( "clsPmieducarFuncao" ) {  
158 - $obj_funcao = new clsPmieducarFuncao( $det_servidor["ref_cod_funcao"], null, null, null, null, null, null, null, 1, $this->ref_cod_instituicao );  
159 - $det_funcao = $obj_funcao->detalhe();  
160 - if ( $det_funcao["professor"] == 1 )  
161 - {  
162 - //$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 );  
163 - //$obj = new clsPmieducarServidorAlocacao();  
164 - $obj = new clsPmieducarQuadroHorarioHorarios();  
165 - $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 );  
166 - //$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 );  
167 - if( $lista )  
168 - {  
169 - foreach( $lista AS $campo => $val ){ // passa todos os valores obtidos no registro para atributos do objeto  
170 - $temp = array();  
171 - $temp['hora_inicial'] = $val['hora_inicial'];  
172 - $temp['hora_final'] = $val['hora_final'];  
173 - $temp['dia_semana'] = $val['dia_semana'];  
174 - $temp['ref_cod_escola'] = $val['ref_cod_escola'];  
175 - $temp['ref_cod_substituto'] = $val['ref_servidor_substituto'] ;  
176 - $this->alocacao_array[] = $temp;  
177 - }  
178 - if ( $this->alocacao_array ){  
179 - $tamanho = sizeof( $alocacao );  
180 - $script = "<script>\nvar num_alocacao = {$tamanho};\n";  
181 - $script .= "var array_servidores = Array();\n";  
182 -  
183 - foreach ( $this->alocacao_array as $key => $alocacao ) {  
184 - $script .= "array_servidores[{$key}] = new Array();\n";  
185 -  
186 - $hora_ini = explode(":",$alocacao['hora_inicial']);  
187 - $hora_fim = explode(":",$alocacao['hora_final']);  
188 -  
189 - $horas_utilizadas = ( $hora_fim[0] - $hora_ini[0] );  
190 - $minutos_utilizados = ( $hora_fim[1] - $hora_ini[1] );  
191 - $horas = sprintf("%02d",(int)$horas_utilizadas);  
192 - $minutos = sprintf("%02d",(int)$minutos_utilizados);  
193 - $str_horas_utilizadas = "{$horas}:{$minutos}";  
194 - $script .= "array_servidores[{$key}][0] = '{$str_horas_utilizadas}'; \n";  
195 - $script .= "array_servidores[{$key}][1] = ''; \n\n";  
196 -  
197 -  
198 - $obj_escola = new clsPmieducarEscola($alocacao['ref_cod_escola']);  
199 - $det_escola = $obj_escola->detalhe();  
200 - $det_escola = $det_escola["nome"];  
201 - $nm_dia_semana = $this->dias_da_semana[$alocacao["dia_semana"]];  
202 -  
203 - $obj_subst = new clsPessoa_( $alocacao["ref_cod_substituto"] );  
204 - $det_subst = $obj_subst->detalhe();  
205 -  
206 - if($this->status == "N"){  
207 - $this->campoTextoInv( "dia_semana_{$key}_", "", $nm_dia_semana, 8, 8, false, false, true,"","","","","dia_semana" );  
208 - $this->campoTextoInv( "hora_inicial_{$key}_", "", $alocacao['hora_inicial'], 5, 5, false, false, true, "","","","","ds_hora_inicial_" );  
209 - $this->campoTextoInv( "hora_final_{$key}_", "", $alocacao['hora_final'], 5, 5, false, false, true, "", "","","","ds_hora_final_" );  
210 - $this->campoTextoInv( "ref_cod_escola_{$key}", "", $det_escola, 30, 255, false, false, true, "", "","","","ref_cod_escola_" );  
211 - $this->campoTextoInv( "ref_cod_servidor_substituto_{$key}_", "", $det_subst["nome"], 30, 255, false, false, false, "", "<span name=\"ref_cod_servidor_substituto\" id=\"ref_cod_servidor_substituicao_{$key}\"><img border='0' onclick=\"pesquisa_valores_popless('educar_pesquisa_servidor_lst.php?campo1=ref_cod_servidor_substituto[{$key}]&campo2=ref_cod_servidor_substituto_{$key}_&ref_cod_instituicao={$this->ref_cod_instituicao}&dia_semana={$alocacao["dia_semana"]}&hora_inicial={$alocacao["hora_inicial"]}&hora_final={$alocacao["hora_final"]}&ref_cod_servidor={$this->ref_cod_servidor}&professor=1&ref_cod_escola={$alocacao['ref_cod_escola']}&horario=S', 'nome')\" src=\"imagens/lupa.png\" ></span>","","","ref_cod_servidor_substituto" );  
212 - }  
213 - $this->campoOculto( "dia_semana_{$key}", $alocacao["dia_semana"] );  
214 - $this->campoOculto( "hora_inicial_{$key}", $alocacao['hora_inicial'] );  
215 - $this->campoOculto( "hora_final_{$key}", $alocacao['hora_final'] );  
216 - $this->campoOculto( "ref_cod_escola_{$key}", $alocacao['ref_cod_escola'] );  
217 - $this->campoOculto( "ref_cod_servidor_substituto[{$key}]", $alocacao["ref_cod_substituto"] );  
218 -  
219 - }  
220 -  
221 - /*nao esta sendo utilizado em lugar algum =o  
222 - if($this->status == "N"){  
223 - $db = new clsBanco();  
224 - $consulta = "SELECT ref_cod_servidor  
225 - ,ref_ref_cod_instituicao  
226 - ,sum( carga_horaria ) as horas  
227 - FROM pmieducar.servidor_alocacao  
228 - WHERE ativo = 1  
229 - GROUP BY ref_cod_servidor,ref_ref_cod_instituicao";  
230 - $registros = $db->Consulta($consulta);  
231 - if($registros)  
232 - {  
233 - $ct = 0;  
234 - $script .="array_horas_utilizadas_servidor = new Array();\n";  
235 -  
236 - while($db->ProximoRegistro()){  
237 - $registro = $db->Tupla();  
238 -  
239 - $script .= "array_horas_utilizadas_servidor['{$registro['ref_cod_servidor']}_'] = new Array('{$registro['horas']}'); \n";  
240 - $ct++;  
241 - }  
242 - }  
243 -  
244 -  
245 - $consulta = "SELECT DISTINCT cod_servidor  
246 - ,ref_cod_instituicao  
247 - ,coalesce(s.carga_horaria , '0') as carga_horaria  
248 - FROM pmieducar.servidor s  
249 - ,pmieducar.servidor_alocacao a  
250 - WHERE s.ativo = 1  
251 - AND a.ativo = 1  
252 - AND s.ref_cod_instituicao = a.ref_ref_cod_instituicao";  
253 - $registros = $db->Consulta( $consulta );  
254 - if ( $registros ) {  
255 - $ct = 0;  
256 - $script .="array_horas_servidor = new Array();\n";  
257 -  
258 - while($db->ProximoRegistro()){  
259 - $registro = $db->Tupla();  
260 - $carga_horaria = $registro['carga_horaria'];  
261 - $total_horas = sprintf("%02d",(int)floor($carga_horaria));  
262 - $total_minutos = sprintf("%02d",(int)(floatval($carga_horaria) - floatval($total_horas)) * 60);  
263 - $carga_horaria = "{$total_horas}:{$total_minutos}";//date("H:i",mktime($total_horas, $total_minutos, 0, 1, 1, 1970));  
264 - $script .= "array_horas_servidor['{$registro['cod_servidor']}_'] = new Array('{$carga_horaria}'); \n";  
265 - $ct++;  
266 - }  
267 - }  
268 -  
269 - $script .= "\n</script>";  
270 - echo $script;  
271 - }*/  
272 - $script .= "\n</script>";  
273 - echo $script;  
274 - }  
275 - }  
276 - }  
277 - }  
278 - }  
279 - }  
280 - } 174 + // data
  175 + if ($this->status == 'N') {
  176 + $this->campoData('data_saida', 'Data de Afastamento', $this->data_saida, TRUE);
  177 + }
  178 + elseif ($this->status == 'E') {
  179 + $this->campoRotulo('data_saida', 'Data de Afastamento', $this->data_saida);
  180 + }
281 181
282 - function Novo()  
283 - {  
284 - @session_start();  
285 - $this->pessoa_logada = $_SESSION['id_pessoa'];  
286 - @session_write_close();  
287 -  
288 - $obj_permissoes = new clsPermissoes();  
289 - $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}" );  
290 -//echo '<pre>';print_r($_POST);die;  
291 - $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 );  
292 - $cadastrou = $obj->cadastra();  
293 - if( $cadastrou )  
294 - {  
295 - if(is_array($_POST['ref_cod_servidor_substituto']))  
296 - foreach ( $_POST['ref_cod_servidor_substituto'] as $key => $valor )  
297 - {  
298 - //if ( substr( $campo, 0, 28 ) == 'ref_cod_servidor_substituto_' )  
299 - // {  
300 - $ref_cod_servidor_substituto = $valor;  
301 - // }  
302 - //if ( substr( $campo, 0, 15 ) == 'ref_cod_escola_' )  
303 - $ref_cod_escola = $_POST["ref_cod_escola_{$key}"];  
304 - //if ( substr( $campo, 0, 11 ) == 'dia_semana_' )  
305 - $dia_semana = $_POST["dia_semana_{$key}"];  
306 - //if ( substr( $campo, 0, 13 ) == 'hora_inicial_' )  
307 - $hora_inicial = urldecode( $_POST["hora_inicial_{$key}"] );  
308 - // if ( substr( $campo, 0, 11 ) == 'hora_final_' )  
309 - $hora_final = urldecode( $_POST["hora_final_{$key}"] );  
310 -  
311 - if ( is_numeric( $ref_cod_servidor_substituto ) && is_numeric( $ref_cod_escola ) && is_numeric( $dia_semana ) && is_string( $hora_inicial ) && is_string( $hora_final ) )  
312 - {  
313 -  
314 - //if ( substr( $campo, 0, 28 ) == 'ref_cod_servidor_substituto_' )  
315 - //{die;  
316 - $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 );  
317 - $det_horarios = $obj_horarios->detalhe($ref_cod_escola);  
318 - //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;  
319 - $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 );  
320 - if( !$obj_horario->edita() )  
321 - {  
322 - $this->mensagem = "Cadastro n&atilde;o realizado.<br>";  
323 - return false;  
324 - }  
325 - //}  
326 - }  
327 - }  
328 - $this->mensagem .= "Cadastro efetuado com sucesso.<br>";  
329 - header( "Location: educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" );  
330 - die();  
331 - return true;  
332 - }  
333 - else  
334 - {  
335 - $this->mensagem = "Cadastro n&atilde;o realizado.<br>";  
336 - return false;  
337 - }  
338 - $this->mensagem = "Cadastro n&atilde;o realizado.<br>";  
339 - echo "<!--\nErro ao cadastrar clsPmieducarServidorAfastamento\nvalores obrigatorios\nis_numeric( $this->ref_cod_servidor ) && is_numeric( $this->sequencial ) && is_numeric( $this->ref_ref_cod_instituicao ) && is_numeric( $this->ref_cod_motivo_afastamento ) && is_numeric( $this->ref_usuario_cad ) && is_string( $this->data_saida )\n-->";  
340 - return false;  
341 - } 182 + if ($this->status == 'E') {
  183 + $this->campoData('data_retorno', 'Data de Retorno', $this->data_retorno, FALSE);
  184 + }
342 185
343 - function Editar()  
344 - {  
345 - @session_start();  
346 - $this->pessoa_logada = $_SESSION['id_pessoa'];  
347 - @session_write_close(); 186 + if (class_exists('clsPmieducarServidor')) {
  187 + $obj_servidor = new clsPmieducarServidor($this->ref_cod_servidor,
  188 + NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
348 189
349 - $obj_permissoes = new clsPermissoes();  
350 - $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}" ); 190 + $det_servidor = $obj_servidor->detalhe();
351 191
352 - $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 );  
353 - $editou = $obj->edita();  
354 - if( $editou )  
355 - {  
356 - if(is_array($_POST['ref_cod_servidor_substituto']))  
357 - foreach ( $_POST['ref_cod_servidor_substituto'] as $key => $valor )  
358 - {  
359 - $ref_cod_servidor_substituto = $valor;  
360 -  
361 - //if ( substr( $campo, 0, 15 ) == 'ref_cod_escola_' )  
362 - $ref_cod_escola = $_POST["ref_cod_escola_{$key}"];  
363 - //if ( substr( $campo, 0, 11 ) == 'dia_semana_' )  
364 - $dia_semana = $_POST["dia_semana_{$key}"];  
365 - //if ( substr( $campo, 0, 13 ) == 'hora_inicial_' )  
366 - $hora_inicial = urldecode( $_POST["hora_inicial_{$key}"] );  
367 - // if ( substr( $campo, 0, 11 ) == 'hora_final_' )  
368 - $hora_final = urldecode( $_POST["hora_final_{$key}"] );  
369 -  
370 - if ( is_numeric( $ref_cod_servidor_substituto ) && is_numeric( $ref_cod_escola ) && is_numeric( $dia_semana ) && is_string( $hora_inicial ) && is_string( $hora_final ) )  
371 - {  
372 - //if ( substr( $campo, 0, 28 ) == 'ref_cod_servidor_substituto_' )  
373 - //{  
374 - $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 );  
375 - $det_horarios = $obj_horarios->detalhe($ref_cod_escola);  
376 - //if ( is_string( $this->data_retorno ) && $this->data_retorno != '' )  
377 - //{  
378 - //$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 );  
379 - $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 );  
380 - //}  
381 - /* else  
382 - {  
383 - // $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 );  
384 - $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 );  
385 - }*/  
386 - if( !$obj_horario->edita() )  
387 - {  
388 - $this->mensagem = "Cadastro n&atilde;o realizado.<br>";  
389 - return false;  
390 - }  
391 - //}  
392 - }  
393 - }  
394 - $this->mensagem .= "Edi&ccedil;&atilde;o efetuada com sucesso.<br>";  
395 - header( "Location: educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" );  
396 - die();  
397 - return true;  
398 - }  
399 -  
400 - $this->mensagem = "Edi&ccedil;&atilde;o n&atilde;o realizada.<br>";  
401 - echo "<!--\nErro ao editar clsPmieducarServidorAfastamento\nvalores obrigatorios\nif( is_numeric( $this->ref_cod_servidor ) && is_numeric( $this->sequencial ) && is_numeric( $this->ref_ref_cod_instituicao ) && is_numeric( $this->ref_usuario_exc ) )\n-->";  
402 - return false;  
403 - } 192 + if ($det_servidor) {
404 193
405 - function Excluir()  
406 - {  
407 - @session_start();  
408 - $this->pessoa_logada = $_SESSION['id_pessoa'];  
409 - @session_write_close(); 194 + if (class_exists('clsPmieducarFuncao')) {
  195 + $obj_funcao = new clsPmieducarFuncao($det_servidor['ref_cod_funcao'],
  196 + NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
410 197
411 - $obj_permissoes = new clsPermissoes();  
412 - $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}" ); 198 + $det_funcao = $obj_funcao->detalhe();
413 199
  200 + if ($det_funcao['professor'] == 1) {
  201 + $obj = new clsPmieducarQuadroHorarioHorarios();
  202 + $lista = $obj->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  203 + $this->ref_cod_instituicao, NULL, $this->ref_cod_servidor, NULL,
  204 + NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL);
414 205
415 - $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);  
416 - $excluiu = $obj->excluir();  
417 - if( $excluiu )  
418 - {  
419 - $this->mensagem .= "Exclus&atilde;o efetuada com sucesso.<br>";  
420 - header( "Location: educar_servidor_afastamento_lst.php" );  
421 - die();  
422 - return true;  
423 - }  
424 -  
425 - $this->mensagem = "Exclus&atilde;o n&atilde;o realizada.<br>";  
426 - echo "<!--\nErro ao excluir clsPmieducarServidorAfastamento\nvalores obrigatorios\nif( is_numeric( $this->ref_cod_servidor ) && is_numeric( $this->sequencial ) && is_numeric( $this->ref_ref_cod_instituicao ) && is_numeric( $this->ref_usuario_exc ) )\n-->";  
427 - return false;  
428 - } 206 + if ($lista) {
  207 +
  208 + // Passa todos os valores obtidos no registro para atributos do objeto
  209 + foreach ($lista as $campo => $val) {
  210 + $temp = array();
  211 + $temp['hora_inicial'] = $val['hora_inicial'];
  212 + $temp['hora_final'] = $val['hora_final'];
  213 + $temp['dia_semana'] = $val['dia_semana'];
  214 + $temp['ref_cod_escola'] = $val['ref_cod_escola'];
  215 + $temp['ref_cod_substituto'] = $val['ref_servidor_substituto'];
  216 + $this->alocacao_array[] = $temp;
  217 + }
  218 +
  219 + if ($this->alocacao_array) {
  220 + $tamanho = sizeof($alocacao);
  221 + $script = "<script>\nvar num_alocacao = {$tamanho};\n";
  222 + $script .= "var array_servidores = Array();\n";
  223 +
  224 + foreach ($this->alocacao_array as $key => $alocacao) {
  225 + $script .= "array_servidores[{$key}] = new Array();\n";
  226 +
  227 + $hora_ini = explode(":", $alocacao['hora_inicial']);
  228 + $hora_fim = explode(":", $alocacao['hora_final']);
  229 +
  230 + $horas_utilizadas = ($hora_fim[0] - $hora_ini[0]);
  231 + $minutos_utilizados = ($hora_fim[1] - $hora_ini[1]);
  232 +
  233 + $horas = sprintf('%02d', (int) $horas_utilizadas);
  234 + $minutos = sprintf('%02d', (int) $minutos_utilizados);
  235 +
  236 + $str_horas_utilizadas = "{$horas}:{$minutos}";
  237 +
  238 + $script .= "array_servidores[{$key}][0] = '{$str_horas_utilizadas}';\n";
  239 + $script .= "array_servidores[{$key}][1] = '';\n\n";
  240 +
  241 + $obj_escola = new clsPmieducarEscola($alocacao['ref_cod_escola']);
  242 + $det_escola = $obj_escola->detalhe();
  243 + $det_escola = $det_escola['nome'];
  244 + $nm_dia_semana = $this->dias_da_semana[$alocacao['dia_semana']];
  245 +
  246 + $obj_subst = new clsPessoa_($alocacao['ref_cod_substituto']);
  247 + $det_subst = $obj_subst->detalhe();
  248 +
  249 + if ($this->status == 'N') {
  250 + $this->campoTextoInv("dia_semana_{$key}_", '', $nm_dia_semana,
  251 + 8, 8, FALSE, FALSE, TRUE, '', '', '', '', 'dia_semana');
  252 +
  253 + $this->campoTextoInv("hora_inicial_{$key}_", '', $alocacao['hora_inicial'],
  254 + 5, 5, FALSE, FALSE, TRUE, '', '', '', '', 'ds_hora_inicial_');
  255 +
  256 + $this->campoTextoInv("hora_final_{$key}_", '', $alocacao['hora_final'],
  257 + 5, 5, FALSE, FALSE, TRUE, '', '', '', '', 'ds_hora_final_');
  258 +
  259 + $this->campoTextoInv("ref_cod_escola_{$key}", '', $det_escola,
  260 + 30, 255, FALSE, FALSE, TRUE, '', '', '', '', 'ref_cod_escola_');
  261 +
  262 + $this->campoTextoInv("ref_cod_servidor_substituto_{$key}_",
  263 + '', $det_subst['nome'], 30, 255, FALSE, FALSE, FALSE, '',
  264 + "<span name=\"ref_cod_servidor_substituto\" id=\"ref_cod_servidor_substituicao_{$key}\"><img border='0' onclick=\"pesquisa_valores_popless('educar_pesquisa_servidor_lst.php?campo1=ref_cod_servidor_substituto[{$key}]&campo2=ref_cod_servidor_substituto_{$key}_&ref_cod_instituicao={$this->ref_cod_instituicao}&dia_semana={$alocacao["dia_semana"]}&hora_inicial={$alocacao["hora_inicial"]}&hora_final={$alocacao["hora_final"]}&ref_cod_servidor={$this->ref_cod_servidor}&professor=1&ref_cod_escola={$alocacao['ref_cod_escola']}&horario=S', 'nome')\" src=\"imagens/lupa.png\" ></span>",
  265 + '', '', 'ref_cod_servidor_substituto');
  266 + }
  267 +
  268 + $this->campoOculto("dia_semana_{$key}", $alocacao['dia_semana']);
  269 + $this->campoOculto("hora_inicial_{$key}", $alocacao['hora_inicial']);
  270 + $this->campoOculto("hora_final_{$key}", $alocacao['hora_final']);
  271 + $this->campoOculto("ref_cod_escola_{$key}", $alocacao['ref_cod_escola']);
  272 + $this->campoOculto("ref_cod_servidor_substituto[{$key}]", $alocacao['ref_cod_substituto']);
  273 +
  274 + }
  275 +
  276 + $script .= "\n</script>";
  277 +
  278 + // Print do Javascript
  279 + print $script;
  280 + }
  281 + }
  282 + }
  283 + }
  284 +
  285 + }
  286 + }
  287 + }
  288 +
  289 +
  290 +
  291 + public function Novo() {
  292 + session_start();
  293 + $this->pessoa_logada = $_SESSION['id_pessoa'];
  294 + session_write_close();
  295 +
  296 + $this->ref_cod_servidor = isset($_POST['ref_cod_servidor']) ?
  297 + $_POST['ref_cod_servidor'] : NULL;
  298 +
  299 + $obj_permissoes = new clsPermissoes();
  300 + $obj_permissoes->permissao_cadastra(635, $this->pessoa_logada, 7,
  301 + "educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}");
  302 +
  303 + $obj = new clsPmieducarServidorAfastamento($this->ref_cod_servidor, NULL,
  304 + $this->ref_cod_motivo_afastamento, NULL, $this->pessoa_logada, NULL, NULL,
  305 + $this->data_retorno, $this->data_saida, 1, $this->ref_cod_instituicao);
  306 +
  307 + $cadastrou = $obj->cadastra();
  308 + if ($cadastrou) {
  309 +
  310 + if(is_array($_POST['ref_cod_servidor_substituto']))
  311 + foreach ( $_POST['ref_cod_servidor_substituto'] as $key => $valor )
  312 + {
  313 + //if ( substr( $campo, 0, 28 ) == 'ref_cod_servidor_substituto_' )
  314 + // {
  315 + $ref_cod_servidor_substituto = $valor;
  316 + // }
  317 + //if ( substr( $campo, 0, 15 ) == 'ref_cod_escola_' )
  318 + $ref_cod_escola = $_POST["ref_cod_escola_{$key}"];
  319 + //if ( substr( $campo, 0, 11 ) == 'dia_semana_' )
  320 + $dia_semana = $_POST["dia_semana_{$key}"];
  321 + //if ( substr( $campo, 0, 13 ) == 'hora_inicial_' )
  322 + $hora_inicial = urldecode( $_POST["hora_inicial_{$key}"] );
  323 + // if ( substr( $campo, 0, 11 ) == 'hora_final_' )
  324 + $hora_final = urldecode( $_POST["hora_final_{$key}"] );
  325 +
  326 + if ( is_numeric( $ref_cod_servidor_substituto ) && is_numeric( $ref_cod_escola ) && is_numeric( $dia_semana ) && is_string( $hora_inicial ) && is_string( $hora_final ) )
  327 + {
  328 +
  329 + //if ( substr( $campo, 0, 28 ) == 'ref_cod_servidor_substituto_' )
  330 + //{die;
  331 + $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 );
  332 + $det_horarios = $obj_horarios->detalhe($ref_cod_escola);
  333 + //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;
  334 + $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 );
  335 + if( !$obj_horario->edita() )
  336 + {
  337 + $this->mensagem = "Cadastro n&atilde;o realizado.<br>";
  338 + return false;
  339 + }
  340 + //}
  341 + }
  342 + }
  343 + $this->mensagem .= "Cadastro efetuado com sucesso.<br>";
  344 + header( "Location: educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" );
  345 + die();
  346 + return true;
  347 + }
  348 + else
  349 + {
  350 + $this->mensagem = "Cadastro n&atilde;o realizado.<br>";
  351 + return false;
  352 + }
  353 + $this->mensagem = "Cadastro n&atilde;o realizado.<br>";
  354 + echo "<!--\nErro ao cadastrar clsPmieducarServidorAfastamento\nvalores obrigatorios\nis_numeric( $this->ref_cod_servidor ) && is_numeric( $this->sequencial ) && is_numeric( $this->ref_ref_cod_instituicao ) && is_numeric( $this->ref_cod_motivo_afastamento ) && is_numeric( $this->ref_usuario_cad ) && is_string( $this->data_saida )\n-->";
  355 + return false;
  356 + }
  357 +
  358 + function Editar()
  359 + {
  360 + @session_start();
  361 + $this->pessoa_logada = $_SESSION['id_pessoa'];
  362 + @session_write_close();
  363 +
  364 + $obj_permissoes = new clsPermissoes();
  365 + $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}" );
  366 +
  367 + $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 );
  368 + $editou = $obj->edita();
  369 + if( $editou )
  370 + {
  371 + if(is_array($_POST['ref_cod_servidor_substituto']))
  372 + foreach ( $_POST['ref_cod_servidor_substituto'] as $key => $valor )
  373 + {
  374 + $ref_cod_servidor_substituto = $valor;
  375 +
  376 + //if ( substr( $campo, 0, 15 ) == 'ref_cod_escola_' )
  377 + $ref_cod_escola = $_POST["ref_cod_escola_{$key}"];
  378 + //if ( substr( $campo, 0, 11 ) == 'dia_semana_' )
  379 + $dia_semana = $_POST["dia_semana_{$key}"];
  380 + //if ( substr( $campo, 0, 13 ) == 'hora_inicial_' )
  381 + $hora_inicial = urldecode( $_POST["hora_inicial_{$key}"] );
  382 + // if ( substr( $campo, 0, 11 ) == 'hora_final_' )
  383 + $hora_final = urldecode( $_POST["hora_final_{$key}"] );
  384 +
  385 + if ( is_numeric( $ref_cod_servidor_substituto ) && is_numeric( $ref_cod_escola ) && is_numeric( $dia_semana ) && is_string( $hora_inicial ) && is_string( $hora_final ) )
  386 + {
  387 + //if ( substr( $campo, 0, 28 ) == 'ref_cod_servidor_substituto_' )
  388 + //{
  389 + $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 );
  390 + $det_horarios = $obj_horarios->detalhe($ref_cod_escola);
  391 + //if ( is_string( $this->data_retorno ) && $this->data_retorno != '' )
  392 + //{
  393 + //$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 );
  394 + $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 );
  395 + //}
  396 + /* else
  397 + {
  398 + // $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 );
  399 + $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 );
  400 + }*/
  401 + if( !$obj_horario->edita() )
  402 + {
  403 + $this->mensagem = "Cadastro n&atilde;o realizado.<br>";
  404 + return false;
  405 + }
  406 + //}
  407 + }
  408 + }
  409 + $this->mensagem .= "Edi&ccedil;&atilde;o efetuada com sucesso.<br>";
  410 + header( "Location: educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}" );
  411 + die();
  412 + return true;
  413 + }
  414 +
  415 + $this->mensagem = "Edi&ccedil;&atilde;o n&atilde;o realizada.<br>";
  416 + echo "<!--\nErro ao editar clsPmieducarServidorAfastamento\nvalores obrigatorios\nif( is_numeric( $this->ref_cod_servidor ) && is_numeric( $this->sequencial ) && is_numeric( $this->ref_ref_cod_instituicao ) && is_numeric( $this->ref_usuario_exc ) )\n-->";
  417 + return false;
  418 + }
  419 +
  420 + function Excluir()
  421 + {
  422 + @session_start();
  423 + $this->pessoa_logada = $_SESSION['id_pessoa'];
  424 + @session_write_close();
  425 +
  426 + $obj_permissoes = new clsPermissoes();
  427 + $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}" );
  428 +
  429 +
  430 + $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);
  431 + $excluiu = $obj->excluir();
  432 + if( $excluiu )
  433 + {
  434 + $this->mensagem .= "Exclus&atilde;o efetuada com sucesso.<br>";
  435 + header( "Location: educar_servidor_afastamento_lst.php" );
  436 + die();
  437 + return true;
  438 + }
  439 +
  440 + $this->mensagem = "Exclus&atilde;o n&atilde;o realizada.<br>";
  441 + echo "<!--\nErro ao excluir clsPmieducarServidorAfastamento\nvalores obrigatorios\nif( is_numeric( $this->ref_cod_servidor ) && is_numeric( $this->sequencial ) && is_numeric( $this->ref_ref_cod_instituicao ) && is_numeric( $this->ref_usuario_exc ) )\n-->";
  442 + return false;
  443 + }
429 } 444 }
430 445
431 // cria uma extensao da classe base 446 // cria uma extensao da classe base
ieducar/intranet/include/pmieducar/clsPmieducarServidor.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" ); 3 + *
  4 + * @author Prefeitura Municipal de Itajaí
  5 + * @version $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';
34 30
35 class clsPmieducarServidor 31 class clsPmieducarServidor
36 { 32 {
@@ -110,9 +106,12 @@ class clsPmieducarServidor @@ -110,9 +106,12 @@ class clsPmieducarServidor
110 * 106 *
111 * @return object 107 * @return object
112 */ 108 */
113 - function clsPmieducarServidor( $cod_servidor = null, $ref_cod_deficiencia = null, $ref_idesco = null, $carga_horaria = null, $data_cadastro = null, $data_exclusao = null, $ativo = null, $ref_cod_instituicao = null, $ref_cod_subnivel = null )  
114 - {  
115 - $db = new clsBanco(); 109 + public function clsPmieducarServidor(
  110 + $cod_servidor = NULL, $ref_cod_deficiencia = NULL, $ref_idesco = NULL,
  111 + $carga_horaria = NULL, $data_cadastro = NULL, $data_exclusao = NULL,
  112 + $ativo = NULL, $ref_cod_instituicao = NULL, $ref_cod_subnivel = NULL) {
  113 +
  114 + $db = new clsBanco();
116 $this->_schema = "pmieducar."; 115 $this->_schema = "pmieducar.";
117 $this->_tabela = "{$this->_schema}servidor"; 116 $this->_tabela = "{$this->_schema}servidor";
118 117
@@ -409,8 +408,19 @@ class clsPmieducarServidor @@ -409,8 +408,19 @@ class clsPmieducarServidor
409 * 408 *
410 * @return array 409 * @return array
411 */ 410 */
412 - 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 )  
413 - { 411 + public function lista($int_cod_servidor = NULL, $int_ref_cod_deficiencia = NULL,
  412 + $int_ref_idesco = null, $int_carga_horaria = NULL, $date_data_cadastro_ini = NULL,
  413 + $date_data_cadastro_fim = NULL, $date_data_exclusao_ini = NULL,
  414 + $date_data_exclusao_fim = NULL, $int_ativo = NULL,
  415 + $int_ref_cod_instituicao = NULL, $str_tipo = NULL, $array_horario = NULL,
  416 + $str_not_in_servidor = NULL, $str_nome_servidor = NULL, $boo_professor = FALSE,
  417 + $str_horario = NULL, $bool_ordena_por_nome = FALSE, $lst_matriculas = NULL,
  418 + $matutino = FALSE, $vespertino = FALSE, $noturno = FALSE,
  419 + $int_ref_cod_escola = NULL, $str_hr_mat = NULL, $str_hr_ves = NULL,
  420 + $str_hr_not = NULL, $int_dia_semana = NULL,
  421 + $alocacao_escola_instituicao = NULL, $int_identificador = NULL,
  422 + $int_ref_cod_curso = NULL, $int_ref_cod_disciplina = NULL,
  423 + $int_ref_cod_subnivel = NULL) {
414 424
415 $whereAnd = " WHERE "; 425 $whereAnd = " WHERE ";
416 $filtros = ""; 426 $filtros = "";
@@ -425,7 +435,7 @@ class clsPmieducarServidor @@ -425,7 +435,7 @@ class clsPmieducarServidor
425 { 435 {
426 $tabela_compl .= ", cadastro.pessoa p"; 436 $tabela_compl .= ", cadastro.pessoa p";
427 $this->_campos_lista2 .= ",p.nome"; 437 $this->_campos_lista2 .= ",p.nome";
428 - $filtros .= "{$whereAnd} cod_servidor = idpes "; 438 + $filtros .= "{$whereAnd} s.cod_servidor = p.idpes ";
429 $whereAnd = " AND "; 439 $whereAnd = " AND ";
430 $this->setOrderby( "nome" ); 440 $this->setOrderby( "nome" );
431 } 441 }
@@ -540,9 +550,14 @@ class clsPmieducarServidor @@ -540,9 +550,14 @@ class clsPmieducarServidor
540 { 550 {
541 $filtros .= "{$whereAnd} s.cod_servidor IN ( SELECT a.ref_cod_servidor 551 $filtros .= "{$whereAnd} s.cod_servidor IN ( SELECT a.ref_cod_servidor
542 FROM pmieducar.servidor_alocacao a 552 FROM pmieducar.servidor_alocacao a
543 - WHERE a.ref_ref_cod_instituicao = '{$int_ref_cod_instituicao}'  
544 - and ref_cod_escola = '{$int_ref_cod_escola}' )";  
545 - 553 + WHERE ";
  554 + if (is_numeric($int_ref_cod_instituicao)) {
  555 + $filtros .= " a.ref_ref_cod_instituicao = '{$int_ref_cod_instituicao}'";
  556 + }
  557 + if (is_numeric($int_ref_cod_escola)) {
  558 + $filtros .= " and ref_cod_escola = '{$int_ref_cod_escola}' ";
  559 + }
  560 + $filtros .= ') ';
546 } 561 }
547 562
548 if ( is_array( $array_horario ) ) 563 if ( is_array( $array_horario ) )
@@ -791,7 +806,7 @@ class clsPmieducarServidor @@ -791,7 +806,7 @@ class clsPmieducarServidor
791 $sql = "SELECT {$this->_campos_lista2} FROM {$this->_schema}servidor s{$tabela_compl} {$filtros}".$this->getOrderby().$this->getLimite(); 806 $sql = "SELECT {$this->_campos_lista2} FROM {$this->_schema}servidor s{$tabela_compl} {$filtros}".$this->getOrderby().$this->getLimite();
792 807
793 $this->_total = $db->CampoUnico( "SELECT COUNT(0) FROM {$this->_schema}servidor s{$tabela_compl} {$filtros}" ); 808 $this->_total = $db->CampoUnico( "SELECT COUNT(0) FROM {$this->_schema}servidor s{$tabela_compl} {$filtros}" );
794 - 809 +print '<pre>'.$sql.'</pre>';
795 $db->Consulta( $sql ); 810 $db->Consulta( $sql );
796 811
797 if( $countCampos > 1 ) 812 if( $countCampos > 1 )
@@ -976,5 +991,4 @@ class clsPmieducarServidor @@ -976,5 +991,4 @@ class clsPmieducarServidor
976 return $db->Tupla(); 991 return $db->Tupla();
977 } 992 }
978 993
979 -}  
980 -?>  
981 \ No newline at end of file 994 \ No newline at end of file
  995 +}
982 \ No newline at end of file 996 \ No newline at end of file
ieducar/intranet/include/pmieducar/clsPmieducarServidorAfastamento.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" ); 3 + *
  4 + * @author Prefeitura Municipal de Itajaí
  5 + * @version $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';
34 30
35 class clsPmieducarServidorAfastamento 31 class clsPmieducarServidorAfastamento
36 { 32 {
@@ -112,7 +108,7 @@ class clsPmieducarServidorAfastamento @@ -112,7 +108,7 @@ class clsPmieducarServidorAfastamento
112 */ 108 */
113 function clsPmieducarServidorAfastamento( $ref_cod_servidor = null, $sequencial = 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, $ref_cod_instituicao = null ) 109 function clsPmieducarServidorAfastamento( $ref_cod_servidor = null, $sequencial = 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, $ref_cod_instituicao = null )
114 { 110 {
115 - $db = new clsBanco(); 111 + $db = new clsBanco();
116 $this->_schema = "pmieducar."; 112 $this->_schema = "pmieducar.";
117 $this->_tabela = "{$this->_schema}servidor_afastamento"; 113 $this->_tabela = "{$this->_schema}servidor_afastamento";
118 114
@@ -206,7 +202,7 @@ class clsPmieducarServidorAfastamento @@ -206,7 +202,7 @@ class clsPmieducarServidorAfastamento
206 { 202 {
207 if( class_exists( "clsPmieducarServidor" ) ) 203 if( class_exists( "clsPmieducarServidor" ) )
208 { 204 {
209 - $tmp_obj = new clsPmieducarServidor( $ref_cod_servidor, null, null, null, null, null, null, 1, $ref_cod_instituicao ); 205 + $tmp_obj = new clsPmieducarServidor( $ref_cod_servidor, null, null, null, null, null, 1, $ref_cod_instituicao );
210 if( method_exists( $tmp_obj, "existe") ) 206 if( method_exists( $tmp_obj, "existe") )
211 { 207 {
212 if( $tmp_obj->existe() ) 208 if( $tmp_obj->existe() )
@@ -710,5 +706,4 @@ class clsPmieducarServidorAfastamento @@ -710,5 +706,4 @@ class clsPmieducarServidorAfastamento
710 } 706 }
711 return false; 707 return false;
712 } 708 }
713 -}  
714 -?>  
715 \ No newline at end of file 709 \ No newline at end of file
  710 +}
716 \ No newline at end of file 711 \ No newline at end of file
ieducar/intranet/include/pmieducar/clsPmieducarServidorFuncao.inc.php
@@ -291,11 +291,21 @@ class clsPmieducarServidorFuncao @@ -291,11 +291,21 @@ class clsPmieducarServidorFuncao
291 */ 291 */
292 function detalhe() 292 function detalhe()
293 { 293 {
294 - if( is_numeric( $this->ref_ref_cod_instituicao ) && is_numeric( $this->ref_cod_servidor ) && is_numeric( $this->ref_cod_funcao ) ) 294 + if( is_numeric( $this->ref_ref_cod_instituicao ) && is_numeric( $this->ref_cod_servidor ) ) #&& is_numeric( $this->ref_cod_funcao ) )
295 { 295 {
  296 + $sql = sprintf(
  297 + "SELECT %s FROM %s WHERE ref_ref_cod_instituicao = '%d' AND ref_cod_servidor = '%d'",
  298 + $this->_todos_campos, $this->_tabela, $this->ref_ref_cod_instituicao,
  299 + $this->ref_cod_servidor
  300 + );
  301 +
  302 + if (is_numeric($this->ref_cod_funcao)) {
  303 + $sql .= sprintf(" AND ref_cod_funcao = '%d'", $this->ref_cod_funcao);
  304 + }
296 305
297 $db = new clsBanco(); 306 $db = new clsBanco();
298 - $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}'" ); 307 + #$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}'" );
  308 + $db->Consulta($sql);
299 $db->ProximoRegistro(); 309 $db->ProximoRegistro();
300 return $db->Tupla(); 310 return $db->Tupla();
301 } 311 }
ieducar/tests/functional/ServidorAfastarWebTest.class.php 0 → 100644
@@ -0,0 +1,142 @@ @@ -0,0 +1,142 @@
  1 +<?php
  2 +
  3 +/**
  4 + * ServidorAfastarWebTest class.
  5 + *
  6 + * Esse teste precisa ser executado com o banco de dados distribuído na
  7 + * versão 1.0.0.
  8 + *
  9 + * @author Eriksen Costa <eriksen.paixao_bs@cobra.com.br>
  10 + * @since 1.0.1
  11 + * @version $Id$
  12 + */
  13 +
  14 +require_once realpath(dirname(__FILE__) . '/../') . '/FunctionalBaseTest.class.php';
  15 +
  16 +class ServidorAfastarWebTest extends FunctionalBaseTest {
  17 +
  18 + private
  19 + $slPessoaNome = 'Selenese Test User',
  20 + $slPessoaMatricula = 'selen_tuser',
  21 + $slPessoaID = NULL;
  22 +
  23 +
  24 +
  25 + protected function setUp() {
  26 + parent::setUp();
  27 +
  28 + $db = new clsBanco();
  29 +
  30 + // Cria uma nova pessoa e guarda o ID gerado
  31 + $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));
  32 + $this->slPessoaID = $id = $db->InsertId('cadastro.seq_pessoa');
  33 +
  34 +
  35 + // Cria pessoa física
  36 + $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));
  37 +
  38 + // Cria novo funcionário no sistema
  39 + $db->Consulta(
  40 + sprintf(
  41 + "INSERT INTO portal.funcionario
  42 + (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)
  43 + VALUES
  44 + ('%d', '%s', '25d55ad283aa400af464c76d713c07ad', '1', '', '4', '30', '365', NOW(), NOW(), '28', '0', '1', '1')", $id, $this->slPessoaMatricula)
  45 + );
  46 +
  47 +
  48 + // Cria um novo servidor, com a função de professor
  49 + $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);
  50 + $db->Consulta($sql);
  51 +
  52 + $sql = sprintf("INSERT INTO pmieducar.servidor_funcao (ref_ref_cod_instituicao, ref_cod_servidor, ref_cod_funcao ) VALUES( '2', '%d', '2')", $id);
  53 + $db->Consulta($sql);
  54 +
  55 +
  56 + // Atribue disciplinas ao servidor e o curso em que ministra
  57 + $sql = sprintf("INSERT INTO pmieducar.servidor_disciplina (ref_cod_disciplina, ref_ref_cod_instituicao, ref_cod_servidor) VALUES('6', '2', '%d')", $id);
  58 + $db->Consulta($sql);
  59 + $sql = sprintf("INSERT INTO pmieducar.servidor_disciplina (ref_cod_disciplina, ref_ref_cod_instituicao, ref_cod_servidor) VALUES('3', '2', '%d')", $id);
  60 + $db->Consulta($sql);
  61 + $sql = sprintf("INSERT INTO pmieducar.servidor_disciplina (ref_cod_disciplina, ref_ref_cod_instituicao, ref_cod_servidor) VALUES('4', '2', '%d')", $id);
  62 + $db->Consulta($sql);
  63 +
  64 + $sql = sprintf("INSERT INTO pmieducar.servidor_curso_ministra (ref_cod_curso, ref_ref_cod_instituicao, ref_cod_servidor) VALUES('1', '2', '%d')", $id);
  65 + $db->Consulta($sql);
  66 +
  67 +
  68 + // Aloca tempo de trabalho para o servidor
  69 + $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);
  70 + $db->Consulta($sql);
  71 + $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);
  72 + $db->Consulta($sql);
  73 + $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);
  74 + $db->Consulta($sql);
  75 + $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);
  76 + $db->Consulta($sql);
  77 +
  78 + // Aloca horas aula ao servidor
  79 + $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);
  80 + $db->Consulta($sql);
  81 +
  82 + $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);
  83 + $db->Consulta($sql);
  84 + }
  85 +
  86 +
  87 +
  88 + protected function tearDown() {
  89 + $db = new clsBanco();
  90 +
  91 + // ID da pessoa/servidor
  92 + $id = $this->slPessoaID;
  93 +
  94 + // Array com instruções SQL para limpar os registros
  95 + $sqls = array();
  96 +
  97 + $sqls[] = sprintf("DELETE FROM pmieducar.quadro_horario_horarios WHERE ref_servidor = '%d'", $id);
  98 + $sqls[] = sprintf("DELETE FROM pmieducar.servidor_alocacao WHERE ref_cod_servidor = '%d'", $id);
  99 + $sqls[] = sprintf("DELETE FROM pmieducar.servidor_curso_ministra WHERE ref_cod_servidor = '%d'", $id);
  100 + $sqls[] = sprintf("DELETE FROM pmieducar.servidor_disciplina WHERE ref_cod_servidor = '%d'", $id);
  101 + $sqls[] = sprintf("DELETE FROM pmieducar.servidor_funcao WHERE ref_cod_servidor = '%d'", $id);
  102 + $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
  103 + $sqls[] = sprintf("DELETE FROM pmieducar.servidor WHERE cod_servidor = '%d'", $id);
  104 + $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
  105 + $sqls[] = sprintf("DELETE FROM portal.funcionario WHERE ref_cod_pessoa_fj = '%d'", $id);
  106 + $sqls[] = sprintf("DELETE FROM cadastro.fisica WHERE idpes = '%d'", $id);
  107 + $sqls[] = sprintf("DELETE FROM cadastro.pessoa WHERE idpes = '%d'", $id);
  108 +
  109 + foreach ($sqls as $sql) {
  110 + $db->Consulta($sql);
  111 + }
  112 +
  113 + }
  114 +
  115 +
  116 +
  117 + /**
  118 + * Testa a ação afastar servidor.
  119 + *
  120 + * Verifica pelo nome de matrícula que aparece na página de detalhes logo após
  121 + * a requisição enviada ao servidor.
  122 + */
  123 + public function testServidorAfastar() {
  124 + $this->doLogin();
  125 +
  126 + $this->open('/intranet/educar_servidor_lst.php');
  127 + $this->clickAndWait('link=' . $this->slPessoaNome);
  128 + $this->clickAndWait("//input[@value='Afastar Servidor']");
  129 +
  130 + $this->select('ref_cod_motivo_afastamento', 'label=Capacitação');
  131 +
  132 + // Cria data daqui a 10 dias
  133 + $data = date('d/m/Y', (time() + (60 * 60 * 24 * 10)));
  134 + $this->type('data_saida', $data);
  135 +
  136 + $this->clickAndWait('btn_enviar');
  137 + $this->assertTrue($this->isTextPresent($this->slPessoaMatricula));
  138 +
  139 + $this->doLogout();
  140 + }
  141 +
  142 +}
0 \ No newline at end of file 143 \ No newline at end of file
ieducar/tests/unit/ClsPmieducarServidorTest.class.php 0 → 100644
@@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
  1 +<?php
  2 +
  3 +/**
  4 + * ClsPmieducarServidorTest class.
  5 + *
  6 + * @author Eriksen Costa <eriksen.paixao_bs@cobra.com.br>
  7 + * @version $Id$
  8 + */
  9 +
  10 +require_once realpath(dirname(__FILE__) . '/../') . '/UnitBaseTest.class.php';
  11 +require_once 'include/pmieducar/clsPmieducarServidor.inc.php';
  12 +
  13 +class ClsPmieducarServidorTest extends UnitBaseTest {
  14 +
  15 + private
  16 + $codServidor = NULL,
  17 + $codInstituicao = NULL;
  18 +
  19 + protected function setUp() {
  20 + $db = new clsBanco();
  21 + $sql = 'SELECT cod_servidor, ref_cod_instituicao FROM pmieducar.servidor WHERE ativo = 1 LIMIT 1';
  22 +
  23 + $db->Consulta($sql);
  24 + $db->ProximoRegistro();
  25 + list($this->codServidor, $this->codInstituicao) = $db->Tupla();
  26 + }
  27 +
  28 + public function testPmieducarServidorExists() {
  29 + $codServidor = $this->codServidor;
  30 + $codInstituicao = $this->codInstituicao;
  31 +
  32 + $servidor = new clsPmieducarServidor(
  33 + $codServidor, NULL, NULL, NULL, NULL, NULL, 1, $codInstituicao);
  34 +
  35 + $this->assertTrue((boolean) $servidor->existe());
  36 + }
  37 +
  38 +}
0 \ No newline at end of file 39 \ No newline at end of file