Commit ac20311ca58fe63f2619d1c4fa24bd2d08b738cc

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

#15 by Eriksen: Corrigido bug que não listava os cursos de uma escola. Comentári…

…os no código foram acrescentados assim como reescrita das SQL com sprintf()


Showing 1 changed file with 72 additions and 33 deletions   Show diff stats
ieducar/intranet/educar_avancar_mod_cad.php
@@ -27,6 +27,7 @@ @@ -27,6 +27,7 @@
27 * @subpackage Matricula 27 * @subpackage Matricula
28 * @subpackage Rematricula 28 * @subpackage Rematricula
29 * @since Arquivo disponível desde a versão 1.0.0 29 * @since Arquivo disponível desde a versão 1.0.0
  30 + * @todo Refatorar a lógica de indice::Novo() para uma classe na camada de domínio
30 * @version $Id$ 31 * @version $Id$
31 */ 32 */
32 33
@@ -60,20 +61,23 @@ class indice extends clsCadastro @@ -60,20 +61,23 @@ class indice extends clsCadastro
60 61
61 function Gerar() 62 function Gerar()
62 { 63 {
63 - $instituicao_obrigatorio = true;  
64 - $escola_obrigatorio = true;  
65 - $curso_obrigatorio = true;  
66 - $escola_curso_serie_obrigatorio = true;  
67 - $turma_obrigatorio = true;  
68 - $get_escola = true;  
69 - $get_curso = true;  
70 - $get_escola_curso_serie = true;  
71 - $get_turma = true;  
72 - $get_cursos_nao_padrao = true; 64 + $instituicao_obrigatorio = TRUE;
  65 + $escola_obrigatorio = TRUE;
  66 + $curso_obrigatorio = TRUE;
  67 + $escola_curso_serie_obrigatorio = TRUE;
  68 + $turma_obrigatorio = TRUE;
  69 + $get_escola = TRUE;
  70 + $get_curso = TRUE;
  71 + $get_escola_curso_serie = TRUE;
  72 + $get_turma = TRUE;
  73 + $get_cursos_nao_padrao = FALSE;
73 74
74 include 'include/pmieducar/educar_campo_lista.php'; 75 include 'include/pmieducar/educar_campo_lista.php';
75 } 76 }
76 77
  78 + /**
  79 + * @todo Refatorar a lógica para uma classe na camada de domínio.
  80 + */
