Commit ecfe8fccef2dd925692fdfad6776fcb09338364a

Authored by Eriksen Costa Paixão
1 parent 7ffc598d
Exists in master

Atualizado relatório '''Diário de Frequência''' para usar componentes {{{Compone…

…nteCurricular}}} e {{{RegraAvaliacao}}}
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
... ...