Commit 22bad1ee84c8efbf07040c58bc607dd2f69a2ba6
1 parent
b37f02c3
Exists in
master
#77 by Eriksen Costa: Simplificação de código, redução de condicionais
Showing
1 changed file
with
118 additions
and
438 deletions
Show diff stats
ieducar/intranet/educar_serie_matricula_xml.php
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | +/** | |
| 4 | + * i-Educar - Sistema de gestão escolar | |
| 5 | + * | |
| 6 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | |
| 7 | + * <ctima@itajai.sc.gov.br> | |
| 8 | + * | |
| 9 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | |
| 10 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | |
| 11 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | |
| 12 | + * qualquer versão posterior. | |
| 13 | + * | |
| 14 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | |
| 15 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | |
| 16 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | |
| 17 | + * do GNU para mais detalhes. | |
| 18 | + * | |
| 19 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | |
| 20 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | |
| 21 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | |
| 22 | + * | |
| 23 | + * @author Prefeitura Municipal de Itajaí <ctima@itajai.sc.gov.br> | |
| 24 | + * @category i-Educar | |
| 25 | + * @license @@license@@ | |
| 26 | + * @package iEd_Pmieducar | |
| 27 | + * @since Arquivo disponível desde a versão 1.0.0 | |
| 28 | + * @version $Id$ | |
| 29 | + */ | |
| 30 | + | |
| 3 | 31 | header('Content-type: text/xml'); |
| 4 | 32 | |
| 5 | 33 | require_once 'include/clsBanco.inc.php'; |
| ... | ... | @@ -15,206 +43,49 @@ $pessoa_logada = $_SESSION['id_pessoa']; |
| 15 | 43 | @session_write_close(); |
| 16 | 44 | |
| 17 | 45 | /** |
| 18 | - * Retorna o ano escolar de sequência do ano escolar no curso. | |
| 19 | - * | |
| 20 | - * @param clsBanco $db | |
| 21 | - * @param int $codSerie | |
| 22 | - * @param int $codCurso | |
| 23 | - * @return array (codSerie => nome) | |
| 24 | - * @todo Selecionar pelo curso é desnecessário pois a relação pmieducar.serie | |
| 25 | - * com pmieducar.curso é 1:1. | |
| 46 | + * @param array $data | |
| 47 | + * @param string $index | |
| 48 | + * @return array $data[$index] => key($data) | |
| 26 | 49 | */ |
| 27 | -function _anosEscolaresSequenciaCurso(clsBanco $db, $codSerie, $codCurso) | |
| 50 | +function _createArrayFromIndex(array $data, $index) | |
| 28 | 51 | { |
| 29 | - $sql = sprintf('SELECT | |
| 30 | - s.cod_serie, | |
| 31 | - s.nm_serie | |
| 32 | - FROM | |
| 33 | - pmieducar.serie s, | |
| 34 | - pmieducar.sequencia_serie ss | |
| 35 | - WHERE | |
| 36 | - ss.ref_serie_origem = %d | |
| 37 | - AND ss.ref_serie_destino = s.cod_serie | |
| 38 | - AND s.ref_cod_curso = %d | |
| 39 | - AND ss.ativo = 1 | |
| 40 | - ORDER BY | |
| 41 | - s.nm_serie ASC', | |
| 42 | - $codSerie, $codCurso | |
| 43 | - ); | |
| 44 | - | |
| 45 | - $db->Consulta($sql); | |
| 46 | - | |
| 47 | - $lst_serie = array(); | |
| 48 | - if ($db->numLinhas()) { | |
| 49 | - while ($db->ProximoRegistro()) { | |
| 50 | - list($cod, $nome) = $db->Tupla(); | |
| 51 | - $lst_serie[$cod] = $nome; | |
| 52 | + $ret = array(); | |
| 53 | + foreach ($data as $key => $entry) { | |
| 54 | + if (isset($entry[$index])) { | |
| 55 | + $ret[$entry[$index]] = $key; | |
| 52 | 56 | } |
| 53 | 57 | } |
| 54 | - | |
| 55 | - return $lst_serie; | |
| 58 | + return $ret; | |
| 56 | 59 | } |
| 57 | 60 | |
| 58 | 61 | /** |
| 59 | - * Seleciona um ano escolar/série. | |
| 60 | - * | |
| 61 | 62 | * @param clsBanco $db |
| 62 | - * @param int $codSerie Código do ano escolar/série. | |
| 63 | + * @param string $sql | |
| 63 | 64 | * @return array (codSerie => nome) |
| 64 | 65 | */ |
| 65 | -function _mesmoAnoEscolar(clsBanco $db, $codSerie) | |
| 66 | +function _getAnoEscolar(clsBanco $db, $sql) | |
| 66 | 67 | { |
| 67 | - $sql = sprintf('SELECT | |
| 68 | - cod_serie, | |
| 69 | - nm_serie | |
| 70 | - FROM | |
| 71 | - pmieducar.serie | |
| 72 | - WHERE | |
| 73 | - cod_serie = %d | |
| 74 | - AND ativo = 1 | |
| 75 | - ORDER BY | |
| 76 | - nm_serie ASC', | |
| 77 | - $codSerie | |
| 78 | - ); | |
| 79 | - | |
| 80 | 68 | $db->Consulta($sql); |
| 81 | 69 | |
| 82 | - $lst_serie = array(); | |
| 70 | + $resultado = array(); | |
| 83 | 71 | if ($db->numLinhas()) { |
| 84 | 72 | while ($db->ProximoRegistro()) { |
| 85 | 73 | list($cod, $nome) = $db->Tupla(); |
| 86 | - $lst_serie[$cod] = $nome; | |
| 87 | - } | |
| 88 | - } | |
| 89 | - | |
| 90 | - return $lst_serie; | |
| 91 | -} | |
| 92 | - | |
| 93 | -/** | |
| 94 | - * Retorna os anos escolares da sequência do ano escolar/série para a escola | |
| 95 | - * e o curso. | |
| 96 | - * | |
| 97 | - * @param clsBanco $db | |
| 98 | - * @param int $codSerie Código do ano escolar. | |
| 99 | - * @param int $codEscola Código da escola. | |
| 100 | - * @param int $codCurso Código do curso. | |
| 101 | - * @return array (codSerie => nome) | |
| 102 | - * @see _anosEscolaresEscolaCurso | |
| 103 | - */ | |
| 104 | -function _sequencias(clsBanco $db, $codSerie, $codEscola, $codCurso) | |
| 105 | -{ | |
| 106 | - $db->Consulta('SELECT | |
| 107 | - so.ref_cod_curso AS curso_origem, | |
| 108 | - ss.ref_serie_origem AS serie_origem, | |
| 109 | - sd.ref_cod_curso AS curso_destino, | |
| 110 | - ss.ref_serie_destino AS serie_destino | |
| 111 | - FROM | |
| 112 | - pmieducar.sequencia_serie ss, | |
| 113 | - pmieducar.serie so, | |
| 114 | - pmieducar.serie sd | |
| 115 | - WHERE | |
| 116 | - ss.ativo = 1 | |
| 117 | - AND ref_serie_origem = so.cod_serie | |
| 118 | - AND ref_serie_destino = sd.cod_serie | |
| 119 | - ORDER BY | |
| 120 | - ss.ref_serie_origem ASC'); | |
| 121 | - | |
| 122 | - $sequencias = array(); | |
| 123 | - if ($db->numLinhas()) { | |
| 124 | - while ($db->ProximoRegistro()) { | |
| 125 | - $sequencias[] = $db->Tupla(); | |
| 126 | - } | |
| 127 | - } | |
| 128 | - | |
| 129 | - // Seleciona todas as séries de origem de sequência de série que não sejam | |
| 130 | - // séries destino de alguma sequência. | |
| 131 | - $db->Consulta('SELECT | |
| 132 | - DISTINCT(o.ref_serie_origem) | |
| 133 | - FROM | |
| 134 | - pmieducar.sequencia_serie o, | |
| 135 | - pmieducar.escola_serie es | |
| 136 | - WHERE NOT EXISTS( | |
| 137 | - SELECT | |
| 138 | - 1 | |
| 139 | - FROM | |
| 140 | - pmieducar.sequencia_serie d | |
| 141 | - WHERE | |
| 142 | - o.ref_serie_origem = d.ref_serie_destino | |
| 143 | - )'); | |
| 144 | - | |
| 145 | - $lst_serie = array(); | |
| 146 | - $serie_sequencia = array(); | |
| 147 | - | |
| 148 | - if ($db->numLinhas()) { | |
| 149 | - $pertence_sequencia = FALSE; | |
| 150 | - $achou_serie = FALSE; | |
| 151 | - $reset = FALSE; | |
| 152 | - | |
| 153 | - while ($db->ProximoRegistro()) { | |
| 154 | - list($ini_sequencia) = $db->Tupla(); | |
| 155 | - | |
| 156 | - $ini_serie = $ini_sequencia; | |
| 157 | - reset($sequencias); | |
| 158 | - | |
| 159 | - do { | |
| 160 | - if ($reset) { | |
| 161 | - reset($sequencias); | |
| 162 | - $reset = FALSE; | |
| 163 | - } | |
| 164 | - | |
| 165 | - $sequencia = current($sequencias); | |
| 166 | - $aux_serie = $sequencia['serie_origem']; | |
| 167 | - | |
| 168 | - if ($ini_serie == $aux_serie) { | |
| 169 | - // Achou a série da matrÃcula. | |
| 170 | - if ($codSerie == $aux_serie) { | |
| 171 | - $achou_serie = TRUE; | |
| 172 | - } | |
| 173 | - | |
| 174 | - // Curso escolhido é da sequência de série | |
| 175 | - if ($sequencia['curso_destino'] == $codCurso) { | |
| 176 | - $pertence_sequencia = TRUE; | |
| 177 | - $ini_serie = $sequencia['serie_destino']; | |
| 178 | - $reset = TRUE; | |
| 179 | - | |
| 180 | - // Armazena a série de destino no array de série sequencial | |
| 181 | - $serie_sequencia[] = $sequencia['serie_destino']; | |
| 182 | - } | |
| 183 | - else { | |
| 184 | - $ini_serie = $sequencia['serie_destino']; | |
| 185 | - $reset = TRUE; | |
| 186 | - } | |
| 187 | - } | |
| 188 | - } while (each($sequencias)); | |
| 189 | - | |
| 190 | - if ($achou_serie && $pertence_sequencia) { | |
| 191 | - // Curso escolhido pertence a sequência da série da matrÃcula. | |
| 192 | - break; | |
| 193 | - } | |
| 194 | - } | |
| 195 | - | |
| 196 | - // @pertenceSequencia{ | |
| 197 | - if (! $pertence_sequencia) { | |
| 198 | - $lst_serie = _anosEscolaresEscolaCurso($db, $serie_sequencia, $codEscola, $codCurso); | |
| 74 | + $resultado[$cod] = $nome; | |
| 199 | 75 | } |
| 200 | - // }@pertenceSequencia | |
| 201 | 76 | } |
| 202 | 77 | |
| 203 | - return $lst_serie; | |
| 78 | + return $resultado; | |
| 204 | 79 | } |
| 205 | 80 | |
| 206 | 81 | /** |
| 207 | - * Seleciona os anos escolares de um curso em uma escola, eliminando da seleção | |
| 208 | - * as séries identificadas no array $serie_sequencia. | |
| 82 | + * Retorna o ano escolar/série de uma escola. | |
| 209 | 83 | * |
| 210 | 84 | * @param clsBanco $db |
| 211 | - * @param array $serie_sequencia Códigos dos anos escolares/séries da | |
| 212 | - * sequência. | |
| 213 | - * @param int $codEscola Código da escola. | |
| 214 | - * @param int $codCurso Código do curso. | |
| 85 | + * @param int $codSerie Código do ano escolar/série. | |
| 215 | 86 | * @return array (codSerie => nome) |
| 216 | 87 | */ |
| 217 | -function _anosEscolaresEscolaCurso(clsBanco $db, array $serie_sequencia, $codEscola, $codCurso) | |
| 88 | +function _mesmoAnoEscolar(clsBanco $db, $codEscola, $codSerie) | |
| 218 | 89 | { |
| 219 | 90 | $sql = sprintf('SELECT |
| 220 | 91 | s.cod_serie, |
| ... | ... | @@ -223,83 +94,60 @@ function _anosEscolaresEscolaCurso(clsBanco $db, array $serie_sequencia, $codEsc |
| 223 | 94 | pmieducar.serie s, |
| 224 | 95 | pmieducar.escola_serie es |
| 225 | 96 | WHERE |
| 226 | - es.ref_cod_escola = %d | |
| 227 | - AND s.cod_serie = es.ref_cod_serie | |
| 228 | - AND s.ref_cod_curso = %d | |
| 229 | - AND s.ativo = 1', | |
| 230 | - $codEscola, $codCurso | |
| 231 | - ); | |
| 232 | - | |
| 233 | - if (is_array($serie_sequencia)) { | |
| 234 | - foreach ($serie_sequencia as $series) | |
| 235 | - $sql .= sprintf(' AND s.cod_serie != %d ', $series); | |
| 236 | - } | |
| 237 | - | |
| 238 | - $sql .= ' | |
| 97 | + s.cod_serie = es.ref_cod_serie | |
| 98 | + AND es.ref_cod_escola = %d | |
| 99 | + AND es.ativo = 1 | |
| 100 | + AND s.cod_serie = %d | |
| 101 | + AND s.ativo = 1 | |
| 239 | 102 | ORDER BY |
| 240 | - s.nm_serie ASC'; | |
| 241 | - | |
| 242 | - $db->Consulta($sql); | |
| 243 | - | |
| 244 | - $lst_serie = array(); | |
| 245 | - if ($db->numLinhas()) { | |
| 246 | - while ($db->ProximoRegistro()) { | |
| 247 | - list($cod, $nome) = $db->Tupla(); | |
| 248 | - $lst_serie[$cod] = $nome; | |
| 249 | - } | |
| 250 | - } | |
| 103 | + s.nm_serie ASC', | |
| 104 | + $codEscola, $codSerie | |
| 105 | + ); | |
| 251 | 106 | |
| 252 | - return $lst_serie; | |
| 107 | + return _getAnoEscolar($db, $sql); | |
| 253 | 108 | } |
| 254 | 109 | |
| 255 | 110 | /** |
| 256 | - * Retorna os anos escolares da sequência. | |
| 111 | + * Retorna os anos escolares/séries da sequência de série de uma escola. | |
| 257 | 112 | * |
| 258 | 113 | * @param clsBanco $db |
| 259 | - * @param int $codSerie Código do ano escolar/série. | |
| 114 | + * @param int $codEscola Código da escola. | |
| 115 | + * @param int $codSerie Código do ano escolar/série. | |
| 260 | 116 | * @return array (codSerie => nome) |
| 261 | 117 | */ |
| 262 | -function _anoEscolarSequencia(clsBanco $db, $codSerie) | |
| 118 | +function _anoEscolarSequencia(clsBanco $db, $codEscola, $codSerie) | |
| 263 | 119 | { |
| 264 | 120 | $sql = sprintf('SELECT |
| 265 | 121 | s.cod_serie, |
| 266 | 122 | s.nm_serie |
| 267 | 123 | FROM |
| 268 | 124 | pmieducar.serie s, |
| 269 | - pmieducar.sequencia_serie ss | |
| 125 | + pmieducar.sequencia_serie ss, | |
| 126 | + pmieducar.escola_serie es | |
| 270 | 127 | WHERE |
| 271 | - ss.ref_serie_origem = %d | |
| 272 | - AND ss.ref_serie_destino = s.cod_serie | |
| 128 | + ss.ref_serie_destino = s.cod_serie | |
| 129 | + AND s.cod_serie = es.ref_cod_serie | |
| 130 | + AND es.ref_cod_escola = %d | |
| 131 | + AND es.ativo = 1 | |
| 132 | + AND ss.ref_serie_origem = %d | |
| 273 | 133 | AND ss.ativo = 1 |
| 274 | 134 | ORDER BY |
| 275 | 135 | s.nm_serie ASC', |
| 276 | - $codSerie | |
| 136 | + $codEscola, $codSerie | |
| 277 | 137 | ); |
| 278 | 138 | |
| 279 | - // Lista série sequência | |
| 280 | - $db->Consulta($sql); | |
| 281 | - | |
| 282 | - $lst_serie = array(); | |
| 283 | - if ($db->numLinhas()) { | |
| 284 | - while ($db->ProximoRegistro()) { | |
| 285 | - list($cod, $nome) = $db->Tupla(); | |
| 286 | - $lst_serie[$cod] = $nome; | |
| 287 | - } | |
| 288 | - } | |
| 289 | - | |
| 290 | - return $lst_serie; | |
| 139 | + return _getAnoEscolar($db, $sql); | |
| 291 | 140 | } |
| 292 | 141 | |
| 293 | 142 | /** |
| 294 | - * Retorna os anos escolares/série do curso de uma escola e instituição. | |
| 143 | + * Retorna os anos escolares/série do curso de uma escola. | |
| 295 | 144 | * |
| 296 | - * @param clsBanco $db | |
| 297 | - * @param int $codEscola Código da escola. | |
| 298 | - * @param int $codCurso Código do curso. | |
| 299 | - * @param int $codInstituicao Código da instituição. | |
| 300 | - * @return array (codSerie => nome) | |
| 145 | + * @param clsBanco $db | |
| 146 | + * @param int $codEscola Código da escola. | |
| 147 | + * @param int $codCurso Código do curso. | |
| 148 | + * @return array (codSerie => nome) | |
| 301 | 149 | */ |
| 302 | -function _anoEscolarEscolaCurso(clsBanco $db, $codEscola, $codCurso, $codInstituicao) | |
| 150 | +function _anoEscolarEscolaCurso(clsBanco $db, $codEscola, $codCurso) | |
| 303 | 151 | { |
| 304 | 152 | $sql = sprintf('SELECT |
| 305 | 153 | s.cod_serie, |
| ... | ... | @@ -311,36 +159,28 @@ function _anoEscolarEscolaCurso(clsBanco $db, $codEscola, $codCurso, $codInstitu |
| 311 | 159 | WHERE |
| 312 | 160 | es.ref_cod_escola = %d |
| 313 | 161 | AND es.ref_cod_serie = s.cod_serie |
| 162 | + AND es.ativo = 1 | |
| 163 | + AND s.ref_cod_curso = c.cod_curso | |
| 314 | 164 | AND s.ativo = 1 |
| 315 | 165 | AND c.cod_curso = %d |
| 316 | - AND s.ref_cod_curso = c.cod_curso | |
| 317 | - AND c.ref_cod_instituicao = %d | |
| 318 | 166 | ORDER BY |
| 319 | 167 | s.nm_serie ASC', |
| 320 | - $codEscola, $codCurso, $codInstituicao | |
| 168 | + $codEscola, $codCurso | |
| 321 | 169 | ); |
| 322 | 170 | |
| 323 | - $db->Consulta($sql); | |
| 324 | - | |
| 325 | - $resultado = array(); | |
| 326 | - if ($db->numLinhas()) { | |
| 327 | - while ($db->ProximoRegistro()) { | |
| 328 | - list($cod, $nome) = $db->Tupla(); | |
| 329 | - $resultado[$cod] = $nome; | |
| 330 | - } | |
| 331 | - } | |
| 332 | - | |
| 333 | - return $resultado; | |
| 171 | + return _getAnoEscolar($db, $sql); | |
| 334 | 172 | } |
| 335 | 173 | |
| 174 | +$resultado = array(); | |
| 175 | + | |
| 336 | 176 | if (is_numeric($_GET['alu']) && is_numeric($_GET['ins']) && |
| 337 | 177 | is_numeric($_GET['cur']) && is_numeric( $_GET['esc'])) { |
| 338 | 178 | |
| 339 | 179 | $sql = sprintf('SELECT |
| 340 | - m.cod_matricula, | |
| 341 | - m.ref_ref_cod_escola, | |
| 342 | - m.ref_cod_curso, | |
| 343 | - m.ref_ref_cod_serie, | |
| 180 | + m.cod_matricula AS cod_matricula, | |
| 181 | + m.ref_ref_cod_escola AS cod_escola, | |
| 182 | + m.ref_cod_curso AS cod_curso, | |
| 183 | + m.ref_ref_cod_serie AS cod_serie, | |
| 344 | 184 | m.ano, |
| 345 | 185 | eal.ano AS ano_letivo, |
| 346 | 186 | c.padrao_ano_escolar, |
| ... | ... | @@ -388,218 +228,58 @@ if (is_numeric($_GET['alu']) && is_numeric($_GET['ins']) && |
| 388 | 228 | $db = new clsBanco(); |
| 389 | 229 | $db->Consulta($sql); |
| 390 | 230 | |
| 391 | - $resultado = array(); | |
| 392 | - | |
| 393 | - // caso o aluno nao tenha nenhuma matricula em determinada instituicao | |
| 394 | - if (! $db->numLinhas()) { | |
| 395 | - $resultado = _anoEscolarEscolaCurso($db, $_GET['esc'], $_GET['cur'], $_GET['ins']); | |
| 231 | + $matriculas = array(); | |
| 232 | + while ($db->ProximoRegistro()) { | |
| 233 | + $tupla = $db->Tupla(); | |
| 234 | + $matriculas[$tupla['cod_matricula']] = $tupla; | |
| 396 | 235 | } |
| 397 | - // Caso o aluno tenha matrÃcula(s) em determinada Instituição | |
| 398 | - else { | |
| 399 | - $db2 = new clsBanco(); | |
| 400 | 236 | |
| 401 | - while ($db->ProximoRegistro()) { | |
| 402 | - $lst_serie = array(); | |
| 237 | + $codEscola = $_GET['esc']; | |
| 238 | + $codCurso = $_GET['cur']; | |
| 403 | 239 | |
| 404 | - list($matricula, $escola, $curso, $serie, $ano, $ano_letivo, | |
| 405 | - $padrao_ano_escolar, $aprovado, $transferencia_int, | |
| 406 | - $transferencia_ext) = $db->Tupla(); | |
| 240 | + if (count($matriculas)) { | |
| 241 | + $cursos = _createArrayFromIndex($matriculas, 'cod_curso'); | |
| 407 | 242 | |
| 408 | - // Caso o aluno tenha alguma solicitação de transferência externa em | |
| 409 | - // aberto, libera todas as séries. | |
| 410 | - // @transferencia{ | |
| 411 | - if ($transferencia_ext) { | |
| 412 | - $resultado = _anoEscolarEscolaCurso($db2, $_GET['esc'], $_GET['cur'], $_GET['ins']); | |
| 413 | - break; | |
| 414 | - } | |
| 415 | - // }@transferencia | |
| 416 | - | |
| 417 | - // @escola{ | |
| 418 | - if ($escola == $_GET['esc']) { | |
| 419 | - | |
| 420 | - // @curso{ | |
| 421 | - // Curso ao qual está matriculado é igual ao escolhido. | |
| 422 | - if ($curso == $_GET['cur']) { | |
| 423 | - | |
| 424 | - // @reprovado{ | |
| 425 | - // Situação reprovado. | |
| 426 | - // Ano letivo da escola maior que ano da matrÃcula OU não padrão. | |
| 427 | - if (App_Model_MatriculaSituacao::REPROVADO == $aprovado && | |
| 428 | - ($ano_letivo > $ano || !$padrao_ano_escolar)) { | |
| 429 | - $lst_serie = _mesmoAnoEscolar($db2, $serie); | |
| 430 | - } | |
| 431 | - // }@reprovado | |
| 432 | - | |
| 433 | - // @aprovado{ | |
| 434 | - // Situação aprovado. | |
| 435 | - // Ano letivo da escola maior que ano da matrÃcula OU não padrão. | |
| 436 | - elseif (App_Model_MatriculaSituacao::APROVADO == $aprovado && | |
| 437 | - ($ano_letivo > $ano || !$padrao_ano_escolar)) { | |
| 438 | - $lst_serie = _anoEscolarSequencia($db2, $serie); | |
| 439 | - } | |
| 440 | - // }@aprovado | |
| 441 | - } | |
| 442 | - // }@curso | |
| 243 | + // Mesmo curso? | |
| 244 | + if (in_array($codCurso, array_keys($cursos))) { | |
| 245 | + // Matrícula do curso. | |
| 246 | + $matricula = $matriculas[$cursos[$codCurso]]; | |
| 443 | 247 | |
| 444 | - // @curso-diferente{ | |
| 445 | - // Curso matriculado diferente do curso escolhido. | |
| 446 | - else { | |
| 447 | - // O curso é diferente mas o ano escolar/série faz parte da sequência. | |
| 448 | - // Isso se torna verdadeiro caso as séries sejam listadas no primeiro | |
| 449 | - // IF @aprovado. | |
| 450 | - | |
| 451 | - // @aprovado{ | |
| 452 | - // Ano letivo da escola maior que ano da matrÃcula OU curso não padrão. | |
| 453 | - if (App_Model_MatriculaSituacao::APROVADO == $aprovado && | |
| 454 | - ($ano_letivo > $ano || !$padrao_ano_escolar)) { | |
| 455 | - // Lista anos escolares (séries) da sequência. | |
| 456 | - $lst_serie = _anosEscolaresSequenciaCurso($db2, $serie, $_GET['cur']); | |
| 457 | - } | |
| 458 | - // }@aprovado | |
| 459 | - | |
| 460 | - $situacoes = array( | |
| 461 | - App_Model_MatriculaSituacao::APROVADO, | |
| 462 | - App_Model_MatriculaSituacao::REPROVADO, | |
| 463 | - App_Model_MatriculaSituacao::EM_ANDAMENTO | |
| 464 | - ); | |
| 465 | - | |
| 466 | - // O curso é diferente e não faz parte da sequência. | |
| 467 | - // @emAndamento{ | |
| 468 | - if (in_array($aprovado, $situacoes)) { | |
| 469 | - // Lista os anos escolares/séries da sequência. | |
| 470 | - $lst_serie = _sequencias($db2, $serie, $_GET['esc'], $_GET['cur']); | |
| 471 | - } | |
| 472 | - // }@emAndamento | |
| 473 | - } | |
| 474 | - // }@curso-diferente | |
| 248 | + // Matrícula reprovada, retorna o mesmo ano escolar da matrícula para a escola selecionada. | |
| 249 | + if (App_Model_MatriculaSituacao::REPROVADO == $matricula['aprovado']) { | |
| 250 | + $resultado = _mesmoAnoEscolar($db, $codEscola, $matricula['cod_serie']); | |
| 475 | 251 | } |
| 476 | - // }@escola | |
| 477 | - | |
| 478 | - // @escolaDiferente{ | |
| 479 | - elseif (($escola != $_GET['esc']) && ($transferencia_int == 1)) { | |
| 480 | - | |
| 481 | - // Curso matriculado igual ao curso escolhido. | |
| 482 | - // @curso{ | |
| 483 | - if ($curso == $_GET['cur']) { | |
| 484 | - | |
| 485 | - // Reprovado ou em andamento. | |
| 486 | - $situacoes = array( | |
| 487 | - App_Model_MatriculaSituacao::REPROVADO, | |
| 488 | - App_Model_MatriculaSituacao::EM_ANDAMENTO | |
| 489 | - ); | |
| 490 | - | |
| 491 | - // @emAndamento{ | |
| 492 | - if (in_array($aprovado, $situacoes)) { | |
| 493 | - // Lista a mesma série. | |
| 494 | - $lst_serie = _mesmoAnoEscolar($db2, $serie); | |
| 495 | - } | |
| 496 | - // }@emAndamento | |
| 497 | - | |
| 498 | - // @aprovado{ | |
| 499 | - elseif (App_Model_MatriculaSituacao::APROVADO == $aprovado) { | |
| 500 | - // Lista série sequência | |
| 501 | - $lst_serie = _anoEscolarSequencia($db2, $serie); | |
| 502 | - } | |
| 503 | - // }@aprovado | |
| 504 | - } | |
| 505 | - // }@curso | |
| 506 | 252 | |
| 507 | - // Curso matriculado diferente do curso escolhido. | |
| 508 | - // @cursoDiferente{ | |
| 509 | - else { | |
| 510 | - | |
| 511 | - // Curso é diferente mas faz parte da sequência. | |
| 512 | - // @aprovado{ | |
| 513 | - if ($aprovado == 1) { | |
| 514 | - // Lista anos escolares (séries) da sequência. | |
| 515 | - $lst_serie = _anosEscolaresSequenciaCurso($db2, $serie, $_GET['cur']); | |
| 516 | - } | |
| 517 | - // }@aprovado | |
| 518 | - | |
| 519 | - $situacoes = array( | |
| 520 | - App_Model_MatriculaSituacao::APROVADO, | |
| 521 | - App_Model_MatriculaSituacao::REPROVADO, | |
| 522 | - App_Model_MatriculaSituacao::EM_ANDAMENTO | |
| 523 | - ); | |
| 524 | - | |
| 525 | - // Curso é diferente e não faz parte da sequência. | |
| 526 | - // @emAndamento{ | |
| 527 | - if (in_array($aprovado, $situacoes)) { | |
| 528 | - // Lista os anos escolares/séries da sequência. | |
| 529 | - $lst_serie = _sequencias($db2, $serie, $_GET['esc'], $_GET['cur']); | |
| 530 | - } | |
| 531 | - // }@emAndamento | |
| 532 | - | |
| 533 | - } | |
| 534 | - // }@cursoDiferente | |
| 253 | + // Matrícula aprovada, retorna os anos escolares da sequência de série para a escola selecionada. | |
| 254 | + elseif (App_Model_MatriculaSituacao::APROVADO == $matricula['aprovado']) { | |
| 255 | + $resultado = _anoEscolarSequencia($db, $codEscola, $matricula['cod_serie']); | |
| 535 | 256 | } |
| 536 | - // }@escolaDiferente | |
| 537 | - | |
| 538 | - // @escolaDiferenteNaoTransferencia | |
| 539 | - elseif ($escola != $_GET['esc'] && !$transferencia_int) { | |
| 540 | - | |
| 541 | - // @cursoDiferente | |
| 542 | - // Curso matriculado diferente do curso escolhido. | |
| 543 | - if ($curso != $_GET['cur']) { | |
| 544 | - | |
| 545 | - // Situações aprovado e reprovado. | |
| 546 | - $situacoes = array( | |
| 547 | - App_Model_MatriculaSituacao::APROVADO, | |
| 548 | - App_Model_MatriculaSituacao::REPROVADO | |
| 549 | - ); | |
| 550 | - | |
| 551 | - // @aprovado{ | |
| 552 | - if (in_array($aprovado, $situacoes)) { | |
| 553 | - // Lista os anos escolares/séries da sequência. | |
| 554 | - $lst_serie = _sequencias($db2, $serie, $_GET['esc'], $_GET['cur']); | |
| 555 | - } | |
| 556 | - // }@aprovado | |
| 557 | 257 | |
| 258 | + // Matrícula em andamento | |
| 259 | + elseif (App_Model_MatriculaSituacao::EM_ANDAMENTO == $matricula['aprovado']) { | |
| 260 | + // Transferência interna, retorna o mesmo ano escolar da matrícula para a escola selecionada. | |
| 261 | + if (1 == $matricula['transferencia_int']) { | |
| 262 | + $resultado = _mesmoAnoEscolar($db, $codEscola, $matricula['cod_serie']); | |
| 558 | 263 | } |
| 559 | - // }@cursoDiferente | |
| 560 | - | |
| 561 | - // @cursoIgual{ | |
| 562 | - else { | |
| 563 | - | |
| 564 | - // Curso matriculado igual ao curso escolhido. | |
| 565 | - if ($curso == $_GET['cur']) { | |
| 566 | 264 | |
| 567 | - // Situação reprovado ou tranferência. | |
| 568 | - // @reprovado{ | |
| 569 | - if ($aprovado == 2 || $transferencia_int == 1) { | |
| 570 | - // Lista a mesma série. | |
| 571 | - $lst_serie = _mesmoAnoEscolar($db2, $serie); | |
| 572 | - } | |
| 573 | - // }@reprovado | |
| 574 | - | |
| 575 | - // Situação aprovado | |
| 576 | - // @aprovado{ | |
| 577 | - elseif ($aprovado == 1) { | |
| 578 | - // Lista ano escolar/série da sequência. | |
| 579 | - $lst_serie = _anoEscolarSequencia($db2, $serie); | |
| 580 | - } | |
| 581 | - // }@aprovado | |
| 582 | - | |
| 583 | - } | |
| 265 | + // Transferência externa, retorna os anos escolares da sequência de série para a escola selecionada. | |
| 266 | + elseif (1 == $matricula['transferencia_ext']) { | |
| 267 | + $retultado = _anoEscolarSequencia($db, $codEscola, $matricula['cod_serie']); | |
| 584 | 268 | } |
| 585 | - // }@cursoIgual | |
| 586 | - } | |
| 587 | - | |
| 588 | - if (empty($resultado)) { | |
| 589 | - $resultado = $lst_serie; | |
| 590 | - } | |
| 591 | - else { | |
| 592 | - $resultado = array_intersect_assoc($lst_serie,$resultado); | |
| 593 | 269 | } |
| 594 | - | |
| 270 | + } | |
| 271 | + else { | |
| 272 | + // Retorna todos os anos escolares para o curso em uma escola. | |
| 273 | + $resultado = _anoEscolarEscolaCurso($db, $codEscola, $codCurso); | |
| 595 | 274 | } |
| 596 | 275 | } |
| 276 | + else { | |
| 277 | + $resultado = _anoEscolarEscolaCurso($db, $codEscola, $codCurso); | |
| 278 | + } | |
| 597 | 279 | } |
| 598 | 280 | |
| 599 | -if (! empty($resultado)) { | |
| 600 | - foreach ($resultado as $cod => $nome) { | |
| 601 | - print sprintf('<serie cod_serie="%d">%s</serie>' . "\n", $cod, $nome); | |
| 602 | - } | |
| 281 | +foreach ($resultado as $cod => $nome) { | |
| 282 | + print sprintf('<serie cod_serie="%d">%s</serie>' . "\n", $cod, $nome); | |
| 603 | 283 | } |
| 604 | 284 | |
| 605 | 285 | print '</query>'; |
| 606 | 286 | \ No newline at end of file | ... | ... |