77 function Novo() 81 function Novo()
78 { 82 {
79 session_start(); 83 session_start();
@@ -83,51 +87,86 @@ class indice extends clsCadastro @@ -83,51 +87,86 @@ class indice extends clsCadastro
83 $db = new clsBanco(); 87 $db = new clsBanco();
84 $db2 = new clsBanco(); 88 $db2 = new clsBanco();
85 89
86 - $ano = $db2->CampoUnico("SELECT MAX(ano) FROM pmieducar.escola_ano_letivo  
87 - WHERE ref_cod_escola = {$this->ref_cod_escola} AND andamento = 1"); 90 + // Seleciona o maior ano letivo da escola em andamento
  91 + $ano = $db2->CampoUnico(sprintf("
  92 + SELECT MAX(ano) FROM pmieducar.escola_ano_letivo
  93 + WHERE ref_cod_escola = '%d' AND andamento = 1", $this->ref_cod_escola)
  94 + );
88 95
  96 + // Caso a escola não tenha um ano letivo, usa o ano da data do servidor web
89 if (! is_numeric($ano)) { 97 if (! is_numeric($ano)) {
90 - $ano = date("Y"); 98 + $ano = date('Y');
91 } 99 }
92 100
93 - // Aprovados  
94 - $db->Consulta("SELECT cod_matricula, ref_cod_aluno  
95 - FROM pmieducar.matricula m, pmieducar.matricula_turma  
96 - WHERE aprovado = '1' AND m.ativo = '1' AND ref_ref_cod_escola = '{$this->ref_cod_escola}' AND ref_ref_cod_serie='{$this->ref_ref_cod_serie}' AND ref_cod_curso = '$this->ref_cod_curso' AND cod_matricula = ref_cod_matricula AND ref_cod_turma = '$this->ref_cod_turma' "); 101 + // Seleciona todos os alunos que foram aprovados na turma/série/curso/escola informados
  102 + $db->Consulta(sprintf("
  103 + SELECT
  104 + cod_matricula, ref_cod_aluno
  105 + FROM
  106 + pmieducar.matricula m, pmieducar.matricula_turma
  107 + WHERE
  108 + aprovado = '1' AND m.ativo = '1' AND ref_ref_cod_escola = '%d' AND
  109 + ref_ref_cod_serie='%d' AND ref_cod_curso = '%d' AND
  110 + cod_matricula = ref_cod_matricula AND ref_cod_turma = '%d'",
  111 + $this->ref_cod_escola, $this->ref_ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_turma)
  112 + );
97 113
98 while ($db->ProximoRegistro()) { 114 while ($db->ProximoRegistro()) {
99 list($cod_matricula, $ref_cod_aluno) = $db->Tupla(); 115 list($cod_matricula, $ref_cod_aluno) = $db->Tupla();
100 - $prox_mod = $db2->campoUnico("SELECT ref_serie_destino FROM pmieducar.sequencia_serie WHERE ref_serie_origem = '{$this->ref_ref_cod_serie}' AND ativo = '1' "); 116 +
  117 + // Seleciona a série da sequência de séries
  118 + $prox_mod = $db2->campoUnico(sprintf(
  119 + "SELECT
  120 + ref_serie_destino
  121 + FROM
  122 + pmieducar.sequencia_serie
  123 + WHERE
  124 + ref_serie_origem = '%d' AND ativo = '1'", $this->ref_ref_cod_serie)
  125 + );
  126 +
  127 + // Seleciona o código do curso da série de sequência
  128 + $ref_cod_curso = $db2->CampoUnico(sprintf("SELECT ref_cod_curso FROM pmieducar.serie WHERE cod_serie = %d", $prox_mod));
101 129
102 if (is_numeric($prox_mod)) { 130 if (is_numeric($prox_mod)) {
103 - // Aqui localizar o próximo curso  
104 - $ref_cod_curso = $db2->CampoUnico("SELECT ref_cod_curso FROM pmieducar.serie WHERE cod_serie = {$prox_mod}");  
105 - $db2->Consulta("UPDATE pmieducar.matricula SET ultima_matricula = '0' WHERE cod_matricula = '$cod_matricula'"); 131 + // Atualiza a matrícula atual do aluno, para evitar que seja listada no cadastro deste
  132 + $db2->Consulta(sprintf("UPDATE pmieducar.matricula SET ultima_matricula = '0' WHERE cod_matricula = '%d'", $cod_matricula));
106 133
107 - $db2->Consulta(" 134 + // Cria uma nova matrícula
  135 + $db2->Consulta(sprintf("
108 INSERT INTO pmieducar.matricula 136 INSERT INTO pmieducar.matricula
109 (ref_ref_cod_escola, ref_ref_cod_serie, ref_usuario_cad, ref_cod_aluno, aprovado, data_cadastro, ano, ref_cod_curso, ultima_matricula) 137 (ref_ref_cod_escola, ref_ref_cod_serie, ref_usuario_cad, ref_cod_aluno, aprovado, data_cadastro, ano, ref_cod_curso, ultima_matricula)
110 VALUES 138 VALUES
111 - ('{$this->ref_cod_escola}', '$prox_mod', '{$this->pessoa_logada}', '$ref_cod_aluno', '3', 'NOW()', '$ano', '{$ref_cod_curso}', '1')  
112 - "); 139 + ('%d', '%d', '%d', '%d', '3', 'NOW()', '%d', '%d', '1')",
  140 + $this->ref_cod_escola, $prox_mod, $this->pessoa_logada, $ref_cod_aluno, $ano, $ref_cod_curso)
  141 + );
113 } 142 }
114 } 143 }
115 144
116 - // Reprovados  
117 - $db->Consulta("SELECT cod_matricula, ref_cod_aluno, ref_ref_cod_serie FROM pmieducar.matricula, pmieducar.matricula_turma WHERE aprovado = '2' AND ref_ref_cod_escola = '{$this->ref_cod_escola}' AND ref_ref_cod_serie='{$this->ref_ref_cod_serie}' AND cod_matricula = ref_cod_matricula AND ref_cod_turma = '$this->ref_cod_turma'");  
118 - 145 + // Seleciona todos os alunos que foram reprovados na turma/série/curso/escola informados
  146 + $db->Consulta(sprintf("
  147 + SELECT
  148 + cod_matricula, ref_cod_aluno, ref_ref_cod_serie
  149 + FROM
  150 + pmieducar.matricula, pmieducar.matricula_turma
  151 + WHERE
  152 + aprovado = '2' AND ref_ref_cod_escola = '%d' AND ref_ref_cod_serie='%d' AND cod_matricula = ref_cod_matricula AND ref_cod_turma = '%d'",
  153 + $this->ref_cod_escola, $this->ref_ref_cod_serie, $this->ref_cod_turma)
  154 + );
  155 +
  156 + // Cria uma nova matrícula para cada aluno reprovado na mesma série/curso/escola informados
119 while ($db->ProximoRegistro()) { 157 while ($db->ProximoRegistro()) {
120 list($cod_matricula, $ref_cod_aluno, $ref_cod_serie) = $db->Tupla(); 158 list($cod_matricula, $ref_cod_aluno, $ref_cod_serie) = $db->Tupla();
121 159
122 - $db2->Consulta("UPDATE pmieducar.matricula SET ultima_matricula = '0'  
123 - WHERE cod_matricula = '$cod_matricula'"); 160 + $db2->Consulta(sprintf("UPDATE pmieducar.matricula SET ultima_matricula = '0'
  161 + WHERE cod_matricula = '%d'", $cod_matricula));
124 162
125 - $db2->Consulta("  
126 - INSERT INTO pmieducar.matricula 163 + $db2->Consulta(
  164 + sprintf("INSERT INTO pmieducar.matricula
127 (ref_ref_cod_escola, ref_ref_cod_serie, ref_usuario_cad, ref_cod_aluno, aprovado, data_cadastro, ano, ref_cod_curso, ultima_matricula) 165 (ref_ref_cod_escola, ref_ref_cod_serie, ref_usuario_cad, ref_cod_aluno, aprovado, data_cadastro, ano, ref_cod_curso, ultima_matricula)
128 VALUES 166 VALUES
129 - ('{$this->ref_cod_escola}', '$ref_cod_serie', '{$this->pessoa_logada}', '$ref_cod_aluno', '3', 'NOW()', '$ano', '{$this->ref_cod_curso}', '1')  
130 - "); 167 + ('%d', '%d', '%d', '%d', '3', 'NOW()', '%d', '%d', '1')",
  168 + $this->ref_cod_escola, $ref_cod_serie, $this->pessoa_logada, $ref_cod_aluno, $ano, $this->ref_cod_curso)
  169 + );
131 } 170 }
132 171
133 $this->mensagem = "Rematrícula efetuada com sucesso!"; 172 $this->mensagem = "Rematrícula efetuada com sucesso!";