Commit 7343cfda029721cc395d1cee873715425c7e3221
1 parent
99815b08
Exists in
master
Atualizado relatório '''Espelho de Nota Bimestral''' para usar {{{Avaliacao_Serv…
…ice_Boletim}}} e classes dos módulos ComponenteCurricular e RegraAvaliacao
Showing
2 changed files
with
68 additions
and
80 deletions
Show diff stats
ieducar/intranet/educar_relatorio_alunos_nota_semestre_disc.php
| ... | ... | @@ -397,10 +397,13 @@ function getModulos_XML(xml) |
| 397 | 397 | var campoAno = document.getElementById('ano').value; |
| 398 | 398 | |
| 399 | 399 | campoModulo.length = 1; |
| 400 | - campoModulo.options[0] = new Option('Selecione um módulo', '', false, false); | |
| 400 | + campoModulo.options[0] = new Option('Selecione um Módulo', '', false, false); | |
| 401 | 401 | |
| 402 | 402 | for (var j = 0; j < modulos.length; j++) { |
| 403 | - campoModulo.options[campoModulo.options.length] = new Option( modulos[j].firstChild.nodeValue, modulos[j].getAttribute('cod_modulo') + "-" +modulos[j].getAttribute('sequencial') , false, false ); | |
| 403 | + campoModulo.options[campoModulo.options.length] = new Option( | |
| 404 | + modulos[j].firstChild.nodeValue, modulos[j].getAttribute('cod_modulo') + "-" + modulos[j].getAttribute('sequencial'), | |
| 405 | + false, false | |
| 406 | + ); | |
| 404 | 407 | } |
| 405 | 408 | |
| 406 | 409 | if (campoModulo.length == 1) { | ... | ... |
ieducar/intranet/educar_relatorio_alunos_nota_semestre_disc_proc.php
| ... | ... | @@ -34,6 +34,9 @@ require_once 'include/clsBanco.inc.php'; |
| 34 | 34 | require_once 'include/pmieducar/geral.inc.php' ; |
| 35 | 35 | require_once 'include/relatorio.inc.php'; |
| 36 | 36 | |
| 37 | +require_once 'Avaliacao/Service/Boletim.php'; | |
| 38 | +require_once 'ComponenteCurricular/Model/ComponenteDataMapper.php'; | |
| 39 | + | |
| 37 | 40 | /** |
| 38 | 41 | * clsIndexBase class. |
| 39 | 42 | * |
| ... | ... | @@ -69,6 +72,8 @@ class indice extends clsCadastro |
| 69 | 72 | { |
| 70 | 73 | var $pessoa_logada; |
| 71 | 74 | |
| 75 | + var $regra = NULL; | |
| 76 | + | |
| 72 | 77 | var $ref_cod_instituicao; |
| 73 | 78 | var $ref_cod_escola; |
| 74 | 79 | var $ref_cod_serie; |
| ... | ... | @@ -76,6 +81,8 @@ class indice extends clsCadastro |
| 76 | 81 | var $ref_cod_curso; |
| 77 | 82 | var $ref_cod_modulo; |
| 78 | 83 | |
| 84 | + var $tipo; | |
| 85 | + | |
| 79 | 86 | var $ano; |
| 80 | 87 | |
| 81 | 88 | var $is_padrao; |
| ... | ... | @@ -138,6 +145,10 @@ class indice extends clsCadastro |
| 138 | 145 | $det = $obj_pessoa->detalhe(); |
| 139 | 146 | $this->nm_professor = $det['nome']; |
| 140 | 147 | |
| 148 | + // | |
| 149 | + $regraMapper = new RegraAvaliacao_Model_RegraDataMapper(); | |
| 150 | + $this->regra = $regraMapper->find($det_serie['regra_avaliacao_id']); | |
| 151 | + | |
| 141 | 152 | if (!$lista_calendario) { |
| 142 | 153 | echo '<script> |
| 143 | 154 | alert("Escola não possui calendário definido para este ano"); |
| ... | ... | @@ -156,15 +167,12 @@ class indice extends clsCadastro |
| 156 | 167 | $det_curso = $obj_curso->detalhe(); |
| 157 | 168 | $this->nm_curso = $det_curso['nm_curso']; |
| 158 | 169 | |
| 159 | - $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($det_curso['ref_cod_tipo_avaliacao']); | |
| 160 | - $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe(); | |
| 161 | - $conceitual = $det_tipo_avaliacao['conceitual']; | |
| 162 | - | |
| 163 | 170 | // @todo Ano 2007 porque? Remover |
| 164 | 171 | if ($this->is_padrao || $this->ano == 2007) { |
| 165 | 172 | $this->semestre = NULL; |
| 166 | 173 | } |
| 167 | 174 | |
| 175 | + // Seleciona os alunos da turma | |
| 168 | 176 | $obj_matricula_turma = new clsPmieducarMatriculaTurma(); |
| 169 | 177 | $obj_matricula_turma->setOrderby('nome_ascii'); |
| 170 | 178 | $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, |
| ... | ... | @@ -173,38 +181,47 @@ class indice extends clsCadastro |
| 173 | 181 | $this->ref_cod_instituicao, NULL, NULL, array(1, 2, 3), NULL, NULL, |
| 174 | 182 | $this->ano, NULL, NULL, NULL, NULL, TRUE, NULL, NULL, TRUE, NULL, $this->semestre); |
| 175 | 183 | |
| 176 | - $obj_disciplinas = new clsPmieducarEscolaSerieDisciplina(); | |
| 177 | - $lst_disciplinas = $obj_disciplinas->lista($this->ref_cod_serie, | |
| 178 | - $this->ref_cod_escola, NULL, 1); | |
| 184 | + $array_disc = $array_cab = array(); | |
| 185 | + if ($this->regra->get('tipoPresenca') == RegraAvaliacao_Model_TipoPresenca::GERAL) { | |
| 186 | + $array_disc = $array_cab = array("FALTAS"); | |
| 187 | + } | |
| 188 | + else { | |
| 189 | + $obj_disciplinas = new clsPmieducarEscolaSerieDisciplina(); | |
| 190 | + $lst_disciplinas = $obj_disciplinas->lista($this->ref_cod_serie, | |
| 191 | + $this->ref_cod_escola, NULL, 1); | |
| 192 | + } | |
| 193 | + | |
| 194 | + if ($lst_matricula_turma) { | |
| 195 | + $relatorio = new relatorios( | |
| 196 | + "Espelho de Notas Bimestral {$this->ref_cod_modulo}º Bimestre Ano {$this->ano}", | |
| 197 | + 210, FALSE, "Espelho de Notas Bimestral", "A4", | |
| 198 | + "{$this->nm_instituicao}\n{$this->nm_escola}\n{$this->nm_curso}\n{$this->nm_serie} - Turma: $this->nm_turma ".date("d/m/Y") | |
| 199 | + ); | |
| 179 | 200 | |
| 180 | - if($lst_matricula_turma) { | |
| 181 | - $relatorio = new relatorios("Espelho de Notas Bimestral {$this->ref_cod_modulo}º Bimestre Ano {$this->ano}", 210, false, "Espelho de Notas Bimestral", "A4", "{$this->nm_instituicao}\n{$this->nm_escola}\n{$this->nm_curso}\n{$this->nm_serie} - Turma: $this->nm_turma ".date("d/m/Y")); | |
| 182 | 201 | $relatorio->setMargem(20, 20, 50, 50); |
| 183 | 202 | $relatorio->exibe_produzido_por = FALSE; |
| 184 | 203 | |
| 185 | - $db = new clsBanco(); | |
| 204 | + // Componente | |
| 205 | + $componenteMapper = new ComponenteCurricular_Model_ComponenteDataMapper(); | |
| 186 | 206 | |
| 187 | - foreach ($lst_disciplinas as $disciplina) { | |
| 188 | - $obj_disciplina = new clsPmieducarDisciplina($disciplina['ref_cod_disciplina']); | |
| 189 | - $det_disciplina = $obj_disciplina->detalhe(); | |
| 207 | + if (0 == count($array_disc)) { | |
| 208 | + foreach ($lst_disciplinas as $disciplina) { | |
| 209 | + $componente = $componenteMapper->find($disciplina['ref_cod_disciplina']); | |
| 190 | 210 | |
| 191 | - $array_disc[$det_disciplina['cod_disciplina']] = ($det_disciplina['abreviatura']); | |
| 192 | - $array_cab[] = str2upper($det_disciplina['abreviatura']); | |
| 211 | + $array_disc[$componente->id] = $componente; | |
| 212 | + $array_cab[] = str2upper($componente->abreviatura); | |
| 213 | + } | |
| 214 | + | |
| 215 | + asort($array_disc); | |
| 216 | + sort($array_cab); | |
| 193 | 217 | } |
| 194 | 218 | |
| 195 | - asort($array_disc); | |
| 196 | - sort($array_cab); | |
| 197 | - $array_cab = array_merge(array( "Cód.", "Nome do Aluno" ),$array_cab); | |
| 219 | + $array_cab = array_merge(array('Cód.', 'Nome do Aluno'), $array_cab); | |
| 198 | 220 | |
| 199 | 221 | $divisoes = array(40, 165); |
| 200 | 222 | $divisoes_texto = array(40, 165); |
| 201 | 223 | |
| 202 | - if (!$conceitual) { | |
| 203 | - $tamanho_divisao = 32 + (10 - count($array_disc)) * 5; | |
| 204 | - } | |
| 205 | - else { | |
| 206 | - $tamanho_divisao = 23 + (15 - count($array_disc)) * 5; | |
| 207 | - } | |
| 224 | + $tamanho_divisao = 32 + (10 - count($array_disc)) * 5; | |
| 208 | 225 | |
| 209 | 226 | for ($ct = 0; $ct < 20; $ct++) { |
| 210 | 227 | $divisoes[] = $tamanho_divisao; |
| ... | ... | @@ -212,60 +229,29 @@ class indice extends clsCadastro |
| 212 | 229 | } |
| 213 | 230 | |
| 214 | 231 | $relatorio->novalinha($array_cab, 0, 16, TRUE, 'arial', $divisoes, |
| 215 | - '#515151', '#d3d3d3', '#FFFFFF', FALSE, TRUE); | |
| 232 | + '#515151', '#D3D3D3', '#FFFFFF', FALSE, TRUE); | |
| 216 | 233 | |
| 217 | - if(!$conceitual) { | |
| 218 | - $campo_nota = 'COALESCE(nota, valor) '; | |
| 219 | - } | |
| 220 | - else { | |
| 221 | - $campo_nota = 'nome '; | |
| 222 | - } | |
| 234 | + foreach ($lst_matricula_turma as $matricula) { | |
| 235 | + $boletim = new Avaliacao_Service_Boletim(array( | |
| 236 | + 'matricula' => $matricula['ref_cod_matricula'], | |
| 237 | + 'ComponenteDataMapper' => $componenteMapper, | |
| 238 | + 'RegraDataMapper' => $regraMapper | |
| 239 | + )); | |
| 223 | 240 | |
| 224 | - if ($conceitual) { | |
| 225 | - $tam_fonte = 8; | |
| 226 | - $tam_linha = 11; | |
| 227 | - } | |
| 228 | - else { | |
| 229 | 241 | $tam_fonte = NULL; |
| 230 | 242 | $tam_linha = 16; |
| 231 | - } | |
| 232 | 243 | |
| 233 | - foreach ($lst_matricula_turma as $matricula) { | |
| 234 | - $consulta = sprintf(" | |
| 235 | - SELECT | |
| 236 | - ref_cod_disciplina, | |
| 237 | - %s AS nota, | |
| 238 | - modulo | |
| 239 | - FROM | |
| 240 | - pmieducar.nota_aluno | |
| 241 | - LEFT OUTER JOIN | |
| 242 | - pmieducar.tipo_avaliacao_valores | |
| 243 | - ON ( | |
| 244 | - ref_ref_cod_tipo_avaliacao = ref_cod_tipo_avaliacao | |
| 245 | - AND ref_sequencial = sequencial | |
| 246 | - ) | |
| 247 | - WHERE | |
| 248 | - ref_cod_matricula = %d | |
| 249 | - AND ref_cod_escola = %d | |
| 250 | - AND ref_cod_serie = %d | |
| 251 | - AND modulo = %d | |
| 252 | - AND nota_aluno.ativo = 1 | |
| 253 | - GROUP BY | |
| 254 | - ref_cod_disciplina, | |
| 255 | - modulo, | |
| 256 | - %s | |
| 257 | - ORDER BY | |
| 258 | - ref_cod_disciplina ASC", $campo_nota, $matricula['ref_cod_matricula'], | |
| 259 | - $this->ref_cod_escola, $this->ref_cod_serie, $this->ref_cod_modulo, | |
| 260 | - $campo_nota); | |
| 261 | - | |
| 262 | - $db->Consulta($consulta); | |
| 263 | - | |
| 264 | - unset($notas); | |
| 265 | - | |
| 266 | - while ($db->ProximoRegistro()) { | |
| 267 | - $registro = $db->Tupla(); | |
| 268 | - $notas[$registro['ref_cod_disciplina']] = $registro['nota']; | |
| 244 | + $componentes = $boletim->getComponentes(); | |
| 245 | + | |
| 246 | + foreach ($array_disc as $cid => $componente) { | |
| 247 | + if (!in_array($cid, array_keys($componentes))) { | |
| 248 | + $notas[$cid] = 'D'; | |
| 249 | + $faltas[$cid] = 'D'; | |
| 250 | + continue; | |
| 251 | + } | |
| 252 | + | |
| 253 | + $notas[$cid] = $boletim->getNotaComponente($cid, $this->ref_cod_modulo); | |
| 254 | + $faltas[$cid] = $boletim->getFalta($this->ref_cod_modulo, $cid); | |
| 269 | 255 | } |
| 270 | 256 | |
| 271 | 257 | // @todo WTF?! |
| ... | ... | @@ -292,13 +278,12 @@ class indice extends clsCadastro |
| 292 | 278 | $array_val[] = $matricula['ref_cod_aluno']; |
| 293 | 279 | $array_val[] = $matricula['nome']; |
| 294 | 280 | |
| 295 | - foreach ($array_disc as $cod_disc => $disc) { | |
| 296 | - if (!$conceitual) { | |
| 297 | - $array_val[] = $notas[$cod_disc] ? | |
| 298 | - number_format($notas[$cod_disc], 2, '.', '') : $notas[$cod_disc]; | |
| 281 | + foreach ($array_disc as $cid => $disc) { | |
| 282 | + if ($this->tipo == 'n') { | |
| 283 | + $array_val[] = $notas[$cid]->notaArredondada; | |
| 299 | 284 | } |
| 300 | 285 | else { |
| 301 | - $array_val[] = $notas[$cod_disc]; | |
| 286 | + $array_val[] = $faltas[$cid]->quantidade; | |
| 302 | 287 | } |
| 303 | 288 | } |
| 304 | 289 | ... | ... |