Commit 22bad1ee84c8efbf07040c58bc607dd2f69a2ba6

Authored by Eriksen Costa
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[&#39;id_pessoa&#39;];
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[&#39;alu&#39;]) &amp;&amp; is_numeric($_GET[&#39;ins&#39;]) &amp;&amp;
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
... ...