Commit ac20311ca58fe63f2619d1c4fa24bd2d08b738cc
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 | 27 | * @subpackage Matricula |
| 28 | 28 | * @subpackage Rematricula |
| 29 | 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 | 31 | * @version $Id$ |
| 31 | 32 | */ |
| 32 | 33 | |
| ... | ... | @@ -60,20 +61,23 @@ class indice extends clsCadastro |
| 60 | 61 | |
| 61 | 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 | 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 | 81 | function Novo() |
| 78 | 82 | { |
| 79 | 83 | session_start(); |
| ... | ... | @@ -83,51 +87,86 @@ class indice extends clsCadastro |
| 83 | 87 | $db = new clsBanco(); |
| 84 | 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 | 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 | 114 | while ($db->ProximoRegistro()) { |
| 99 | 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 | 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 | 136 | INSERT INTO pmieducar.matricula |
| 109 | 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 | 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 | 157 | while ($db->ProximoRegistro()) { |
| 120 | 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 | 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 | 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 | 172 | $this->mensagem = "Rematrícula efetuada com sucesso!"; | ... | ... |