Commit fad656b04202d240c880d1a291834b746327cc8a
1 parent
f376aeba
Exists in
master
Atualizado relatório '''Ata de Resultado Final''' para usar {{{Avaliacao_Service…
…_Boletim}}} e classes do módulo ComponenteCurricular e RegraAvaliacao
Showing
3 changed files
with
351 additions
and
545 deletions
Show diff stats
ieducar/intranet/educar_relatorio_ata_resultado_final_proc.php
| @@ -34,6 +34,9 @@ require_once 'include/clsBanco.inc.php'; | @@ -34,6 +34,9 @@ require_once 'include/clsBanco.inc.php'; | ||
| 34 | require_once 'include/pmieducar/geral.inc.php'; | 34 | require_once 'include/pmieducar/geral.inc.php'; |
| 35 | require_once 'include/clsPDF.inc.php'; | 35 | require_once 'include/clsPDF.inc.php'; |
| 36 | 36 | ||
| 37 | +require_once 'ComponenteCurricular/Model/AnoEscolarDataMapper.php'; | ||
| 38 | +require_once 'Avaliacao/Service/Boletim.php'; | ||
| 39 | + | ||
| 37 | /** | 40 | /** |
| 38 | * clsIndexBase class. | 41 | * clsIndexBase class. |
| 39 | * | 42 | * |
| @@ -69,6 +72,11 @@ class indice extends clsCadastro | @@ -69,6 +72,11 @@ class indice extends clsCadastro | ||
| 69 | { | 72 | { |
| 70 | var $pessoa_logada; | 73 | var $pessoa_logada; |
| 71 | 74 | ||
| 75 | + /** | ||
| 76 | + * @var RegraAvaliacao_Model_Regra | ||
| 77 | + */ | ||
| 78 | + var $regra = NULL; | ||
| 79 | + | ||
| 72 | var $ref_cod_instituicao; | 80 | var $ref_cod_instituicao; |
| 73 | var $ref_cod_escola; | 81 | var $ref_cod_escola; |
| 74 | var $ref_cod_serie; | 82 | var $ref_cod_serie; |
| @@ -76,7 +84,7 @@ class indice extends clsCadastro | @@ -76,7 +84,7 @@ class indice extends clsCadastro | ||
| 76 | var $ref_cod_curso; | 84 | var $ref_cod_curso; |
| 77 | var $ref_cod_turma; | 85 | var $ref_cod_turma; |
| 78 | 86 | ||
| 79 | - var $disciplinas = array(); | 87 | + var $componentes = array(); |
| 80 | 88 | ||
| 81 | var $ano; | 89 | var $ano; |
| 82 | var $nm_escola; | 90 | var $nm_escola; |
| @@ -92,9 +100,8 @@ class indice extends clsCadastro | @@ -92,9 +100,8 @@ class indice extends clsCadastro | ||
| 92 | var $campo_assinatura; | 100 | var $campo_assinatura; |
| 93 | var $total = 0; | 101 | var $total = 0; |
| 94 | 102 | ||
| 95 | - var $array_modulos = array(); | ||
| 96 | var $dias_letivos; | 103 | var $dias_letivos; |
| 97 | - var $falta_ch_globalizada; | 104 | + var $presencaGeral; |
| 98 | 105 | ||
| 99 | function renderHTML() | 106 | function renderHTML() |
| 100 | { | 107 | { |
| @@ -111,436 +118,280 @@ class indice extends clsCadastro | @@ -111,436 +118,280 @@ class indice extends clsCadastro | ||
| 111 | $fonte = 'arial'; | 118 | $fonte = 'arial'; |
| 112 | $corTexto = '#000000'; | 119 | $corTexto = '#000000'; |
| 113 | 120 | ||
| 114 | - if (is_numeric($this->ref_cod_instituicao) && is_numeric($this->ref_cod_escola) && | ||
| 115 | - is_numeric($this->ref_cod_curso) && is_numeric($this->ref_cod_serie) && | ||
| 116 | - is_numeric($this->ref_cod_turma) && is_numeric($this->ano)) | 121 | + if (!is_numeric($this->ref_cod_instituicao) || !is_numeric($this->ref_cod_escola) || |
| 122 | + !is_numeric($this->ref_cod_curso) || !is_numeric($this->ref_cod_serie) || | ||
| 123 | + !is_numeric($this->ref_cod_turma) || !is_numeric($this->ano)) | ||
| 117 | { | 124 | { |
| 118 | - $sql = " | ||
| 119 | - SELECT | ||
| 120 | - cod_matricula, | ||
| 121 | - aprovado, | ||
| 122 | - ref_ref_cod_serie, | ||
| 123 | - (SELECT | ||
| 124 | - nome | ||
| 125 | - FROM | ||
| 126 | - pmieducar.aluno a, | ||
| 127 | - cadastro.pessoa p | ||
| 128 | - WHERE | ||
| 129 | - a.cod_aluno = m.ref_cod_aluno | ||
| 130 | - AND p.idpes = a.ref_idpes | ||
| 131 | - ) as nome | ||
| 132 | - FROM | ||
| 133 | - pmieducar.matricula m, | ||
| 134 | - pmieducar.matricula_turma mt | ||
| 135 | - WHERE | ||
| 136 | - mt.ref_cod_turma = {$this->ref_cod_turma} | ||
| 137 | - AND mt.ref_cod_matricula = m.cod_matricula | ||
| 138 | - AND m.ativo = 1 | ||
| 139 | - AND mt.ativo = 1 | ||
| 140 | - AND aprovado IN (1, 2) | ||
| 141 | - AND ano = {$this->ano} | ||
| 142 | - ORDER BY | ||
| 143 | - ref_ref_cod_serie, nome"; | ||
| 144 | - | ||
| 145 | - //verificar se a turma é multiseriada | ||
| 146 | - $obj_turma = new clsPmieducarTurma($this->ref_cod_turma); | ||
| 147 | - $det_turma = $obj_turma->detalhe(); | ||
| 148 | - $ref_ref_cod_serie_mult = $det_turma['ref_ref_cod_serie_mult']; | ||
| 149 | - | ||
| 150 | - $db = new clsBanco(); | ||
| 151 | - $db->Consulta($sql); | ||
| 152 | - | ||
| 153 | - if ($db->numLinhas()) { | ||
| 154 | - $numAlunos = $db->numLinhas(); | ||
| 155 | - | ||
| 156 | - $obj_instituicao = new clsPmieducarInstituicao($this->ref_cod_instituicao); | ||
| 157 | - $det_instituicao = $obj_instituicao->detalhe(); | ||
| 158 | - $this->nm_instituicao = $det_instituicao['nm_instituicao']; | ||
| 159 | - | ||
| 160 | - $obj_escola = new clsPmieducarEscola($this->ref_cod_escola); | ||
| 161 | - $det_escola = $obj_escola->detalhe(); | ||
| 162 | - $this->nm_escola = $det_escola['nome']; | ||
| 163 | - | ||
| 164 | - $obj_escola_serie_disciplina = new clsPmieducarEscolaSerieDisciplina(); | ||
| 165 | - $obj_escola_serie_disciplina->setCamposLista('ref_cod_disciplina'); | ||
| 166 | - $lst_escola_serie_disciplina = $obj_escola_serie_disciplina->lista( | ||
| 167 | - $this->ref_cod_serie, $this->ref_cod_escola, NULL, 1); | ||
| 168 | - | ||
| 169 | - foreach ($lst_escola_serie_disciplina as $escola_serie_disciplina) { | ||
| 170 | - $obj_disciplina = new clsPmieducarDisciplina($escola_serie_disciplina); | ||
| 171 | - $obj_disciplina->setCamposLista('cod_disciplina, carga_horaria, nm_disciplina, abreviatura'); | ||
| 172 | - $det_disciplina = $obj_disciplina->detalhe(); | ||
| 173 | - | ||
| 174 | - $this->disciplinas[$det_disciplina['cod_disciplina']]['nm_disciplina'] = $det_disciplina['nm_disciplina']; | ||
| 175 | - $this->disciplinas[$det_disciplina['cod_disciplina']]['abreviatura'] = $det_disciplina['abreviatura']; | ||
| 176 | - $this->disciplinas[$det_disciplina['cod_disciplina']]['carga_horaria'] = $det_disciplina['carga_horaria']; | ||
| 177 | - } | ||
| 178 | - | ||
| 179 | - $obj_curso = new clsPmieducarCurso($this->ref_cod_curso); | ||
| 180 | - $det_curso = $obj_curso->detalhe(); | ||
| 181 | - | ||
| 182 | - $this->nm_curso = $det_curso['nm_curso']; | ||
| 183 | - $this->falta_ch_globalizada = $det_curso['falta_ch_globalizada']; | ||
| 184 | - | ||
| 185 | - $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($det_curso['ref_cod_tipo_avaliacao']); | ||
| 186 | - $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe(); | ||
| 187 | - $curso_conceitual = $det_tipo_avaliacao['conceitual']; | ||
| 188 | - | ||
| 189 | - $obj_serie = new clsPmieducarSerie($this->ref_cod_serie); | ||
| 190 | - $obj_serie->setOrderby('nm_serie'); | ||
| 191 | - $det_serie = $obj_serie->detalhe(); | ||
| 192 | - $this->nm_serie = $det_serie['nm_serie']; | ||
| 193 | - | ||
| 194 | - $obj_turma = new clsPmieducarTurma($this->ref_cod_turma); | ||
| 195 | - $obj_turma->setCamposLista('nm_turma, hora_inicial'); | ||
| 196 | - $det_turma = $obj_turma->detalhe(); | 125 | + echo ' |
| 126 | + <script> | ||
| 127 | + alert("A turma não possui nenhum aluno com situação final definida"); | ||
| 128 | + window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1)); | ||
| 129 | + </script>'; | ||
| 197 | 130 | ||
| 198 | - if ($det_turma['hora_inicial'] < '12:00') { | ||
| 199 | - $this->nm_turno = 'Matutino'; | ||
| 200 | - } | ||
| 201 | - elseif ($det_turma['hora_inicial'] < '18:00') { | ||
| 202 | - $this->nm_turno = 'Vespertino'; | ||
| 203 | - } | ||
| 204 | - else { | ||
| 205 | - $this->nm_turno = 'Noturno'; | ||
| 206 | - } | 131 | + return TRUE; |
| 132 | + } | ||
| 207 | 133 | ||
| 208 | - $this->nm_turma = $det_turma["nm_turma"]; | ||
| 209 | - $this->buscaDiasLetivos(); | 134 | + $sql = sprintf(" |
| 135 | + SELECT | ||
| 136 | + cod_matricula, | ||
| 137 | + aprovado, | ||
| 138 | + ref_ref_cod_serie, | ||
| 139 | + (SELECT | ||
| 140 | + nome | ||
| 141 | + FROM | ||
| 142 | + pmieducar.aluno a, | ||
| 143 | + cadastro.pessoa p | ||
| 144 | + WHERE | ||
| 145 | + a.cod_aluno = m.ref_cod_aluno | ||
| 146 | + AND p.idpes = a.ref_idpes | ||
| 147 | + ) AS nome | ||
| 148 | + FROM | ||
| 149 | + pmieducar.matricula m, | ||
| 150 | + pmieducar.matricula_turma mt | ||
| 151 | + WHERE | ||
| 152 | + mt.ref_cod_turma = %d | ||
| 153 | + AND mt.ref_cod_matricula = m.cod_matricula | ||
| 154 | + AND m.ativo = 1 | ||
| 155 | + AND mt.ativo = 1 | ||
| 156 | + AND aprovado IN (1, 2) | ||
| 157 | + AND ano = %d | ||
| 158 | + ORDER BY | ||
| 159 | + ref_ref_cod_serie, nome", $this->ref_cod_turma, $this->ano); | ||
| 160 | + | ||
| 161 | + //verificar se a turma é multiseriada | ||
| 162 | + $obj_turma = new clsPmieducarTurma($this->ref_cod_turma); | ||
| 163 | + $det_turma = $obj_turma->detalhe(); | ||
| 164 | + $ref_ref_cod_serie_mult = $det_turma['ref_ref_cod_serie_mult']; | ||
| 165 | + | ||
| 166 | + $db = new clsBanco(); | ||
| 167 | + $db->Consulta($sql); | ||
| 168 | + | ||
| 169 | + if (!$db->numLinhas()) { | ||
| 170 | + echo ' | ||
| 171 | + <script> | ||
| 172 | + alert("A turma não possui nenhum aluno com situação final definida"); | ||
| 173 | + window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length - 1)); | ||
| 174 | + </script>'; | ||
| 210 | 175 | ||
| 211 | - asort($this->disciplinas); | 176 | + return TRUE; |
| 177 | + } | ||
| 212 | 178 | ||
| 213 | - $this->pdf = new clsPDF('Ata de Resultado Final - ' . $this->ano, | ||
| 214 | - 'Ata de Resultado Final', 'A4', '', FALSE, FALSE); | 179 | + $numAlunos = $db->numLinhas(); |
| 215 | 180 | ||
| 216 | - $this->pdf->largura = 842.0; | ||
| 217 | - $this->pdf->altura = 595.0; | 181 | + // Nome da instituição |
| 182 | + $obj_instituicao = new clsPmieducarInstituicao($this->ref_cod_instituicao); | ||
| 183 | + $det_instituicao = $obj_instituicao->detalhe(); | ||
| 184 | + $this->nm_instituicao = $det_instituicao['nm_instituicao']; | ||
| 218 | 185 | ||
| 219 | - $this->pdf->OpenFile(); | ||
| 220 | - $this->addCabecalho(); | 186 | + // Nome da escola |
| 187 | + $obj_escola = new clsPmieducarEscola($this->ref_cod_escola); | ||
| 188 | + $det_escola = $obj_escola->detalhe(); | ||
| 189 | + $this->nm_escola = $det_escola['nome']; | ||
| 221 | 190 | ||
| 222 | - $esquerda = 3; | ||
| 223 | - $altura = 30; | ||
| 224 | - $direita = 834; | ||
| 225 | - $tam_texto = 10; | ||
| 226 | - $altura = 130; | ||
| 227 | - | ||
| 228 | - if ($det_curso['padrao_ano_escolar'] == 1) { | ||
| 229 | - $this->array_modulos = array( | ||
| 230 | - array('nm_tipo' => 'Bimestre'), | ||
| 231 | - array('nm_tipo' => 'Bimestre'), | ||
| 232 | - array('nm_tipo' => 'Bimestre'), | ||
| 233 | - array('nm_tipo' => 'Bimestre') | ||
| 234 | - ); | ||
| 235 | - } | ||
| 236 | - else { | ||
| 237 | - $obj_turma_modulo = new clsPmieducarTurmaModulo(); | ||
| 238 | - $lst_turma_modulo = $obj_turma_modulo->lista($this->ref_cod_turma); | 191 | + // Nome do curso |
| 192 | + $obj_curso = new clsPmieducarCurso($this->ref_cod_curso); | ||
| 193 | + $det_curso = $obj_curso->detalhe(); | ||
| 194 | + $this->nm_curso = $det_curso['nm_curso']; | ||
| 239 | 195 | ||
| 240 | - foreach ($lst_turma_modulo as $modulo) { | ||
| 241 | - $obj_modulo = new clsPmieducarModulo($modulo); | ||
| 242 | - $det_modulo = $obj_modulo->detalhe(); | ||
| 243 | - $this->array_modulos[] = $det_modulo; | ||
| 244 | - } | ||
| 245 | - } | 196 | + // Série |
| 197 | + $obj_serie = new clsPmieducarSerie($this->ref_cod_serie); | ||
| 198 | + $obj_serie->setOrderby('nm_serie'); | ||
| 199 | + $det_serie = $obj_serie->detalhe(); | ||
| 200 | + $this->nm_serie = $det_serie['nm_serie']; | ||
| 246 | 201 | ||
| 247 | - $altura += 50; | ||
| 248 | - $espessura_linha = 0.3; | ||
| 249 | - | ||
| 250 | - $alunos_matriculados = array(); | ||
| 251 | - while ($db->ProximoRegistro()) { | ||
| 252 | - list($cod_matricula, $aprovado, $ref_cod_serie, $nome) = $db->Tupla(); | ||
| 253 | - $alunos_matriculados[$cod_matricula] = | ||
| 254 | - array( | ||
| 255 | - 'aprovado' => $aprovado, | ||
| 256 | - 'nome' => $nome, | ||
| 257 | - 'ref_cod_serie' => $ref_cod_serie | ||
| 258 | - ); | ||
| 259 | - } | 202 | + // Seleciona a regra de avaliação da série |
| 203 | + $regraMapper = new RegraAvaliacao_Model_RegraDataMapper(); | ||
| 204 | + $this->regra = $regraMapper->find($det_serie['regra_avaliacao_id']); | ||
| 260 | 205 | ||
| 261 | - if (is_array($alunos_matriculados) && count($alunos_matriculados)) { | ||
| 262 | - if ($this->falta_ch_globalizada) { | ||
| 263 | - $this->montaAlunoGlobalizados($alunos_matriculados, $det_curso, $curso_conceitual); | ||
| 264 | - } else { | ||
| 265 | - $this->montaAlunoNaoGlobalizados($alunos_matriculados, $det_curso, $curso_conceitual); | ||
| 266 | - } | ||
| 267 | - } | 206 | + // Carrega as definições de disciplina |
| 207 | + $escolaSerieDisciplina = new clsPmieducarEscolaSerieDisciplina(); | ||
| 208 | + $escolaSerieDisciplina = $escolaSerieDisciplina->lista( | ||
| 209 | + $this->ref_cod_serie, $this->ref_cod_escola, NULL, 1); | ||
| 268 | 210 | ||
| 269 | - $this->rodape(); | 211 | + // Instancia mapper para ano escolar |
| 212 | + $anoEscolarMapper = new ComponenteCurricular_Model_AnoEscolarDataMapper(); | ||
| 270 | 213 | ||
| 271 | - $this->pdf->CloseFile(); | ||
| 272 | - $this->get_link = $this->pdf->GetLink(); | 214 | + foreach ($escolaSerieDisciplina as $disciplina) { |
| 215 | + $id = $disciplina['ref_cod_disciplina']; | ||
| 216 | + $anoEscolar = $anoEscolarMapper->find(array($id)); | ||
| 273 | 217 | ||
| 274 | - echo " | ||
| 275 | - <script> | ||
| 276 | - window.onload=function() { | ||
| 277 | - parent.EscondeDiv('LoadImprimir'); | ||
| 278 | - window.location='download.php?filename=".$this->get_link."' | ||
| 279 | - } | ||
| 280 | - </script>"; | ||
| 281 | - | ||
| 282 | - echo " | ||
| 283 | - <html> | ||
| 284 | - <center> | ||
| 285 | - Se o download não iniciar automaticamente <br /><a target='_blank' href='" . $this->get_link . "' style='font-size: 16px; color: #000000; text-decoration: underline;'>clique aqui!</a><br><br> | ||
| 286 | - <span style='font-size: 10px;'> | ||
| 287 | - Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br> | ||
| 288 | - Clique na Imagem para Baixar o instalador<br><br> | ||
| 289 | - <a href=\"http://www.adobe.com.br/products/acrobat/readstep2.html\" target=\"new\"><br> | ||
| 290 | - <img src=\"imagens/acrobat.gif\" width=\"88\" height=\"31\" border=\"0\"> | ||
| 291 | - </a> | ||
| 292 | - </span> | ||
| 293 | - </center>"; | ||
| 294 | - } | ||
| 295 | - else { | ||
| 296 | - echo ' | ||
| 297 | - <script> | ||
| 298 | - alert("A turma não possui nenhum aluno com situação final definida"); | ||
| 299 | - window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length - 1)); | ||
| 300 | - </script>'; | 218 | + $cargaHoraria = !is_null($disciplina['carga_horaria']) ? |
| 219 | + $disciplina['carga_horaria'] : $anoEscolar->cargaHoraria; | ||
| 301 | 220 | ||
| 302 | - return TRUE; | ||
| 303 | - } | 221 | + $anoEscolar->componenteCurricular->cargaHoraria = $cargaHoraria; |
| 222 | + $this->componentes[$id] = $anoEscolar->componenteCurricular; | ||
| 304 | } | 223 | } |
| 305 | - else | ||
| 306 | - { | ||
| 307 | - echo ' | ||
| 308 | - <script> | ||
| 309 | - alert("A turma não possui nenhum aluno com situação final definida"); | ||
| 310 | - window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1)); | ||
| 311 | - </script>'; | ||
| 312 | - | ||
| 313 | - return TRUE; | ||
| 314 | - } | ||
| 315 | - } | ||
| 316 | - | ||
| 317 | - function rodape() | ||
| 318 | - { | ||
| 319 | - $texto = ''; | ||
| 320 | - $esquerda = 3; | ||
| 321 | - $altura = 22; | ||
| 322 | - $direita = 834; | ||
| 323 | - $tam_texto = 10; | ||
| 324 | - $this->pdf->escreve_relativo('Legenda', $esquerda + 2, $this->page_y += 30, | ||
| 325 | - 150, 100, $fonte, $tam_texto); | ||
| 326 | 224 | ||
| 327 | - if (count($this->disciplinas) > 10) { | ||
| 328 | - $legenda_por_linha = true; | ||
| 329 | - } else { | ||
| 330 | - $legenda_por_linha = false; | ||
| 331 | - } | ||
| 332 | 225 | ||
| 333 | - foreach ($this->disciplinas as $disciplina) { | ||
| 334 | - $texto .= $disciplina['abreviatura'] . ':' . $disciplina['nm_disciplina'] . ' '; | ||
| 335 | - | ||
| 336 | - if ($legenda_por_linha) { | ||
| 337 | - $this->pdf->escreve_relativo($texto, $esquerda + 2, $this->page_y += $altura, | ||
| 338 | - $direita, 200, $fonte, $tam_texto + 1); | 226 | + $this->presencaGeral = ($this->regra->get('tipoPresenca') == RegraAvaliacao_Model_TipoPresenca::GERAL); |
| 339 | 227 | ||
| 340 | - $texto = ""; | 228 | + $obj_turma = new clsPmieducarTurma($this->ref_cod_turma); |
| 229 | + $obj_turma->setCamposLista('nm_turma, hora_inicial'); | ||
| 230 | + $det_turma = $obj_turma->detalhe(); | ||
| 341 | 231 | ||
| 342 | - if ($this->page_y > $this->pdf->altura - 50) { | ||
| 343 | - $texto = ''; | ||
| 344 | - $esquerda = 3; | ||
| 345 | - $altura = 18; | ||
| 346 | - $direita = 834; | ||
| 347 | - $tam_texto = 10; | ||
| 348 | - $this->pdf->ClosePage(); | ||
| 349 | - $this->pdf->OpenPage(); | ||
| 350 | - $this->addCabecalho(); | ||
| 351 | - } | ||
| 352 | - } | 232 | + if ($det_turma['hora_inicial'] < '12:00') { |
| 233 | + $this->nm_turno = 'Matutino'; | ||
| 353 | } | 234 | } |
| 354 | - | ||
| 355 | - if (! $legenda_por_linha) { | ||
| 356 | - $this->pdf->escreve_relativo($texto, $esquerda + 2, $this->page_y += $altura, | ||
| 357 | - $direita, 200, $fonte, $tam_texto + 1); | 235 | + elseif ($det_turma['hora_inicial'] < '18:00') { |
| 236 | + $this->nm_turno = 'Vespertino'; | ||
| 358 | } | 237 | } |
| 359 | - | ||
| 360 | - if ($this->page_y + $altura * 2 > $this->pdf->altura - 50) { | ||
| 361 | - $texto = ''; | ||
| 362 | - $esquerda = 3; | ||
| 363 | - $altura = 18; | ||
| 364 | - $direita = 834; | ||
| 365 | - $tam_texto = 10; | ||
| 366 | - $this->pdf->ClosePage(); | ||
| 367 | - $this->pdf->OpenPage(); | ||
| 368 | - $this->addCabecalho(); | 238 | + else { |
| 239 | + $this->nm_turno = 'Noturno'; | ||
| 369 | } | 240 | } |
| 370 | 241 | ||
| 371 | - $this->pdf->quadrado_relativo($esquerda, $this->page_y += $altura * 2, $direita, 60); | 242 | + $this->nm_turma = $det_turma["nm_turma"]; |
| 243 | + $this->buscaDiasLetivos(); | ||
| 372 | 244 | ||
| 373 | - $this->pdf->escreve_relativo('Observações:', $esquerda + 1, $this->page_y + 1, 150, 200, $fonte, $tam_texto); | 245 | + asort($this->componentes); |
| 374 | 246 | ||
| 375 | - $this->pdf->linha_relativa($esquerda + 200, $this->page_y += 120, 150, 0); | 247 | + $this->pdf = new clsPDF('Ata de Resultado Final - ' . $this->ano, |
| 248 | + 'Ata de Resultado Final', 'A4', '', FALSE, FALSE); | ||
| 376 | 249 | ||
| 377 | - $this->pdf->escreve_relativo('Assinatura do(a) Secretário(a)', $esquerda + 220, | ||
| 378 | - $this->page_y + 2, 150, 200, $fonte, 7); | 250 | + $this->pdf->largura = 842.0; |
| 251 | + $this->pdf->altura = 595.0; | ||
| 379 | 252 | ||
| 380 | - $this->pdf->linha_relativa($esquerda + 450, $this->page_y, 150, 0); | 253 | + $this->pdf->OpenPage(); |
| 254 | + $this->addCabecalho(); | ||
| 381 | 255 | ||
| 382 | - $this->pdf->escreve_relativo('Assinatura do(a) Diretor(a)', $esquerda + 480, | ||
| 383 | - $this->page_y + 2, 150, 200, $fonte, 7); | ||
| 384 | - } | 256 | + $esquerda = 3; |
| 257 | + $direita = 834; | ||
| 258 | + $tam_texto = 10; | ||
| 259 | + $altura = 130; | ||
| 385 | 260 | ||
| 386 | - //monta alunos que a serie nao tem falta globalizada | ||
| 387 | - function montaAlunoNaoGlobalizados($alunos_matriculados, $det_curso, $curso_conceitual) | ||
| 388 | - { | ||
| 389 | - $fonte = 'arial'; | ||
| 390 | - $corTexto = '#000000'; | ||
| 391 | - $esquerda_original = 3; | ||
| 392 | - $espessura_linha = 0.3; | ||
| 393 | - $tam_texto = 9; | ||
| 394 | - $direita = 834; | ||
| 395 | - $altura = 20; | 261 | + $altura += 50; |
| 262 | + $espessura_linha = 0.3; | ||
| 396 | 263 | ||
| 397 | - $obj_serie = new clsPmieducarSerie($this->ref_cod_serie); | ||
| 398 | - $det_serie = $obj_serie->detalhe(); | 264 | + $alunos_matriculados = array(); |
| 399 | 265 | ||
| 400 | - foreach ($alunos_matriculados as $matricula => $aluno) { | ||
| 401 | - $esquerda = $esquerda_original; | 266 | + while ($db->ProximoRegistro()) { |
| 267 | + list($cod_matricula, $aprovado, $ref_cod_serie, $nome) = $db->Tupla(); | ||
| 268 | + $alunos_matriculados[$cod_matricula] = | ||
| 269 | + array( | ||
| 270 | + 'aprovado' => $aprovado, | ||
| 271 | + 'nome' => $nome, | ||
| 272 | + 'ref_cod_serie' => $ref_cod_serie | ||
| 273 | + ); | ||
| 274 | + } | ||
| 402 | 275 | ||
| 403 | - $this->pdf->quadrado_relativo($esquerda, $this->page_y, $direita, $altura); | 276 | + if (is_array($alunos_matriculados) && count($alunos_matriculados)) { |
| 277 | + $this->getAlunoNotasFaltasTable($alunos_matriculados, $det_curso, $curso_conceitual); | ||
| 278 | + } | ||
| 404 | 279 | ||
| 405 | - $this->pdf->escreve_relativo($matricula, $esquerda, $this->page_y + 2, 45, | ||
| 406 | - 45, $fonte, $tam_texto, $corTexto, 'center'); | 280 | + $this->rodape(); |
| 407 | 281 | ||
| 408 | - $this->pdf->linha_relativa($esquerda += 45, $this->page_y, 0, $altura); | 282 | + $this->pdf->CloseFile(); |
| 283 | + $this->get_link = $this->pdf->GetLink(); | ||
| 409 | 284 | ||
| 410 | - $espaco_nome = 150; | 285 | + echo sprintf(" |
| 286 | + <script> | ||
| 287 | + window.onload=function() { | ||
| 288 | + parent.EscondeDiv('LoadImprimir'); | ||
| 289 | + window.location='download.php?filename=%s' | ||
| 290 | + } | ||
| 291 | + </script>", $this->get_link); | ||
| 292 | + | ||
| 293 | + echo sprintf(" | ||
| 294 | + <html> | ||
| 295 | + <center> | ||
| 296 | + Se o download não iniciar automaticamente <br /><a target='_blank' href='%s' style='font-size: 16px; color: #000000; text-decoration: underline;'>clique aqui!</a><br><br> | ||
| 297 | + <span style='font-size: 10px;'> | ||
| 298 | + Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br> | ||
| 299 | + Clique na Imagem para Baixar o instalador<br><br> | ||
| 300 | + <a href=\"http://www.adobe.com.br/products/acrobat/readstep2.html\" target=\"new\"><br> | ||
| 301 | + <img src=\"imagens/acrobat.gif\" width=\"88\" height=\"31\" border=\"0\"> | ||
| 302 | + </a> | ||
| 303 | + </span> | ||
| 304 | + </center> | ||
| 305 | + </html>", $this->get_link); | ||
| 306 | + } | ||
| 411 | 307 | ||
| 412 | - $this->pdf->escreve_relativo($aluno['nome'], $esquerda, $this->page_y + 2, | ||
| 413 | - $espaco_nome, 45, $fonte, $tam_texto, $corTexto, 'center'); | 308 | + function getComponentesTableHeader($esquerda, $espacoComponente) |
| 309 | + { | ||
| 310 | + $tam_texto = 9; | ||
| 311 | + $altura = 20; | ||
| 312 | + $tam_texto = 9; | ||
| 313 | + $fonte = 'arial'; | ||
| 314 | + $corTexto = '#000000'; | ||
| 315 | + $carga_global = 0; | ||
| 414 | 316 | ||
| 415 | - $this->pdf->linha_relativa($esquerda += $espaco_nome, $this->page_y, 0, $altura); | 317 | + $espacoDiv = $this->presencaGeral ? 1 : 2; |
| 416 | 318 | ||
| 417 | - $this->pdf->escreve_relativo($aluno['aprovado'] == 1 ? 'Aprovado' : 'Reprovado', | ||
| 418 | - $esquerda, $this->page_y + 4, 45, 45, $fonte, $tam_texto, $corTexto, 'center'); | 319 | + $componentesTotal = count($this->componentes) + ($this->presencaGeral ? 1 : 0); |
| 320 | + $espacoComponentes = ceil($espacoComponente / $componentesTotal); | ||
| 419 | 321 | ||
| 420 | - $this->pdf->linha_relativa($esquerda += 45, $this->page_y, 0, $altura); | 322 | + foreach ($this->componentes as $componente) { |
| 323 | + $carga_global += $componente->cargaHoraria; | ||
| 421 | 324 | ||
| 422 | - $espaco_disciplinas = ceil(($direita - $esquerda) / (count($this->disciplinas))); | 325 | + $this->pdf->escreve_relativo($componente->abreviatura, $esquerda, |
| 326 | + $this->page_y - $altura, $espacoComponentes, 100, $fonte, $tam_texto, $corTexto, 'center'); | ||
| 423 | 327 | ||
| 424 | - foreach ($this->disciplinas as $cod_disciplina => $disciplina) { | ||
| 425 | - $obj_dispensa_disciplina = new clsPmieducarDispensaDisciplina($matricula, | ||
| 426 | - $aluno['ref_cod_serie'], $this->ref_cod_escola, $cod_disciplina); | 328 | + $this->pdf->escreve_relativo($componente->cargaHoraria . ' hrs', $esquerda, |
| 329 | + $this->page_y + 10 - $altura, $espacoComponentes, 50, $fonte, | ||
| 330 | + $tam_texto - 2, $corTexto, 'center'); | ||
| 427 | 331 | ||
| 428 | - if ($obj_dispensa_disciplina->detalhe()) { | ||
| 429 | - $media = $faltas = 'D'; | ||
| 430 | - } | ||
| 431 | - else { | ||
| 432 | - $nota_exame = FALSE; | ||
| 433 | - | ||
| 434 | - if ($curso_conceitual) { | ||
| 435 | - $obj_nota_aluno = new clsPmieducarNotaAluno(); | ||
| 436 | - $obj_nota_aluno->setOrderby('modulo ASC'); | ||
| 437 | - $lst_nota_aluno = $obj_nota_aluno->lista(NULL, NULL, NULL, $aluno['ref_cod_serie'], $this->ref_cod_escola, | ||
| 438 | - $cod_disciplina, $matricula, NULL, NULL, NULL, NULL, NULL, NULL, 1); | ||
| 439 | - | ||
| 440 | - if (is_array($lst_nota_aluno) && count($lst_nota_aluno)) { | ||
| 441 | - foreach ($lst_nota_aluno as $key => $nota) { | ||
| 442 | - $obj_tipo_av_val = new clsPmieducarTipoAvaliacaoValores( | ||
| 443 | - $nota['ref_ref_cod_tipo_avaliacao'], $nota['ref_sequencial'], | ||
| 444 | - NULL, NULL, NULL, NULL, 1); | ||
| 445 | - | ||
| 446 | - $det_tipo_av_val = $obj_tipo_av_val->detalhe(); | ||
| 447 | - $media = $det_tipo_av_val['nome']; | ||
| 448 | - } | ||
| 449 | - } | ||
| 450 | - } else { | ||
| 451 | - if (dbBool($det_serie['ultima_nota_define'])) { | ||
| 452 | - $obj_nota_aluno = new clsPmieducarNotaAluno(); | ||
| 453 | - | ||
| 454 | - $media = $obj_nota_aluno->getUltimaNotaModulo($matricula, $cod_disciplina, | ||
| 455 | - $aluno['ref_cod_serie'], count($this->array_modulos)); | ||
| 456 | - } else { | ||
| 457 | - $obj_nota_aluno = new clsPmieducarNotaAluno(); | ||
| 458 | - $obj_nota_aluno->setOrderby('modulo ASC'); | ||
| 459 | - | ||
| 460 | - $lst_nota_aluno = $obj_nota_aluno->lista(NULL, NULL, NULL, | ||
| 461 | - $aluno['ref_cod_serie'], $this->ref_cod_escola, $cod_disciplina, | ||
| 462 | - $matricula, NULL, NULL, NULL, NULL, NULL, NULL, 1); | ||
| 463 | - | ||
| 464 | - $qtd_modulos = count($this->array_modulos); | ||
| 465 | - $notas = 0; | ||
| 466 | - | ||
| 467 | - if (is_array($lst_nota_aluno) && count($lst_nota_aluno)) { | ||
| 468 | - foreach ($lst_nota_aluno as $key => $nota) { | ||
| 469 | - if ($key < $qtd_modulos) { | ||
| 470 | - $obj_tipo_av_val = new clsPmieducarTipoAvaliacaoValores( | ||
| 471 | - $nota['ref_ref_cod_tipo_avaliacao'], $nota['ref_sequencial'], | ||
| 472 | - NULL, NULL, NULL, NULL); | ||
| 473 | - | ||
| 474 | - $det_tipo_av_val = $obj_tipo_av_val->detalhe(); | ||
| 475 | - $notas += $det_tipo_av_val['valor']; | ||
| 476 | - } else { | ||
| 477 | - $notas += $nota['nota'] * 2; | ||
| 478 | - $nota_exame = true; | ||
| 479 | - } | ||
| 480 | - } | ||
| 481 | - } | ||
| 482 | - | ||
| 483 | - $media = $nota_exame ? $notas / (count($lst_nota_aluno) + 1) : | ||
| 484 | - $notas / count($lst_nota_aluno); | ||
| 485 | - | ||
| 486 | - $obj_media = new clsPmieducarTipoAvaliacaoValores(); | ||
| 487 | - $det_media = $obj_media->lista($det_curso['ref_cod_tipo_avaliacao'], | ||
| 488 | - $det_curso['ref_sequencial'], NULL, NULL, $media, $media); | ||
| 489 | - | ||
| 490 | - if (is_array($det_media) && count($det_media)) { | ||
| 491 | - $det_media = array_shift($det_media); | ||
| 492 | - $media = $det_media['valor']; | ||
| 493 | - $media = str_replace('.', ',', sprintf('%01.1f', $media)); | ||
| 494 | - } | ||
| 495 | - } | ||
| 496 | - } | 332 | + $this->pdf->escreve_relativo('Nota / Conceito', $esquerda, $this->page_y + 3, |
| 333 | + $espacoComponentes / $espacoDiv, 50, $fonte, $tam_texto - 2, $corTexto, 'center'); | ||
| 497 | 334 | ||
| 498 | - $obj_falta = new clsPmieducarFaltaAluno(); | ||
| 499 | - $faltas = $obj_falta->total_faltas_disciplina($matricula, $cod_disciplina, $aluno['ref_cod_serie']); | ||
| 500 | - } | 335 | + if (!$this->presencaGeral) { |
| 336 | + $this->pdf->escreve_relativo('Falta', $esquerda + $espacoComponentes / 2, | ||
| 337 | + $this->page_y + 3, $espacoComponentes / $espacoDiv, 50, $fonte, $tam_texto - 2, | ||
| 338 | + $corTexto, 'center'); | ||
| 339 | + } | ||
| 501 | 340 | ||
| 502 | - $this->pdf->escreve_relativo($media, $esquerda, $this->page_y + 4, | ||
| 503 | - $espaco_disciplinas / 2, 100, $fonte, $tam_texto + 1, $corTexto, 'center'); | 341 | + $this->pdf->linha_relativa($esquerda, $this->page_y - $altura, 0, $altura * 2); |
| 504 | 342 | ||
| 505 | - $this->pdf->linha_relativa($esquerda + $espaco_disciplinas / 2, | ||
| 506 | - $this->page_y, 0, $altura); | 343 | + $esquerda += $espacoComponentes; |
| 344 | + $this->pdf->linha_relativa($esquerda + $espacoComponentes / $espacoDiv, | ||
| 345 | + $this->page_y, 0, $altura); | ||
| 346 | + } | ||
| 507 | 347 | ||
| 508 | - $this->pdf->escreve_relativo($faltas, $esquerda + $espaco_disciplinas / 2, | ||
| 509 | - $this->page_y + 4, $espaco_disciplinas / 2, 100, $fonte, $tam_texto + 1, | ||
| 510 | - $corTexto, 'center'); | 348 | + if ($this->presencaGeral) { |
| 349 | + $this->pdf->linha_relativa($esquerda, $this->page_y - $altura, 0, $altura * 2); | ||
| 511 | 350 | ||
| 512 | - $esquerda += $espaco_disciplinas; | 351 | + $this->pdf->escreve_relativo('Faltas', $esquerda, $this->page_y, $espacoComponentes, |
| 352 | + 50, $fonte, $tam_texto, $corTexto, 'center'); | ||
| 513 | 353 | ||
| 514 | - $this->pdf->linha_relativa($esquerda, $this->page_y, 0, $altura); | ||
| 515 | - } | 354 | + $this->pdf->linha_relativa($esquerda += $espacoComponentes, |
| 355 | + $this->page_y - $altura, 0, $altura * 2); | ||
| 356 | + } | ||
| 516 | 357 | ||
| 517 | - $this->page_y += $altura; | 358 | + $this->page_y += $altura; |
| 518 | 359 | ||
| 519 | - if ($this->page_y > $this->pdf->altura - $altura * 2) { | ||
| 520 | - $this->pdf->ClosePage(); | ||
| 521 | - $this->pdf->OpenPage(); | ||
| 522 | - $this->addCabecalho(); | ||
| 523 | - } | ||
| 524 | - } | 360 | + return $carga_global; |
| 525 | } | 361 | } |
| 526 | 362 | ||
| 527 | - //monta alunos que a serie tem falta globalizada | ||
| 528 | - function montaAlunoGlobalizados($alunos_matriculados, $det_curso, $curso_conceitual) | 363 | + function getAlunoNotasFaltasTable($alunos_matriculados, $det_curso, $curso_conceitual) |
| 529 | { | 364 | { |
| 530 | $fonte = 'arial'; | 365 | $fonte = 'arial'; |
| 531 | $corTexto = '#000000'; | 366 | $corTexto = '#000000'; |
| 532 | $esquerda_original = 3; | 367 | $esquerda_original = 3; |
| 533 | $espessura_linha = 0.3; | 368 | $espessura_linha = 0.3; |
| 534 | - $tam_texto = 7; | 369 | + $tam_texto = 9; |
| 535 | $direita = 834; | 370 | $direita = 834; |
| 536 | $altura = 20; | 371 | $altura = 20; |
| 537 | 372 | ||
| 538 | $obj_serie = new clsPmieducarSerie($this->ref_cod_serie); | 373 | $obj_serie = new clsPmieducarSerie($this->ref_cod_serie); |
| 539 | $det_serie = $obj_serie->detalhe(); | 374 | $det_serie = $obj_serie->detalhe(); |
| 540 | 375 | ||
| 376 | + $espacoDiv = $this->presencaGeral ? 1 : 2; | ||
| 377 | + | ||
| 541 | foreach ($alunos_matriculados as $matricula => $aluno) { | 378 | foreach ($alunos_matriculados as $matricula => $aluno) { |
| 379 | + $boletim = new Avaliacao_Service_Boletim(array('matricula' => $matricula)); | ||
| 380 | + $medias = $boletim->getMediasComponentes(); | ||
| 381 | + | ||
| 382 | + if ($this->presencaGeral) { | ||
| 383 | + // Soma as faltas do aluno | ||
| 384 | + $faltas = array_sum(CoreExt_Entity::entityFilterAttr( | ||
| 385 | + $boletim->getFaltasGerais(), 'etapa', 'quantidade') | ||
| 386 | + ); | ||
| 387 | + } | ||
| 388 | + else { | ||
| 389 | + $faltas = $boletim->getFaltasComponentes(); | ||
| 390 | + } | ||
| 391 | + | ||
| 542 | $esquerda = $esquerda_original; | 392 | $esquerda = $esquerda_original; |
| 543 | 393 | ||
| 394 | + // Matrícula | ||
| 544 | $this->pdf->quadrado_relativo($esquerda, $this->page_y, $direita, $altura); | 395 | $this->pdf->quadrado_relativo($esquerda, $this->page_y, $direita, $altura); |
| 545 | 396 | ||
| 546 | $this->pdf->escreve_relativo($matricula, $esquerda, $this->page_y + 2, 45, | 397 | $this->pdf->escreve_relativo($matricula, $esquerda, $this->page_y + 2, 45, |
| @@ -548,6 +399,7 @@ class indice extends clsCadastro | @@ -548,6 +399,7 @@ class indice extends clsCadastro | ||
| 548 | 399 | ||
| 549 | $this->pdf->linha_relativa($esquerda += 45, $this->page_y, 0, $altura); | 400 | $this->pdf->linha_relativa($esquerda += 45, $this->page_y, 0, $altura); |
| 550 | 401 | ||
| 402 | + // Nome do aluno | ||
| 551 | $espaco_nome = 150; | 403 | $espaco_nome = 150; |
| 552 | 404 | ||
| 553 | $this->pdf->escreve_relativo($aluno['nome'], $esquerda, $this->page_y + 2, | 405 | $this->pdf->escreve_relativo($aluno['nome'], $esquerda, $this->page_y + 2, |
| @@ -555,108 +407,67 @@ class indice extends clsCadastro | @@ -555,108 +407,67 @@ class indice extends clsCadastro | ||
| 555 | 407 | ||
| 556 | $this->pdf->linha_relativa($esquerda += $espaco_nome, $this->page_y, 0, $altura); | 408 | $this->pdf->linha_relativa($esquerda += $espaco_nome, $this->page_y, 0, $altura); |
| 557 | 409 | ||
| 558 | - $this->pdf->escreve_relativo($aluno['aprovado'] == 1 ? 'Aprovado' : 'Reprovado', | 410 | + // Situação da matrícula |
| 411 | + $this->pdf->escreve_relativo(App_Model_MatriculaSituacao::getInstance()->getValue($aluno['aprovado']), | ||
| 559 | $esquerda, $this->page_y + 4, 45, 45, $fonte, $tam_texto, $corTexto, 'center'); | 412 | $esquerda, $this->page_y + 4, 45, 45, $fonte, $tam_texto, $corTexto, 'center'); |
| 560 | 413 | ||
| 561 | $this->pdf->linha_relativa($esquerda += 45, $this->page_y, 0, $altura); | 414 | $this->pdf->linha_relativa($esquerda += 45, $this->page_y, 0, $altura); |
| 562 | 415 | ||
| 563 | - $espaco_disciplinas = ceil(($direita - $esquerda) / (count($this->disciplinas) + 1)); | ||
| 564 | - | ||
| 565 | - foreach ($this->disciplinas as $cod_disciplina => $disciplina) { | ||
| 566 | - $obj_dispensa_disciplina = new clsPmieducarDispensaDisciplina($matricula, | ||
| 567 | - $aluno['ref_cod_serie'], $this->ref_cod_escola, $cod_disciplina); | 416 | + $espacoComponentes = ceil( |
| 417 | + ($direita - $esquerda) / (count($this->componentes) + ($this->presencaGeral ? 1 : 0)) | ||
| 418 | + ); | ||
| 568 | 419 | ||
| 569 | - if ($obj_dispensa_disciplina->detalhe()) { | ||
| 570 | - $media = $faltas = 'D'; | 420 | + // Exibe as médias e faltas do aluno |
| 421 | + foreach ($this->componentes as $id => $componente) { | ||
| 422 | + // Se não tem média, foi dispensado do componente | ||
| 423 | + if (!isset($medias[$id])) { | ||
| 424 | + $media = 'D'; | ||
| 425 | + $faltas = 'D'; | ||
| 571 | } | 426 | } |
| 572 | else { | 427 | else { |
| 573 | - $nota_exame = false; | ||
| 574 | - | ||
| 575 | - if ($curso_conceitual) { | ||
| 576 | - $obj_nota_aluno = new clsPmieducarNotaAluno(); | ||
| 577 | - $obj_nota_aluno->setOrderby('modulo ASC'); | ||
| 578 | - $lst_nota_aluno = $obj_nota_aluno->lista(NULL, NULL, | ||
| 579 | - $det_curso['ref_cod_tipo_avaliacao'], $aluno['ref_cod_serie'], | ||
| 580 | - $this->ref_cod_escola, $cod_disciplina, $matricula, NULL, NULL, | ||
| 581 | - NULL, NULL, NULL, NULL, 1); | ||
| 582 | - | ||
| 583 | - if (is_array($lst_nota_aluno) && count($lst_nota_aluno)) { | ||
| 584 | - foreach ($lst_nota_aluno as $key => $nota) { | ||
| 585 | - $obj_tipo_av_val = new clsPmieducarTipoAvaliacaoValores( | ||
| 586 | - $nota['ref_ref_cod_tipo_avaliacao'], $nota['ref_sequencial'], | ||
| 587 | - NULL, NULL, NULL, NULL, 1); | ||
| 588 | - | ||
| 589 | - $det_tipo_av_val = $obj_tipo_av_val->detalhe(); | ||
| 590 | - $media = $det_tipo_av_val['nome']; | ||
| 591 | - } | ||
| 592 | - } | ||
| 593 | - } else { | ||
| 594 | - if (dbBool($det_serie['ultima_nota_define'])) { | ||
| 595 | - $obj_nota_aluno = new clsPmieducarNotaAluno(); | ||
| 596 | - | ||
| 597 | - $media = $obj_nota_aluno->getUltimaNotaModulo($matricula, | ||
| 598 | - $cod_disciplina, $aluno['ref_cod_serie'], count($this->array_modulos)); | ||
| 599 | - } else { | ||
| 600 | - $obj_nota_aluno = new clsPmieducarNotaAluno(); | ||
| 601 | - | ||
| 602 | - $obj_nota_aluno->setOrderby('modulo ASC'); | ||
| 603 | - | ||
| 604 | - $lst_nota_aluno = $obj_nota_aluno->lista(NULL, NULL, | ||
| 605 | - $det_curso['ref_cod_tipo_avaliacao'], $aluno['ref_cod_serie'], | ||
| 606 | - $this->ref_cod_escola, $cod_disciplina, $matricula, NULL, NULL, | ||
| 607 | - NULL, NULL, NULL, NULL, 1); | ||
| 608 | - | ||
| 609 | - $qtd_modulos = count($this->array_modulos); | ||
| 610 | - | ||
| 611 | - $notas = 0; | ||
| 612 | - if (is_array($lst_nota_aluno) && count($lst_nota_aluno)) { | ||
| 613 | - foreach ($lst_nota_aluno as $key => $nota) { | ||
| 614 | - if ($key < $qtd_modulos) { | ||
| 615 | - $obj_tipo_av_val = new clsPmieducarTipoAvaliacaoValores( | ||
| 616 | - $nota['ref_ref_cod_tipo_avaliacao'], $nota['ref_sequencial'], | ||
| 617 | - NULL, NULL, NULL, NULL); | ||
| 618 | - | ||
| 619 | - $det_tipo_av_val = $obj_tipo_av_val->detalhe(); | ||
| 620 | - $notas += $det_tipo_av_val['valor']; | ||
| 621 | - } else { | ||
| 622 | - $notas += $nota['nota'] * 2; | ||
| 623 | - $nota_exame = true; | ||
| 624 | - } | ||
| 625 | - } | ||
| 626 | - } | ||
| 627 | - | ||
| 628 | - $media = $nota_exame ? $notas / (count($lst_nota_aluno) + 1) : | ||
| 629 | - $notas / count($lst_nota_aluno); | ||
| 630 | - | ||
| 631 | - $obj_media = new clsPmieducarTipoAvaliacaoValores(); | ||
| 632 | - $det_media = $obj_media->lista($det_curso['ref_cod_tipo_avaliacao'], | ||
| 633 | - $det_curso['ref_sequencial'], NULL, NULL, $media, $media); | ||
| 634 | - | ||
| 635 | - if (is_array($det_media) && count($det_media)) { | ||
| 636 | - $det_media = array_shift($det_media); | ||
| 637 | - $media = $det_media['valor']; | ||
| 638 | - $media = str_replace('.', ',', sprintf('%01.1f', $media)); | ||
| 639 | - } | 428 | + $media = $medias[$id][0]; |
| 429 | + $media = $media->mediaArredondada; | ||
| 430 | + | ||
| 431 | + if (!$this->presencaGeral) { | ||
| 432 | + if (isset($faltas[$id])) { | ||
| 433 | + $faltas = array_sum(CoreExt_Entity::entityFilterAttr( | ||
| 434 | + $faltas[$id], 'id', 'quantidade') | ||
| 435 | + ); | ||
| 640 | } | 436 | } |
| 641 | } | 437 | } |
| 438 | + } | ||
| 439 | + | ||
| 440 | + // Média | ||
| 441 | + $this->pdf->escreve_relativo($media, $esquerda, $this->page_y + 4, | ||
| 442 | + $espacoComponentes / $espacoDiv, 50, $fonte, $tam_texto + 1, $corTexto, 'center'); | ||
| 443 | + | ||
| 444 | + $this->pdf->linha_relativa($esquerda + $espacoComponentes / $espacoDiv, | ||
| 445 | + $this->page_y, 0, $altura); | ||
| 642 | 446 | ||
| 643 | - $this->pdf->escreve_relativo($media, $esquerda, $this->page_y + 4, | ||
| 644 | - $espaco_disciplinas, 50, $fonte, $tam_texto + 1, $corTexto, 'center'); | ||
| 645 | - $esquerda += $espaco_disciplinas; | ||
| 646 | - $this->pdf->linha_relativa($esquerda, $this->page_y, 0, $altura); | 447 | + // Exibe as faltas no componente curricular, caso a presença não seja geral |
| 448 | + if (!$this->presencaGeral) { | ||
| 449 | + $this->pdf->escreve_relativo($faltas, $esquerda + $espacoComponentes / $espacoDiv, | ||
| 450 | + $this->page_y + 4, $espacoComponentes / $espacoDiv, 100, $fonte, $tam_texto + 1, | ||
| 451 | + $corTexto, 'center'); | ||
| 647 | } | 452 | } |
| 648 | 453 | ||
| 649 | - $obj_falta = new clsPmieducarFaltas(); | 454 | + $esquerda += $espacoComponentes; |
| 455 | + $this->pdf->linha_relativa($esquerda, $this->page_y, 0, $altura); | ||
| 456 | + } | ||
| 457 | + | ||
| 458 | + // Exibe as faltas no total, caso a presença seja geral | ||
| 459 | + if ($this->presencaGeral) { | ||
| 460 | + $this->pdf->escreve_relativo($faltas, $esquerda, | ||
| 461 | + $this->page_y + 4, $espacoComponentes, 50, $fonte, $tam_texto + 1, | ||
| 462 | + $corTexto, 'center'); | ||
| 650 | 463 | ||
| 651 | - $faltas = $obj_falta->somaFaltas($matricula); | ||
| 652 | - $this->pdf->escreve_relativo($faltas ? $faltas : '0', $esquerda, $this->page_y + 4, | ||
| 653 | - $espaco_disciplinas, 50, $fonte, $tam_texto + 1, $corTexto, 'center'); | 464 | + $esquerda += $espacoComponentes; |
| 654 | 465 | ||
| 655 | - $esquerda += $espaco_disciplinas; | ||
| 656 | $this->pdf->linha_relativa($esquerda, $this->page_y, 0, $altura); | 466 | $this->pdf->linha_relativa($esquerda, $this->page_y, 0, $altura); |
| 657 | } | 467 | } |
| 658 | 468 | ||
| 659 | $this->page_y += $altura; | 469 | $this->page_y += $altura; |
| 470 | + | ||
| 660 | if ($this->page_y > $this->pdf->altura - $altura * 2) { | 471 | if ($this->page_y > $this->pdf->altura - $altura * 2) { |
| 661 | $this->pdf->ClosePage(); | 472 | $this->pdf->ClosePage(); |
| 662 | $this->pdf->OpenPage(); | 473 | $this->pdf->OpenPage(); |
| @@ -709,31 +520,36 @@ class indice extends clsCadastro | @@ -709,31 +520,36 @@ class indice extends clsCadastro | ||
| 709 | 78, $direita, 80, $fonte, 12, $corTexto, 'center'); | 520 | 78, $direita, 80, $fonte, 12, $corTexto, 'center'); |
| 710 | 521 | ||
| 711 | $this->pdf->quadrado_relativo($esquerda, $this->page_y += 100, $direita, $altura); | 522 | $this->pdf->quadrado_relativo($esquerda, $this->page_y += 100, $direita, $altura); |
| 523 | + | ||
| 712 | $this->pdf->escreve_relativo('Disciplina', $esquerda + 30, $this->page_y + 1, | 524 | $this->pdf->escreve_relativo('Disciplina', $esquerda + 30, $this->page_y + 1, |
| 713 | 150, 50, $fonte, 9, $corTexto, 'center'); | 525 | 150, 50, $fonte, 9, $corTexto, 'center'); |
| 526 | + | ||
| 714 | $this->pdf->escreve_relativo('Carga Horária', $esquerda + 35, $this->page_y + 10, | 527 | $this->pdf->escreve_relativo('Carga Horária', $esquerda + 35, $this->page_y + 10, |
| 715 | 150, 50, $fonte, 7, $corTexto, 'center'); | 528 | 150, 50, $fonte, 7, $corTexto, 'center'); |
| 716 | 529 | ||
| 717 | $this->page_y += $altura; | 530 | $this->page_y += $altura; |
| 531 | + | ||
| 718 | $this->pdf->quadrado_relativo($esquerda, $this->page_y, $direita, $altura); | 532 | $this->pdf->quadrado_relativo($esquerda, $this->page_y, $direita, $altura); |
| 533 | + | ||
| 719 | $this->pdf->escreve_relativo('Matrícula', $esquerda, $this->page_y + 2, 45, | 534 | $this->pdf->escreve_relativo('Matrícula', $esquerda, $this->page_y + 2, 45, |
| 720 | 45, $fonte, $tam_texto, $corTexto, 'center'); | 535 | 45, $fonte, $tam_texto, $corTexto, 'center'); |
| 536 | + | ||
| 721 | $this->pdf->linha_relativa($esquerda += 45, $this->page_y, 0, $altura); | 537 | $this->pdf->linha_relativa($esquerda += 45, $this->page_y, 0, $altura); |
| 722 | 538 | ||
| 723 | $espaco_nome = 150; | 539 | $espaco_nome = 150; |
| 540 | + | ||
| 724 | $this->pdf->escreve_relativo('Nome do Aluno', $esquerda, $this->page_y + 2, | 541 | $this->pdf->escreve_relativo('Nome do Aluno', $esquerda, $this->page_y + 2, |
| 725 | $espaco_nome, 45, $fonte, $tam_texto, $corTexto, 'center'); | 542 | $espaco_nome, 45, $fonte, $tam_texto, $corTexto, 'center'); |
| 543 | + | ||
| 726 | $this->pdf->linha_relativa($esquerda += $espaco_nome, $this->page_y, 0, $altura); | 544 | $this->pdf->linha_relativa($esquerda += $espaco_nome, $this->page_y, 0, $altura); |
| 545 | + | ||
| 727 | $this->pdf->escreve_relativo('Situação', $esquerda, $this->page_y + 2, 45, | 546 | $this->pdf->escreve_relativo('Situação', $esquerda, $this->page_y + 2, 45, |
| 728 | 45, $fonte, $tam_texto, $corTexto, 'center'); | 547 | 45, $fonte, $tam_texto, $corTexto, 'center'); |
| 548 | + | ||
| 729 | $this->pdf->linha_relativa($esquerda += 45, $this->page_y, 0, $altura); | 549 | $this->pdf->linha_relativa($esquerda += 45, $this->page_y, 0, $altura); |
| 730 | 550 | ||
| 731 | - if ($this->falta_ch_globalizada) { | ||
| 732 | - $carga_global = $this->montaDisciplinasGlobalizada($esquerda, $direita - $esquerda); | ||
| 733 | - } | ||
| 734 | - else { | ||
| 735 | - $carga_global = $this->montaDisciplinasNaoGlobalizada($esquerda, $direita - $esquerda); | ||
| 736 | - } | 551 | + // Gera o header da tabela e calcula a carga horária global |
| 552 | + $carga_global = $this->getComponentesTableHeader($esquerda, $direita - $esquerda); | ||
| 737 | 553 | ||
| 738 | $nm_curso = sprintf('Curso: %s Série: %s Turma: %s Dias Letivos: %d Carga Global: %s Turno: %s', | 554 | $nm_curso = sprintf('Curso: %s Série: %s Turma: %s Dias Letivos: %d Carga Global: %s Turno: %s', |
| 739 | $this->nm_curso, $this->nm_serie, $this->nm_turma, $this->dias_letivos, $carga_global, $this->nm_turno); | 555 | $this->nm_curso, $this->nm_serie, $this->nm_turma, $this->dias_letivos, $carga_global, $this->nm_turno); |
| @@ -746,88 +562,6 @@ class indice extends clsCadastro | @@ -746,88 +562,6 @@ class indice extends clsCadastro | ||
| 746 | $this->page_y += $altura; | 562 | $this->page_y += $altura; |
| 747 | } | 563 | } |
| 748 | 564 | ||
| 749 | - | ||
| 750 | - function montaDisciplinasGlobalizada($esquerda, $espaco_disciplina) | ||
| 751 | - { | ||
| 752 | - $tam_texto = 9; | ||
| 753 | - $altura = 20; | ||
| 754 | - $tam_texto = 9; | ||
| 755 | - $fonte = 'arial'; | ||
| 756 | - $corTexto = '#000000'; | ||
| 757 | - $carga_global = 0; | ||
| 758 | - | ||
| 759 | - $espaco_disciplinas = ceil($espaco_disciplina / (count($this->disciplinas) + 1)); | ||
| 760 | - | ||
| 761 | - foreach ($this->disciplinas as $disciplina) { | ||
| 762 | - $carga_global += $disciplina['carga_horaria']; | ||
| 763 | - | ||
| 764 | - $this->pdf->escreve_relativo($disciplina['abreviatura'], $esquerda, | ||
| 765 | - $this->page_y - $altura, $espaco_disciplinas, 100, $fonte, $tam_texto, | ||
| 766 | - $corTexto, 'center'); | ||
| 767 | - | ||
| 768 | - $this->pdf->escreve_relativo($disciplina['carga_horaria'] . ' hrs', | ||
| 769 | - $esquerda, $this->page_y + 10 - $altura, $espaco_disciplinas, 50, | ||
| 770 | - $fonte, $tam_texto - 2, $corTexto, 'center'); | ||
| 771 | - | ||
| 772 | - $this->pdf->escreve_relativo('Nota / Conceito', $esquerda, $this->page_y + 3, | ||
| 773 | - $espaco_disciplinas, 50, $fonte, $tam_texto - 2, $corTexto, 'center'); | ||
| 774 | - | ||
| 775 | - $this->pdf->linha_relativa($esquerda, $this->page_y - $altura, 0, $altura * 2); | ||
| 776 | - | ||
| 777 | - $esquerda += $espaco_disciplinas; | ||
| 778 | - } | ||
| 779 | - | ||
| 780 | - $this->pdf->linha_relativa($esquerda, $this->page_y - $altura, 0, $altura * 2); | ||
| 781 | - $this->pdf->escreve_relativo('Faltas', $esquerda, $this->page_y, $espaco_disciplinas, | ||
| 782 | - 50, $fonte, $tam_texto, $corTexto, 'center'); | ||
| 783 | - | ||
| 784 | - $this->pdf->linha_relativa($esquerda += $espaco_disciplinas, | ||
| 785 | - $this->page_y - $altura, 0, $altura * 2); | ||
| 786 | - | ||
| 787 | - $this->page_y += $altura; | ||
| 788 | - | ||
| 789 | - return $carga_global; | ||
| 790 | - } | ||
| 791 | - | ||
| 792 | - function montaDisciplinasNaoGlobalizada($esquerda, $espaco_disciplina) | ||
| 793 | - { | ||
| 794 | - $espaco_disciplinas = ceil($espaco_disciplina / (count($this->disciplinas))); | ||
| 795 | - | ||
| 796 | - $tam_texto = 9; | ||
| 797 | - $altura = 20; | ||
| 798 | - $tam_texto = 9; | ||
| 799 | - $fonte = 'arial'; | ||
| 800 | - $corTexto = '#000000'; | ||
| 801 | - $carga_global = 0; | ||
| 802 | - | ||
| 803 | - foreach ($this->disciplinas as $disciplina) { | ||
| 804 | - $carga_global += $disciplina['carga_horaria']; | ||
| 805 | - | ||
| 806 | - $this->pdf->escreve_relativo($disciplina['abreviatura'], $esquerda, | ||
| 807 | - $this->page_y - $altura, $espaco_disciplinas, 100, $fonte, $tam_texto, $corTexto, 'center'); | ||
| 808 | - | ||
| 809 | - $this->pdf->escreve_relativo($disciplina['carga_horaria'] . ' hrs', $esquerda, | ||
| 810 | - $this->page_y + 10 - $altura, $espaco_disciplinas, 50, $fonte, | ||
| 811 | - $tam_texto - 2, $corTexto, 'center'); | ||
| 812 | - | ||
| 813 | - $this->pdf->escreve_relativo('Nota / Conceito', $esquerda, $this->page_y + 3, | ||
| 814 | - $espaco_disciplinas / 2, 50, $fonte, $tam_texto - 2, $corTexto, 'center'); | ||
| 815 | - | ||
| 816 | - $this->pdf->escreve_relativo('Falta', $esquerda + $espaco_disciplinas / 2, | ||
| 817 | - $this->page_y + 3, $espaco_disciplinas / 2, 50, $fonte, $tam_texto - 2, | ||
| 818 | - $corTexto, 'center'); | ||
| 819 | - | ||
| 820 | - $this->pdf->linha_relativa($esquerda, $this->page_y - $altura, 0, $altura * 2); | ||
| 821 | - | ||
| 822 | - $this->pdf->linha_relativa($esquerda + $espaco_disciplinas / 2, $this->page_y, 0, $altura); | ||
| 823 | - | ||
| 824 | - $esquerda += $espaco_disciplinas; | ||
| 825 | - } | ||
| 826 | - $this->page_y += $altura; | ||
| 827 | - | ||
| 828 | - return $carga_global; | ||
| 829 | - } | ||
| 830 | - | ||
| 831 | function buscaDiasLetivos() | 565 | function buscaDiasLetivos() |
| 832 | { | 566 | { |
| 833 | $obj_calendario = new clsPmieducarEscolaAnoLetivo(); | 567 | $obj_calendario = new clsPmieducarEscolaAnoLetivo(); |
| @@ -847,13 +581,13 @@ class indice extends clsCadastro | @@ -847,13 +581,13 @@ class indice extends clsCadastro | ||
| 847 | $inicio = $lst_ano_letivo_modulo['0']; | 581 | $inicio = $lst_ano_letivo_modulo['0']; |
| 848 | $fim = $lst_ano_letivo_modulo[count($lst_ano_letivo_modulo) - 1]; | 582 | $fim = $lst_ano_letivo_modulo[count($lst_ano_letivo_modulo) - 1]; |
| 849 | 583 | ||
| 850 | - $mes_inicial = explode("-", $inicio['data_inicio']); | 584 | + $mes_inicial = explode('-', $inicio['data_inicio']); |
| 851 | $mes_inicial = $mes_inicial[1]; | 585 | $mes_inicial = $mes_inicial[1]; |
| 852 | $dia_inicial = $mes_inicial[2]; | 586 | $dia_inicial = $mes_inicial[2]; |
| 853 | 587 | ||
| 854 | - $mes_final = explode("-", $fim['data_fim']); | ||
| 855 | - $mes_final = $mes_final[1]; | ||
| 856 | - $dia_final = $mes_final[2]; | 588 | + $mes_final = explode('-', $fim['data_fim']); |
| 589 | + $mes_final = $mes_final[1]; | ||
| 590 | + $dia_final = $mes_final[2]; | ||
| 857 | } | 591 | } |
| 858 | 592 | ||
| 859 | for ($mes = $mes_inicial;$mes <= $mes_final; $mes++) { | 593 | for ($mes = $mes_inicial;$mes <= $mes_final; $mes++) { |
| @@ -911,11 +645,11 @@ class indice extends clsCadastro | @@ -911,11 +645,11 @@ class indice extends clsCadastro | ||
| 911 | } | 645 | } |
| 912 | 646 | ||
| 913 | if ($DiaSemana != 0 && $DiaSemana != 6) { | 647 | if ($DiaSemana != 0 && $DiaSemana != 6) { |
| 914 | - if (!(key_exists($dia,$dias_mes) && $dias_mes[$dia] == strtolower('n'))) { | 648 | + if (!(key_exists($dia, $dias_mes) && $dias_mes[$dia] == strtolower('n'))) { |
| 915 | $totalDiasUteis++; | 649 | $totalDiasUteis++; |
| 916 | } | 650 | } |
| 917 | } | 651 | } |
| 918 | - elseif (key_exists($dia,$dias_mes) && $dias_mes[$dia] == strtolower('e')) { | 652 | + elseif (key_exists($dia, $dias_mes) && $dias_mes[$dia] == strtolower('e')) { |
| 919 | $totalDiasUteis++; | 653 | $totalDiasUteis++; |
| 920 | } | 654 | } |
| 921 | 655 | ||
| @@ -926,6 +660,75 @@ class indice extends clsCadastro | @@ -926,6 +660,75 @@ class indice extends clsCadastro | ||
| 926 | $this->dias_letivos = $totalDiasUteis; | 660 | $this->dias_letivos = $totalDiasUteis; |
| 927 | } | 661 | } |
| 928 | 662 | ||
| 663 | + function rodape() | ||
| 664 | + { | ||
| 665 | + $texto = ''; | ||
| 666 | + $esquerda = 3; | ||
| 667 | + $altura = 22; | ||
| 668 | + $direita = 834; | ||
| 669 | + $tam_texto = 10; | ||
| 670 | + $this->pdf->escreve_relativo('Legenda', $esquerda + 2, $this->page_y += 30, | ||
| 671 | + 150, 100, $fonte, $tam_texto); | ||
| 672 | + | ||
| 673 | + if (count($this->componentes) > 10) { | ||
| 674 | + $legenda_por_linha = TRUE; | ||
| 675 | + } else { | ||
| 676 | + $legenda_por_linha = FALSE; | ||
| 677 | + } | ||
| 678 | + | ||
| 679 | + foreach ($this->componentes as $componente) { | ||
| 680 | + $texto .= $componente->abreviatura . ': ' . $componente->nome . ' '; | ||
| 681 | + | ||
| 682 | + if ($legenda_por_linha) { | ||
| 683 | + $this->pdf->escreve_relativo($texto, $esquerda + 2, $this->page_y += $altura, | ||
| 684 | + $direita, 200, $fonte, $tam_texto + 1); | ||
| 685 | + | ||
| 686 | + $texto = ''; | ||
| 687 | + | ||
| 688 | + if ($this->page_y > $this->pdf->altura - 50) { | ||
| 689 | + $texto = ''; | ||
| 690 | + $esquerda = 3; | ||
| 691 | + $altura = 18; | ||
| 692 | + $direita = 834; | ||
| 693 | + $tam_texto = 10; | ||
| 694 | + $this->pdf->ClosePage(); | ||
| 695 | + $this->pdf->OpenPage(); | ||
| 696 | + $this->addCabecalho(); | ||
| 697 | + } | ||
| 698 | + } | ||
| 699 | + } | ||
| 700 | + | ||
| 701 | + if (! $legenda_por_linha) { | ||
| 702 | + $this->pdf->escreve_relativo($texto, $esquerda + 2, $this->page_y += $altura, | ||
| 703 | + $direita, 200, $fonte, $tam_texto + 1); | ||
| 704 | + } | ||
| 705 | + | ||
| 706 | + if ($this->page_y + $altura * 2 > $this->pdf->altura - 50) { | ||
| 707 | + $texto = ''; | ||
| 708 | + $esquerda = 3; | ||
| 709 | + $altura = 18; | ||
| 710 | + $direita = 834; | ||
| 711 | + $tam_texto = 10; | ||
| 712 | + $this->pdf->ClosePage(); | ||
| 713 | + $this->pdf->OpenPage(); | ||
| 714 | + $this->addCabecalho(); | ||
| 715 | + } | ||
| 716 | + | ||
| 717 | + $this->pdf->quadrado_relativo($esquerda, $this->page_y += $altura * 2, $direita, 60); | ||
| 718 | + | ||
| 719 | + $this->pdf->escreve_relativo('Observações:', $esquerda + 1, $this->page_y + 1, 150, 200, $fonte, $tam_texto); | ||
| 720 | + | ||
| 721 | + $this->pdf->linha_relativa($esquerda + 200, $this->page_y += 120, 150, 0); | ||
| 722 | + | ||
| 723 | + $this->pdf->escreve_relativo('Assinatura do(a) Secretário(a)', $esquerda + 220, | ||
| 724 | + $this->page_y + 2, 150, 200, $fonte, 7); | ||
| 725 | + | ||
| 726 | + $this->pdf->linha_relativa($esquerda + 450, $this->page_y, 150, 0); | ||
| 727 | + | ||
| 728 | + $this->pdf->escreve_relativo('Assinatura do(a) Diretor(a)', $esquerda + 480, | ||
| 729 | + $this->page_y + 2, 150, 200, $fonte, 7); | ||
| 730 | + } | ||
| 731 | + | ||
| 929 | function Editar() | 732 | function Editar() |
| 930 | { | 733 | { |
| 931 | return FALSE; | 734 | return FALSE; |
ieducar/lib/App/Model/MatriculaSituacao.php
| @@ -54,7 +54,7 @@ class App_Model_MatriculaSituacao extends CoreExt_Enum | @@ -54,7 +54,7 @@ class App_Model_MatriculaSituacao extends CoreExt_Enum | ||
| 54 | 54 | ||
| 55 | protected $_data = array( | 55 | protected $_data = array( |
| 56 | self::APROVADO => 'Aprovado', | 56 | self::APROVADO => 'Aprovado', |
| 57 | - self::REPROVADO => 'Reprovado', | 57 | + self::REPROVADO => 'Retido', |
| 58 | self::EM_ANDAMENTO => 'Em andamento', | 58 | self::EM_ANDAMENTO => 'Em andamento', |
| 59 | self::TRANSFERIDO => 'Transferido', | 59 | self::TRANSFERIDO => 'Transferido', |
| 60 | self::RECLASSIFICADO => 'Reclassificado', | 60 | self::RECLASSIFICADO => 'Reclassificado', |
ieducar/modules/Avaliacao/Service/Boletim.php
| @@ -49,6 +49,9 @@ require_once 'App/Model/MatriculaSituacao.php'; | @@ -49,6 +49,9 @@ require_once 'App/Model/MatriculaSituacao.php'; | ||
| 49 | * @since Classe disponível desde a versão 1.1.0 | 49 | * @since Classe disponível desde a versão 1.1.0 |
| 50 | * @todo Substituir todos os usos literais de 'Rc' e 'An' por constantes | 50 | * @todo Substituir todos os usos literais de 'Rc' e 'An' por constantes |
| 51 | * ou por um novo CoreExt_Enum | 51 | * ou por um novo CoreExt_Enum |
| 52 | + * @todo Criar método que retorna o conjunto de faltas de acordo com o | ||
| 53 | + * tipo de presença da regra, refatorando a série de condicionais | ||
| 54 | + * existentes em métodos como getSituacaoFaltas() | ||
| 52 | * @version @@package_version@@ | 55 | * @version @@package_version@@ |
| 53 | */ | 56 | */ |
| 54 | class Avaliacao_Service_Boletim implements CoreExt_Configurable | 57 | class Avaliacao_Service_Boletim implements CoreExt_Configurable |