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,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!"; |