Commit ecfe8fccef2dd925692fdfad6776fcb09338364a
1 parent
7ffc598d
Exists in
master
Atualizado relatório '''Diário de Frequência''' para usar componentes {{{Compone…
…nteCurricular}}} e {{{RegraAvaliacao}}}
Showing
1 changed file
with
266 additions
and
378 deletions
Show diff stats
ieducar/intranet/educar_relatorio_diario_classe_proc.php
... | ... | @@ -34,6 +34,10 @@ require_once 'include/clsBanco.inc.php'; |
34 | 34 | require_once 'include/pmieducar/geral.inc.php'; |
35 | 35 | require_once 'include/clsPDF.inc.php'; |
36 | 36 | |
37 | +require_once 'App/Model/IedFinder.php'; | |
38 | +require_once 'App/Model/MatriculaSituacao.php'; | |
39 | +require_once 'RegraAvaliacao/Model/RegraDataMapper.php'; | |
40 | + | |
37 | 41 | /** |
38 | 42 | * clsIndexBase class. |
39 | 43 | * |
... | ... | @@ -174,6 +178,7 @@ class indice extends clsCadastro |
174 | 178 | $obj_serie = new clsPmieducarSerie($this->ref_cod_serie); |
175 | 179 | $det_serie = $obj_serie->detalhe(); |
176 | 180 | $this->nm_serie = $det_serie['nm_serie']; |
181 | + $regraId = $det_serie['regra_avaliacao_id']; | |
177 | 182 | |
178 | 183 | $obj_pessoa = new clsPessoa_($det_turma['ref_cod_regente']); |
179 | 184 | $det = $obj_pessoa->detalhe(); |
... | ... | @@ -200,216 +205,111 @@ class indice extends clsCadastro |
200 | 205 | $obj_curso = new clsPmieducarCurso($this->ref_cod_curso); |
201 | 206 | $det_curso = $obj_curso->detalhe(); |
202 | 207 | |
203 | - if ($det_curso['falta_ch_globalizada']) { | |
204 | - // Números de semanas no mês | |
205 | - $db = new clsBanco(); | |
206 | - $consulta = sprintf("SELECT padrao_ano_escolar FROM pmieducar.curso WHERE cod_curso = '%d'", $this->ref_cod_curso); | |
207 | - $padrao_ano_escolar = $db->CampoUnico($consulta); | |
208 | - $total_semanas = 0; | |
209 | - | |
210 | - if ($padrao_ano_escolar) { | |
211 | - $meses = $db->CampoUnico(sprintf(" | |
212 | - SELECT | |
213 | - to_char(data_inicio, 'dd/mm') || '-' || to_char(data_fim, 'dd/mm') | |
214 | - FROM | |
215 | - pmieducar.ano_letivo_modulo, | |
216 | - pmieducar.modulo | |
217 | - WHERE | |
218 | - modulo.cod_modulo = ano_letivo_modulo.ref_cod_modulo | |
219 | - AND modulo.ativo = 1 | |
220 | - AND ano_letivo_modulo.ref_cod_modulo = '%d' | |
221 | - AND ano_letivo_modulo.sequencial = '%d' | |
222 | - AND ref_ano = '%d' | |
223 | - AND ref_ref_cod_escola = '%d' | |
224 | - ORDER BY | |
225 | - data_inicio,data_fim ASC | |
226 | - ", $this->ref_cod_modulo, $this->sequencial, $this->ano, $this->ref_cod_escola)); | |
227 | - | |
228 | - $data = explode('-', $meses); | |
229 | - | |
230 | - if (!$this->data_ini) { | |
231 | - $this->data_ini = $data[0]; | |
232 | - } | |
233 | - | |
234 | - if (!$this->data_fim) { | |
235 | - $this->data_fim = $data[1]; | |
236 | - } | |
237 | - | |
238 | - $data_ini = explode('/', $data[0]); | |
239 | - $data_fim = explode('/', $data[1]); | |
240 | - | |
241 | - $meses = array($data_ini[1],$data_fim[1]); | |
242 | - $dias = array($data_ini[0],$data_fim[0]); | |
208 | + // Seleciona a regra para verificar se a presença é geral | |
209 | + $regraMapper = new RegraAvaliacao_Model_RegraDataMapper(); | |
210 | + $regra = $regraMapper->find($regraId); | |
211 | + $presencaGeral = $regra->get('tipoPresenca') == RegraAvaliacao_Model_TipoPresenca::GERAL; | |
243 | 212 | |
244 | - $total_semanas = 0; | |
213 | + // Seleciona o curso para ver se é padrão e decidir qual ano letivo pesquisar | |
214 | + $db = new clsBanco(); | |
215 | + $consulta = sprintf('SELECT padrao_ano_escolar FROM pmieducar.curso WHERE cod_curso = \'%d\'', $this->ref_cod_curso); | |
216 | + $padrao_ano_escolar = $db->CampoUnico($consulta); | |
245 | 217 | |
246 | - for ($mes = (int) $meses[0]; $mes <= (int) $meses[1]; $mes++) { | |
247 | - $mes_final = FALSE; | |
218 | + $total_semanas = 0; | |
248 | 219 | |
249 | - if ($mes == (int) $meses[0]) { | |
250 | - $dia = $dias[0]; | |
251 | - } | |
252 | - elseif ($mes == (int)$meses[1]) { | |
253 | - $dia = $dias[1]; | |
254 | - $mes_final = TRUE; | |
255 | - } | |
256 | - else { | |
257 | - $dia = 1; | |
258 | - } | |
259 | - | |
260 | - $total_semanas += $this->getNumeroDiasMes($dia, $mes, $this->ano, $mes_final); | |
261 | - } | |
262 | - } | |
263 | - else { | |
264 | - $meses = $db->CampoUnico(sprintf(" | |
265 | - SELECT | |
266 | - to_char(data_inicio, 'dd/mm') || '-' || to_char(data_fim, 'dd/mm') | |
267 | - FROM | |
268 | - pmieducar.turma_modulo, | |
269 | - pmieducar.modulo | |
270 | - WHERE | |
271 | - modulo.cod_modulo = turma_modulo.ref_cod_modulo | |
272 | - AND ref_cod_turma = '%d' | |
273 | - AND turma_modulo.ref_cod_modulo = '%d' | |
274 | - AND turma_modulo.sequencial = '%d' | |
275 | - AND to_char(data_inicio,'yyyy') = '%d' | |
276 | - ORDER BY | |
277 | - data_inicio,data_fim ASC | |
278 | - ", $this->ref_cod_turma, $this->ref_cod_modulo, $this->sequencial, $this->ano)); | |
279 | - | |
280 | - $total_semanas = 0; | |
281 | - | |
282 | - $data = explode('-', $meses); | |
283 | - | |
284 | - if (!$this->data_ini) { | |
285 | - $this->data_ini = $data[0]; | |
286 | - } | |
220 | + if ($padrao_ano_escolar) { | |
221 | + // Seleciona o módulo do ano letivo da escola | |
222 | + $data = $this->getDatasModulo($this->ref_cod_modulo, $this->sequencial, | |
223 | + $this->ano, $this->ref_cod_escola); | |
224 | + } | |
225 | + else { | |
226 | + // Seleciona o módulo do ano letivo da turma | |
227 | + $data = $this->getDatasModulo($this->ref_cod_modulo, $this->sequencial, | |
228 | + $this->ano, NULL, $this->ref_cod_turma); | |
229 | + } | |
287 | 230 | |
288 | - if (!$this->data_fim) { | |
289 | - $this->data_fim = $data[1]; | |
290 | - } | |
231 | + $meses = $data['meses']; | |
232 | + $dias = $data['dias']; | |
291 | 233 | |
292 | - $data_ini = explode('/', $data[0]); | |
293 | - $data_fim = explode('/', $data[1]); | |
234 | + if (!$this->data_ini) { | |
235 | + $this->data_ini = $data['dataInicial']; | |
236 | + } | |
294 | 237 | |
295 | - $meses = array($data_ini[1],$data_fim[1]); | |
296 | - $dias = array($data_ini[0],$data_fim[0]); | |
238 | + if (!$this->data_fim) { | |
239 | + $this->data_fim = $data['dataFinal']; | |
240 | + } | |
297 | 241 | |
298 | - $total_semanas = 0; | |
242 | + $total_semanas = 0; | |
299 | 243 | |
300 | - for ($mes = $meses[0]; $mes <= $meses[1]; $mes++) { | |
301 | - $mes_final = FALSE; | |
244 | + for ($mes = $meses[0]; $mes <= $meses[1]; $mes++) { | |
245 | + $mes_final = FALSE; | |
302 | 246 | |
303 | - if ($mes == $meses[0]) { | |
304 | - $dia = $dias[0]; | |
305 | - } | |
306 | - elseif ($mes == $meses[1]) { | |
307 | - $dia = 1; | |
308 | - $mes_final = TRUE; | |
309 | - } | |
310 | - else { | |
311 | - $dia = 1; | |
312 | - } | |
313 | - | |
314 | - $total_semanas += $this->getNumeroDiasMes($dia, $mes, $this->ano, $mes_final); | |
315 | - } | |
247 | + if ($mes == $meses[0]) { | |
248 | + $dia = $dias[0]; | |
316 | 249 | } |
317 | - | |
318 | - $this->pdf = new clsPDF('Diário de Classe - ' . $this->ano, | |
319 | - sprintf('Diário de Classe - %s até %s de %s', $data[0], $data[1], $this->ano), | |
320 | - 'A4', '', FALSE, FALSE | |
321 | - ); | |
322 | - | |
323 | - $this->mes_inicial = (int) $meses[0]; | |
324 | - $this->mes_final = (int) $meses[1]; | |
325 | - $this->pdf->largura = 842.0; | |
326 | - $this->pdf->altura = 595.0; | |
327 | - | |
328 | - $this->total = $total_semanas; | |
329 | - | |
330 | - if (!$this->em_branco) { | |
331 | - $obj_matricula_turma = new clsPmieducarMatriculaTurma(); | |
332 | - $obj_matricula_turma->setOrderby('nome_ascii'); | |
333 | - $lista_matricula = $obj_matricula_turma->lista(NULL, $this->ref_cod_turma, | |
334 | - NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, | |
335 | - $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, | |
336 | - NULL, NULL, array(1, 2, 3), NULL, NULL, $this->ano, NULL, TRUE, NULL, | |
337 | - NULL, TRUE); | |
250 | + elseif ($mes == $meses[1]) { | |
251 | + $dia = $dias[1]; | |
252 | + $mes_final = TRUE; | |
253 | + } | |
254 | + else { | |
255 | + $dia = 1; | |
338 | 256 | } |
339 | 257 | |
340 | - if ($lista_matricula || $this->em_branco) { | |
341 | - $this->pdf->OpenPage(); | |
342 | - $this->addCabecalho(); | |
343 | - | |
344 | - if ($this->em_branco) { | |
345 | - $lista_matricula = array(); | |
346 | - $this->numero_registros = $this->numero_registros ? | |
347 | - $this->numero_registros : 20; | |
258 | + $total_semanas += $this->getNumeroDiasMes($dia, $mes, $this->ano, $mes_final); | |
259 | + } | |
348 | 260 | |
349 | - for ($i = 0 ; $i < $this->numero_registros; $i++) { | |
350 | - $lista_matricula[] = ''; | |
351 | - } | |
352 | - } | |
261 | + $this->pdf = new clsPDF('Diário de Classe - ' . $this->ano, | |
262 | + sprintf('Diário de Classe - %s até %s de %s', $this->data_ini, $this->data_fim, $this->ano), | |
263 | + 'A4', '', FALSE, FALSE | |
264 | + ); | |
353 | 265 | |
354 | - $num = 0; | |
355 | - foreach ($lista_matricula as $matricula) { | |
356 | - $num++; | |
266 | + $this->mes_inicial = (int) $meses[0]; | |
267 | + $this->mes_final = (int) $meses[1]; | |
268 | + $this->pdf->largura = 842.0; | |
269 | + $this->pdf->altura = 595.0; | |
357 | 270 | |
358 | - if ($this->page_y > 500) { | |
359 | - $this->desenhaLinhasVertical(); | |
360 | - $this->pdf->ClosePage(); | |
361 | - $this->pdf->OpenPage(); | |
362 | - $this->page_y = 125; | |
363 | - $this->addCabecalho(); | |
364 | - } | |
271 | + $this->total = $total_semanas; | |
365 | 272 | |
366 | - $this->pdf->quadrado_relativo(30, $this->page_y , 782, 19); | |
367 | - $this->pdf->escreve_relativo($matricula['nome_aluno'] , 33, | |
368 | - $this->page_y + 4, 160, 15, $fonte, 7, $corTexto, 'left'); | |
273 | + if (!$this->em_branco) { | |
274 | + $obj_matricula_turma = new clsPmieducarMatriculaTurma(); | |
275 | + $obj_matricula_turma->setOrderby('nome_ascii'); | |
369 | 276 | |
370 | - $this->pdf->escreve_relativo(sprintf('%02d', $num), 757, | |
371 | - $this->page_y + 4, 30, 30, $fonte, 7, $corTexto, 'left'); | |
277 | + $matriculaSituacao = array( | |
278 | + App_Model_MatriculaSituacao::APROVADO, | |
279 | + App_Model_MatriculaSituacao::REPROVADO, | |
280 | + App_Model_MatriculaSituacao::EM_ANDAMENTO | |
281 | + ); | |
372 | 282 | |
373 | - $this->page_y +=19; | |
374 | - } | |
283 | + $lista_matricula = $obj_matricula_turma->lista(NULL, $this->ref_cod_turma, | |
284 | + NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, | |
285 | + $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, | |
286 | + NULL, NULL, $matriculaSituacao, NULL, NULL, $this->ano, NULL, TRUE, NULL, | |
287 | + NULL, TRUE | |
288 | + ); | |
289 | + } | |
375 | 290 | |
376 | - $this->desenhaLinhasVertical(); | |
291 | + if ($this->em_branco) { | |
292 | + $lista_matricula = array(); | |
293 | + $this->numero_registros = $this->numero_registros ? $this->numero_registros : 20; | |
377 | 294 | |
378 | - $this->rodape(); | |
379 | - $this->pdf->ClosePage(); | |
295 | + for ($i = 0 ; $i < $this->numero_registros; $i++) { | |
296 | + $lista_matricula[] = ''; | |
380 | 297 | } |
381 | - else { | |
382 | - echo ' | |
383 | - <script> | |
384 | - alert("Turma não possui matriculas"); | |
385 | - window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1)); | |
386 | - </script>'; | |
298 | + } | |
387 | 299 | |
388 | - return; | |
389 | - } | |
300 | + // Seleciona os componentes da escola/série | |
301 | + $componentes = App_Model_IedFinder::getEscolaSerieDisciplina( | |
302 | + $this->ref_cod_serie, $this->ref_cod_escola, TRUE | |
303 | + ); | |
390 | 304 | |
391 | - $this->pdf->CloseFile(); | |
392 | - $this->get_link = $this->pdf->GetLink(); | |
393 | - } | |
394 | - else { | |
395 | - // Carga horária não globalizada gera relatório com uma disciplina por | |
396 | - // página | |
397 | - $obj_turma_disc = new clsPmieducarDisciplinaSerie(); | |
398 | - $obj_turma_disc->setCamposLista('ref_cod_disciplina'); | |
399 | - $lst_turma_disc = $obj_turma_disc->lista(NULL, $this->ref_cod_serie, 1); | |
400 | - | |
401 | - if ($lst_turma_disc) { | |
402 | - $this->pdf = new clsPDF('Diário de Classe - ' . $this->ano, | |
403 | - sprintf('Diário de Classe - %s até %s de %s', $this->data_ini, $this->data_fim, $this->ano), | |
404 | - 'A4', '', FALSE, FALSE | |
405 | - ); | |
406 | - | |
407 | - foreach ($lst_turma_disc as $disciplina) { | |
408 | - $obj_disc = new clsPmieducarDisciplina($disciplina); | |
409 | - $det_disc = $obj_disc->detalhe(); | |
410 | - $this->nm_disciplina = $det_disc['nm_disciplina']; | |
411 | - $this->page_y = 125; | |
305 | + if (0 < count($componentes) && FALSE == $presencaGeral) { | |
306 | + $this->total = $total_semanas = 0; | |
412 | 307 | |
308 | + foreach ($componentes as $componente) { | |
309 | + $this->nm_disciplina = $componente->nome; | |
310 | + $this->page_y = 125; | |
311 | + | |
312 | + if (FALSE == $presencaGeral) { | |
413 | 313 | // Número de semanas dos meses |
414 | 314 | $obj_quadro = new clsPmieducarQuadroHorario(); |
415 | 315 | $obj_quadro->setCamposLista('cod_quadro_horario'); |
... | ... | @@ -417,8 +317,12 @@ class indice extends clsCadastro |
417 | 317 | NULL, NULL, NULL, NULL, 1); |
418 | 318 | |
419 | 319 | if (!$quadro_horario) { |
420 | - echo '<script>alert(\'Turma não possui quadro de horários\'); | |
421 | - window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));</script>'; | |
320 | + echo ' | |
321 | + <script> | |
322 | + alert(\'Turma não possui quadro de horários\'); | |
323 | + window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1)); | |
324 | + </script>'; | |
325 | + | |
422 | 326 | die(); |
423 | 327 | } |
424 | 328 | |
... | ... | @@ -427,190 +331,56 @@ class indice extends clsCadastro |
427 | 331 | $obj_quadro_horarios->setOrderby('1 asc'); |
428 | 332 | |
429 | 333 | $lista_quadro_horarios = $obj_quadro_horarios->lista($quadro_horario[0], |
430 | - $this->ref_cod_serie, $this->ref_cod_escola, $disciplina, NULL, NULL, | |
334 | + $this->ref_cod_serie, $this->ref_cod_escola, $componente->id, NULL, NULL, | |
431 | 335 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1); |
432 | 336 | |
433 | - $db = new clsBanco(); | |
434 | - $consulta = sprintf('SELECT padrao_ano_escolar FROM pmieducar.curso WHERE cod_curso = \'%d\'', $this->ref_cod_curso); | |
435 | - $padrao_ano_escolar = $db->CampoUnico($consulta); | |
436 | - | |
437 | - $total_semanas = 0; | |
438 | - | |
439 | - if ($padrao_ano_escolar) { | |
440 | - $meses = $db->CampoUnico(sprintf(" | |
441 | - SELECT | |
442 | - to_char(data_inicio, 'dd/mm') || '-' || to_char(data_fim, 'dd/mm') | |
443 | - FROM | |
444 | - pmieducar.ano_letivo_modulo, | |
445 | - pmieducar.modulo | |
446 | - WHERE | |
447 | - modulo.cod_modulo = ano_letivo_modulo.ref_cod_modulo | |
448 | - AND modulo.ativo = 1 | |
449 | - AND ano_letivo_modulo.ref_cod_modulo = '%d' | |
450 | - AND ano_letivo_modulo.sequencial = '%d' | |
451 | - AND ref_ano = '%d' | |
452 | - AND ref_ref_cod_escola = '%d' | |
453 | - ORDER BY | |
454 | - data_inicio,data_fim ASC | |
455 | - ", $this->ref_cod_modulo, $this->sequencial, $this->ano, $this->ref_cod_escola)); | |
456 | - | |
457 | - $data = explode('-', $meses); | |
458 | - | |
459 | - if (!$this->data_ini) { | |
460 | - $this->data_ini = $data[0]; | |
461 | - } | |
462 | - | |
463 | - if (!$this->data_fim) { | |
464 | - $this->data_fim = $data[1]; | |
465 | - } | |
466 | - | |
467 | - $data_ini = explode('/', $data[0]); | |
468 | - $data_fim = explode('/', $data[1]); | |
469 | - | |
470 | - $meses = array($data_ini[1], $data_fim[1]); | |
471 | - $dias = array($data_ini[0], $data_fim[0]); | |
337 | + if (FALSE == $lista_quadro_horarios) { | |
338 | + continue; | |
472 | 339 | } |
473 | - else | |
474 | - { | |
475 | - $meses = $db->CampoUnico(sprintf(" | |
476 | - SELECT | |
477 | - to_char(data_inicio, 'mm') || '-' || to_char(data_fim, 'mm') | |
478 | - FROM | |
479 | - pmieducar.turma_modulo, | |
480 | - pmieducar.modulo | |
481 | - WHERE | |
482 | - modulo.cod_modulo = turma_modulo.ref_cod_modulo | |
483 | - AND ref_cod_turma = '%d' | |
484 | - AND turma_modulo.ref_cod_modulo = '%d' | |
485 | - AND turma_modulo.sequencial = '%d' | |
486 | - AND to_char(data_inicio,'yyyy') = '%d' | |
487 | - ORDER BY | |
488 | - data_inicio, data_fim ASC | |
489 | - ", $this->ref_cod_turma, $this->ref_cod_modulo, $this->sequencial, $this->ano)); | |
490 | - | |
491 | - $data = explode('-', $meses); | |
492 | - | |
493 | - if (!$this->data_ini) { | |
494 | - $this->data_ini = $data[0]; | |
495 | - } | |
496 | 340 | |
497 | - if (!$this->data_fim) { | |
498 | - $this->data_fim = $data[1]; | |
499 | - } | |
341 | + for ($mes_ = $meses[0]; $mes_ <= $meses[1]; $mes_++) { | |
342 | + $mes_final = FALSE; | |
500 | 343 | |
501 | - $data_ini = explode('/', $data[0]); | |
502 | - $data_fim = explode('/', $data[1]); | |
503 | - | |
504 | - $meses = array($data_ini[1], $data_fim[1]); | |
505 | - $dias = array($data_ini[0], $data_fim[0]); | |
506 | - } | |
507 | - | |
508 | - $total_dias_semanas = 0; | |
509 | - | |
510 | - if($lista_quadro_horarios) { | |
511 | - for($mes_ = $meses[0]; $mes_ <= $meses[1]; $mes_++) { | |
512 | - $mes_final = FALSE; | |
513 | - | |
514 | - foreach ($lista_quadro_horarios as $dia_semana) { | |
515 | - if($mes_ == $meses[0]) { | |
516 | - $dia = $dias[0]; | |
517 | - } | |
518 | - elseif ($mes == $meses[1]) { | |
519 | - $dia = 1; | |
520 | - $mes_final = TRUE; | |
521 | - } | |
522 | - else { | |
523 | - $dia = 1; | |
524 | - } | |
525 | - | |
526 | - $total_dias_semanas += $this->getDiasSemanaMes( | |
527 | - $dia, $mes_,$this->ano,$dia_semana,$mes_final | |
528 | - ); | |
344 | + foreach ($lista_quadro_horarios as $dia_semana) { | |
345 | + if($mes_ == $meses[0]) { | |
346 | + $dia = $dias[0]; | |
529 | 347 | } |
530 | - } | |
531 | - | |
532 | - $this->mes_inicial = (int) $meses[0]; | |
533 | - $this->mes_final = (int) $meses[1]; | |
534 | - $this->pdf->largura = 842.0; | |
535 | - $this->pdf->altura = 595.0; | |
536 | - | |
537 | - $this->total = $total_dias_semanas; | |
538 | - | |
539 | - if (!$this->total) { | |
540 | - break; | |
541 | - } | |
542 | - } | |
543 | - | |
544 | - if (!$this->em_branco) { | |
545 | - $obj_matricula_turma = new clsPmieducarMatriculaTurma(); | |
546 | - $obj_matricula_turma->setOrderby('nome_ascii'); | |
547 | - $lista_matricula = $obj_matricula_turma->lista(NULL, $this->ref_cod_turma, | |
548 | - NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, | |
549 | - $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, | |
550 | - NULL, NULL, array(1, 2, 3), NULL, NULL, $this->ano, NULL, TRUE, NULL, | |
551 | - NULL, TRUE | |
552 | - ); | |
553 | - } | |
554 | - | |
555 | - if ($lista_matricula || $this->em_branco) { | |
556 | - $this->pdf->OpenPage(); | |
557 | - $this->addCabecalho(); | |
558 | - | |
559 | - if ($this->em_branco) { | |
560 | - $lista_matricula = array(); | |
561 | - $this->numero_registros = $this->numero_registros ? $this->numero_registros : 20; | |
562 | - | |
563 | - for ($i = 0 ; $i < $this->numero_registros; $i++) { | |
564 | - $lista_matricula[] = ''; | |
348 | + elseif ($mes == $meses[1]) { | |
349 | + $dia = 1; | |
350 | + $mes_final = TRUE; | |
565 | 351 | } |
566 | - } | |
567 | - | |
568 | - $num = 0; | |
569 | - foreach ($lista_matricula as $matricula) { | |
570 | - $num++; | |
571 | - | |
572 | - if ($this->page_y > 500) { | |
573 | - $this->desenhaLinhasVertical(); | |
574 | - $this->pdf->ClosePage(); | |
575 | - $this->pdf->OpenPage(); | |
576 | - $this->page_y = 125; | |
577 | - $this->addCabecalho(); | |
352 | + else { | |
353 | + $dia = 1; | |
578 | 354 | } |
579 | 355 | |
580 | - $this->pdf->quadrado_relativo(30, $this->page_y, 782, 19); | |
581 | - | |
582 | - $this->pdf->escreve_relativo($matricula['nome_aluno'] , 33, | |
583 | - $this->page_y + 4, 160, 15, $fonte, 7, $corTexto, 'left'); | |
584 | - | |
585 | - $this->pdf->escreve_relativo(sprintf('%02d', $num), 757, | |
586 | - $this->page_y + 4, 30, 30, $fonte, 7, $corTexto, 'left'); | |
587 | - | |
588 | - $this->page_y +=19; | |
356 | + $total_semanas += $this->getDiasSemanaMes( | |
357 | + $dia, $mes_, $this->ano, $dia_semana, $mes_final | |
358 | + ); | |
589 | 359 | } |
590 | - | |
591 | - $this->desenhaLinhasVertical(); | |
592 | - $this->pdf->ClosePage(); | |
593 | 360 | } |
594 | - else { | |
595 | - echo ' | |
596 | - <script> | |
597 | - alert("Turma não possui matrículas"); | |
598 | - window.parent.fechaExpansivel(\'div_dinamico_\' + (window.parent.DOM_divs.length - 1)); | |
599 | - </script>'; | |
600 | 361 | |
601 | - return; | |
602 | - } | |
362 | + $this->total = $total_semanas; | |
603 | 363 | } |
604 | - } | |
605 | 364 | |
606 | - if ($this->total) { | |
607 | - $this->pdf->CloseFile(); | |
608 | - $this->get_link = $this->pdf->GetLink(); | |
609 | - } | |
610 | - else { | |
611 | - $this->mensagem = 'Não existem dias letivos cadastrados para esta turma'; | |
365 | + if (!$this->total) { | |
366 | + continue; | |
367 | + } | |
368 | + | |
369 | + $this->gerarListaAlunos($lista_matricula); | |
612 | 370 | } |
613 | 371 | } |
372 | + else { | |
373 | + $this->gerarListaAlunos($lista_matricula); | |
374 | + } | |
375 | + | |
376 | + if ($this->total) { | |
377 | + $this->pdf->CloseFile(); | |
378 | + $this->get_link = $this->pdf->GetLink(); | |
379 | + } | |
380 | + else { | |
381 | + $this->mensagem = 'Não existem dias letivos cadastrados para esta turma'; | |
382 | + return; | |
383 | + } | |
614 | 384 | |
615 | 385 | echo sprintf(' |
616 | 386 | <script> |
... | ... | @@ -633,8 +403,127 @@ class indice extends clsCadastro |
633 | 403 | </html>', $this->get_link); |
634 | 404 | } |
635 | 405 | |
406 | + /** | |
407 | + * Retorna a data inicial e final de um módulo do ano letivo de uma escola ou | |
408 | + * turma. | |
409 | + * | |
410 | + * @param int $codModulo | |
411 | + * @param int $sequencial | |
412 | + * @param int $ano | |
413 | + * @param int|NULL $codEscola Opcional. O código da escola para o qual o | |
414 | + * módulo do ano letivo será selecionado | |
415 | + * @param int|NULL $codTurma Opcional. O código da turma com o qual o | |
416 | + * módulo do ano letivo será selecionado | |
417 | + * @throws App_Model_Exception | |
418 | + * @return array | |
419 | + */ | |
420 | + function getDatasModulo($codModulo, $sequencial, $ano, $codEscola = NULL, $codTurma = NULL) | |
421 | + { | |
422 | + if (is_null($codEscola) && is_null($codTurma)) { | |
423 | + require_once 'App/Model/Exception.php'; | |
424 | + throw new App_Model_Exception('É necessário informar um código de escola ou de turma.'); | |
425 | + } | |
426 | + | |
427 | + if ($codEscola) { | |
428 | + $sql = sprintf(" | |
429 | + SELECT | |
430 | + to_char(data_inicio, 'dd/mm') || '-' || to_char(data_fim, 'dd/mm') | |
431 | + FROM | |
432 | + pmieducar.ano_letivo_modulo, | |
433 | + pmieducar.modulo | |
434 | + WHERE | |
435 | + modulo.cod_modulo = ano_letivo_modulo.ref_cod_modulo | |
436 | + AND modulo.ativo = 1 | |
437 | + AND ano_letivo_modulo.ref_cod_modulo = '%d' | |
438 | + AND ano_letivo_modulo.sequencial = '%d' | |
439 | + AND ref_ano = '%d' | |
440 | + AND ref_ref_cod_escola = '%d' | |
441 | + ORDER BY | |
442 | + data_inicio,data_fim ASC", $codModulo, $sequencial, $ano, $codEscola); | |
443 | + } | |
444 | + else { | |
445 | + $sql = sprintf(" | |
446 | + SELECT | |
447 | + to_char(data_inicio, 'mm') || '-' || to_char(data_fim, 'mm') | |
448 | + FROM | |
449 | + pmieducar.turma_modulo, | |
450 | + pmieducar.modulo | |
451 | + WHERE | |
452 | + modulo.cod_modulo = turma_modulo.ref_cod_modulo | |
453 | + AND ref_cod_turma = '%d' | |
454 | + AND turma_modulo.ref_cod_modulo = '%d' | |
455 | + AND turma_modulo.sequencial = '%d' | |
456 | + AND to_char(data_inicio, 'yyyy') = '%d' | |
457 | + ORDER BY | |
458 | + data_inicio, data_fim ASC", $codTurma, $codModulo, $sequencial, $ano); | |
459 | + } | |
460 | + | |
461 | + $db = new clsBanco(); | |
462 | + $meses = $db->CampoUnico($sql); | |
463 | + | |
464 | + $data = explode('-', $meses); | |
465 | + | |
466 | + $data_ini = explode('/', $data[0]); | |
467 | + $data_fim = explode('/', $data[1]); | |
468 | + | |
469 | + return array( | |
470 | + 'dataInicial' => $data[0], | |
471 | + 'dataFinal' => $data[1], | |
472 | + 'meses' => array($data_ini[1], $data_fim[1]), | |
473 | + 'dias' => array($data_ini[0], $data_fim[0]) | |
474 | + ); | |
475 | + } | |
476 | + | |
477 | + /** | |
478 | + * Gera a lista de alunos no documento PDF. | |
479 | + * | |
480 | + * @param array $lista_matricula | |
481 | + * @param string $fonte | |
482 | + * @param string $corTexto | |
483 | + */ | |
484 | + function gerarListaAlunos($lista_matricula = NULL, $fonte = 'arial', $corTexto = '#000000') | |
485 | + { | |
486 | + if (!$lista_matricula && !$this->em_branco) { | |
487 | + echo ' | |
488 | + <script> | |
489 | + alert("Turma não possui matrículas"); | |
490 | + window.parent.fechaExpansivel(\'div_dinamico_\' + (window.parent.DOM_divs.length - 1)); | |
491 | + </script>'; | |
492 | + | |
493 | + return; | |
494 | + } | |
495 | + | |
496 | + $this->pdf->OpenPage(); | |
497 | + $this->addCabecalho(); | |
498 | + | |
499 | + $num = 0; | |
500 | + foreach ($lista_matricula as $matricula) { | |
501 | + $num++; | |
636 | 502 | |
637 | - public function addCabecalho() | |
503 | + if ($this->page_y > 500) { | |
504 | + $this->desenhaLinhasVertical(); | |
505 | + $this->pdf->ClosePage(); | |
506 | + $this->pdf->OpenPage(); | |
507 | + $this->page_y = 125; | |
508 | + $this->addCabecalho(); | |
509 | + } | |
510 | + | |
511 | + $this->pdf->quadrado_relativo(30, $this->page_y, 782, 19); | |
512 | + | |
513 | + $this->pdf->escreve_relativo($matricula['nome'], 33, | |
514 | + $this->page_y + 4, 160, 15, $fonte, 7, $corTexto, 'left'); | |
515 | + | |
516 | + $this->pdf->escreve_relativo(sprintf('%02d', $num), 757, | |
517 | + $this->page_y + 4, 30, 30, $fonte, 7, $corTexto, 'left'); | |
518 | + | |
519 | + $this->page_y +=19; | |
520 | + } | |
521 | + | |
522 | + $this->desenhaLinhasVertical(); | |
523 | + $this->pdf->ClosePage(); | |
524 | + } | |
525 | + | |
526 | + function addCabecalho() | |
638 | 527 | { |
639 | 528 | /** |
640 | 529 | * Variável global com objetos do CoreExt. |
... | ... | @@ -711,7 +600,6 @@ class indice extends clsCadastro |
711 | 600 | 80, $fonte, 10, $corTexto, 'left'); |
712 | 601 | } |
713 | 602 | |
714 | - | |
715 | 603 | function desenhaLinhasVertical() |
716 | 604 | { |
717 | 605 | $corTexto = '#000000'; |
... | ... | @@ -778,16 +666,6 @@ class indice extends clsCadastro |
778 | 666 | $this->pdf->linha_relativa(660, 517, 130, 0); |
779 | 667 | } |
780 | 668 | |
781 | - function Editar() | |
782 | - { | |
783 | - return FALSE; | |
784 | - } | |
785 | - | |
786 | - function Excluir() | |
787 | - { | |
788 | - return FALSE; | |
789 | - } | |
790 | - | |
791 | 669 | function getNumeroDiasMes($dia, $mes, $ano, $mes_final = FALSE) |
792 | 670 | { |
793 | 671 | $year = $ano; |
... | ... | @@ -830,7 +708,7 @@ class indice extends clsCadastro |
830 | 708 | $dia_semana_corrente = getdate($date); |
831 | 709 | $dia_semana_corrente = $dia_semana_corrente['wday'] + 1; |
832 | 710 | |
833 | - if (($dia_semana_corrente != 1 && $dia_semana_corrente != 7) && (array_search($day,$dias_nao_letivo) === FALSE)) { | |
711 | + if (($dia_semana_corrente != 1 && $dia_semana_corrente != 7) && (array_search($day, $dias_nao_letivo) === FALSE)) { | |
834 | 712 | $numero_dias++; |
835 | 713 | } |
836 | 714 | } |
... | ... | @@ -845,15 +723,15 @@ class indice extends clsCadastro |
845 | 723 | |
846 | 724 | $date = mktime(1, 1, 1, $month, $dia, $year); |
847 | 725 | |
848 | - $first_day_of_month = strtotime("-" . (date("d", $date) - 1) . " days", $date); | |
849 | - $last_day_of_month = strtotime("+" . (date("t", $first_day_of_month) - 1) . " days", $first_day_of_month); | |
726 | + $first_day_of_month = strtotime('-' . (date('d', $date) - 1) . ' days', $date); | |
727 | + $last_day_of_month = strtotime('+' . (date('t', $first_day_of_month) - 1) . ' days', $first_day_of_month); | |
850 | 728 | |
851 | - $last_day_of_month = date("d", $last_day_of_month); | |
729 | + $last_day_of_month = date('d', $last_day_of_month); | |
852 | 730 | |
853 | 731 | $numero_dias = 0; |
854 | 732 | |
855 | 733 | $obj_calendario = new clsPmieducarCalendarioAnoLetivo(); |
856 | - $obj_calendario->setCamposLista("cod_calendario_ano_letivo"); | |
734 | + $obj_calendario->setCamposLista('cod_calendario_ano_letivo'); | |
857 | 735 | $lista_calendario = $obj_calendario->lista(NULL, $this->ref_cod_escola, NULL, |
858 | 736 | NULL, $this->ano, NULL, NULL, NULL, NULL, 1); |
859 | 737 | |
... | ... | @@ -863,14 +741,14 @@ class indice extends clsCadastro |
863 | 741 | |
864 | 742 | $obj_dia = new clsPmieducarCalendarioDia(); |
865 | 743 | $obj_dia->setCamposLista('dia'); |
866 | - $dias_nao_letivo = $obj_dia->lista($lista_calendario,$mes, NULL, NULL, NULL, | |
744 | + $dias_nao_letivo = $obj_dia->lista($lista_calendario, $mes, NULL, NULL, NULL, | |
867 | 745 | NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, "'n'"); |
868 | 746 | |
869 | 747 | if (!$dias_nao_letivo) { |
870 | 748 | $dias_nao_letivo = array(); |
871 | 749 | } |
872 | 750 | |
873 | - if($mes_final) { | |
751 | + if ($mes_final) { | |
874 | 752 | $last_day_of_month = $dia; |
875 | 753 | $dia = 1; |
876 | 754 | } |
... | ... | @@ -880,11 +758,11 @@ class indice extends clsCadastro |
880 | 758 | $dia_semana_corrente = getdate($date); |
881 | 759 | $dia_semana_corrente = $dia_semana_corrente['wday'] + 1; |
882 | 760 | |
883 | - $data_atual = sprintf("%s/%s/%s", $day, $mes, $ano); | |
884 | - $data_final = sprintf("%s/%s", $this->data_fim, $ano); | |
761 | + $data_atual = sprintf('%s/%s/%s', $day, $mes, $ano); | |
762 | + $data_final = sprintf('%s/%s', $this->data_fim, $ano); | |
885 | 763 | |
886 | 764 | if (($dia_semana == $dia_semana_corrente) && |
887 | - (array_search($day,$dias_nao_letivo) === FALSE) && data_maior($data_final, $data_atual) | |
765 | + (array_search($day, $dias_nao_letivo) === FALSE) && data_maior($data_final, $data_atual) | |
888 | 766 | ) { |
889 | 767 | $numero_dias++; |
890 | 768 | } |
... | ... | @@ -892,6 +770,16 @@ class indice extends clsCadastro |
892 | 770 | |
893 | 771 | return $numero_dias; |
894 | 772 | } |
773 | + | |
774 | + function Editar() | |
775 | + { | |
776 | + return FALSE; | |
777 | + } | |
778 | + | |
779 | + function Excluir() | |
780 | + { | |
781 | + return FALSE; | |
782 | + } | |
895 | 783 | } |
896 | 784 | |
897 | 785 | // Instancia objeto de página | ... | ... |