Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function onGenerate()
- {
- try {
- $object = $this->form->getData();
- $htmlTodos = NULL;
- TTransaction::open('permission');
- $school = new SystemUnit(TSession::getValue('userunitid'));
- TTransaction::close();
- $replaces = [
- 'photo_path_empresa' => 'https://redemunicipal.sistematoth.com.br/siga/' . $school->logo,
- 'nomeEscola' => $school->name,
- 'enderecoEscola1' => strtoupper($school->logradouro) . ", {$school->numero} - " . strtoupper($school->bairro),
- 'contatoEscola' => $school->telefone,
- 'endereco_escola_cidade' => strtoupper($school->cidade),
- 'endereco_escola_uf' => strtoupper($school->estado),
- 'endereco_escola_pais' => strtoupper($school->pais),
- ];
- $htmlTodos = NULL;
- TTransaction::open(TSession::getValue('userunitid'));
- $grade = GradeCurricular::select('id', 'curso_id', 'serie_id')
- ->where('periodo_id', '=', $object->periodo_id)
- ->where('serie_id', '=', $object->serie_id)
- ->first();
- if (!$grade) {
- // Handle the case where $grade is not found.
- // You might want to return an error message or take appropriate action.
- }
- $grade_disciplinas = GradeCurricularDisciplina::select('disciplina_id')
- ->where('grade_curricular_id', '=', $grade->id)
- ->load();
- $curso_id = $object->curso_id;
- $serie_id = $object->serie_id;
- $turma_id = $object->turma_id;
- foreach ($grade_disciplinas as $grade_disciplina) {
- $turma = new Turma($object->turma_id);
- $replaces['turma'] = $grade->curso->nome . ' / ' . $grade->serie->nome . ' / ' . $turma->nome . ' / ' . $turma->turno->nome;
- $replaces['disciplina'] = $grade_disciplina->disciplina->nome;
- $table_disciplinas = '<table cellspacing=0 class="borda" style="width:100%;">';
- $table_disciplinas .= "<th style='padding left borda' class='center borda negrito'>Nº</td>";
- $table_disciplinas .= "<th style='padding left borda' class='center borda negrito'>Matrícula</td>";
- $table_disciplinas .= "<th style='padding left borda' class='center borda negrito'>Nome do aluno(a)</td>";
- $frequencia_datas = [];
- switch ($curso_id) {
- case 3:
- $frequencia_datas = AlunoFrequencia::select('data_frequencia')
- ->where('turma_id', '=', $object->turma_id)
- ->where('disciplina_id', '=', $grade_disciplina->disciplina_id)
- ->where('data_frequencia', '>=', $object->dt_ini)
- ->where('data_frequencia', '<=', $object->dt_fim)
- ->groupBy('data_frequencia')
- ->orderBy('data_frequencia')
- ->load();
- break;
- case 2:
- $frequencia_datas = AlunoFrequenciaEFI::select('data_frequencia')
- ->where('turma_id', '=', $object->turma_id)
- ->where('data_frequencia', '>=', $object->dt_ini)
- ->where('data_frequencia', '<=', $object->dt_fim)
- ->groupBy('data_frequencia')
- ->orderBy('data_frequencia')
- ->load();
- break;
- case 1:
- $frequencia_datas = AlunoFrequenciaEI::select('data_frequencia')
- ->where('turma_id', '=', $object->turma_id)
- ->where('data_frequencia', '>=', $object->dt_ini)
- ->where('data_frequencia', '<=', $object->dt_fim)
- ->groupBy('data_frequencia')
- ->orderBy('data_frequencia')
- ->load();
- break;
- case 4:
- if ($serie_id >= 224 && $serie_id <= 227) {
- $frequencia_datas = AlunoFrequenciaEJAEFI::select('data_frequencia')
- ->where('turma_id', '=', $object->turma_id)
- ->where('data_frequencia', '>=', $object->dt_ini)
- ->where('data_frequencia', '<=', $object->dt_fim)
- ->groupBy('data_frequencia')
- ->orderBy('data_frequencia')
- ->load();
- } elseif ($serie_id >= 228 && $serie_id <= 231) {
- $frequencia_datas = AlunoFrequenciaEJAEFII::select('data_frequencia')
- ->where('turma_id', '=', $object->turma_id)
- ->where('disciplina_id', '=', $grade_disciplina->disciplina_id)
- ->where('data_frequencia', '>=', $object->dt_ini)
- ->where('data_frequencia', '<=', $object->dt_fim)
- ->groupBy('data_frequencia')
- ->orderBy('data_frequencia')
- ->load();
- }
- break;
- case 5:
- if ($serie_id == 24 || $serie_id == 25) {
- $frequencia_datas = AlunoFrequenciaEJACAMPO::select('data_frequencia')
- ->where('turma_id', '=', $object->turma_id)
- ->where('disciplina_id', '=', $grade_disciplina->disciplina_id)
- ->where('data_frequencia', '>=', $object->dt_ini)
- ->where('data_frequencia', '<=', $object->dt_fim)
- ->groupBy('data_frequencia')
- ->orderBy('data_frequencia')
- ->load();
- }
- break;
- }
- foreach ($frequencia_datas as $frequencia_data) {
- $data = explode('-', $frequencia_data->data_frequencia);
- $table_disciplinas .= "<th style='padding: 1px; text-align: center; border: 1px solid black; font-weight: bold; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; width: 10px;'>{$data[2]}/{$data[1]}</th>";
- }
- $table_disciplinas .= "</tr>";
- /* $repository = new TRepository('AlunoTurma');
- $criteria = new TCriteria;
- $criteria->add(new TFilter('turma_id', '=', $turma_id));
- $criteria->add(new TFilter('situacao_id', '=', 1));
- $alunos_turma = $repository->load($criteria); */
- $alunos_turma = AlunoTurma::select('aluno_id')
- ->where('turma_id', '=', $object->turma_id)
- ->where('situacao_id', '=', 1)
- ->load();
- /* if (is_array($alunos_turma)) {
- $filteredObjects = array_filter($alunos_turma, static function ($object) {
- return $object instanceof AlunoTurma;
- });
- usort($filteredObjects, static function ($a, $b) {
- return strnatcasecmp($a->Aluno->name, $b->Aluno->name);
- });
- $alunos_turma = $filteredObjects;
- } */
- foreach ($alunos_turma as $aluno_turma) {
- if ($alt == true) {
- $table_disciplinas .= '<tr>';
- $alt = false;
- } else {
- $table_disciplinas .= '<tr class="gray">';
- $alt = true;
- }
- $cont++;
- $matricula = $aluno_turma->Aluno->matricula;
- $nome_aluno = mb_strtoupper($aluno_turma->Aluno->name, 'UTF-8');
- $table_disciplinas .= "<tr><td class='padding center borda'>{$cont}</td>";
- $table_disciplinas .= "<td class='padding center borda'>{$matricula}</td>";
- $table_disciplinas .= "<td class='padding left borda'>{$nome_aluno}</td>";
- foreach ($frequencia_datas as $frequencia_data) {
- $frequencia_aluno = null;
- switch ($curso_id) {
- case 3:
- $frequencia_aluno = AlunoFrequencia::select('frequencia_check')
- ->where('data_frequencia', '=', $frequencia_data->data_frequencia)
- ->where('disciplina_id', '=', $grade_disciplina->disciplina_id)
- ->where('aluno_id', '=', $aluno_turma->aluno_id)
- ->orderBy('data_frequencia')
- ->first();
- break;
- case 2:
- $frequencia_aluno = AlunoFrequenciaEFI::select('frequencia_check')
- ->where('data_frequencia', '=', $frequencia_data->data_frequencia)
- ->where('aluno_id', '=', $aluno_turma->aluno_id)
- ->orderBy('data_frequencia')
- ->first();
- break;
- case 1:
- $frequencia_aluno = AlunoFrequenciaEI::select('frequencia_check')
- ->where('data_frequencia', '=', $frequencia_data->data_frequencia)
- ->where('aluno_id', '=', $aluno_turma->aluno_id)
- ->orderBy('data_frequencia')
- ->first();
- break;
- case 4:
- if ($serie_id >= 224 && $serie_id <= 227) {
- $frequencia_aluno = AlunoFrequenciaEJAEFI::select('frequencia_check')
- ->where('data_frequencia', '=', $frequencia_data->data_frequencia)
- ->where('aluno_id', '=', $aluno_turma->aluno_id)
- ->orderBy('data_frequencia')
- ->first();
- } elseif ($serie_id >= 228 && $serie_id <= 231) {
- $frequencia_aluno = AlunoFrequenciaEJAEFII::select('frequencia_check')
- ->where('data_frequencia', '=', $frequencia_data->data_frequencia)
- ->where('disciplina_id', '=', $grade_disciplina->disciplina_id)
- ->where('aluno_id', '=', $aluno_turma->aluno_id)
- ->orderBy('data_frequencia')
- ->first();
- }
- break;
- case 5:
- if ($serie_id == 24 || $serie_id == 25) {
- $frequencia_aluno = AlunoFrequenciaEJACAMPO::select('frequencia_check')
- ->where('data_frequencia', '=', $frequencia_data->data_frequencia)
- ->where('aluno_id', '=', $aluno_turma->aluno_id)
- ->orderBy('data_frequencia')
- ->first();
- }
- break;
- }
- if ($frequencia_aluno && $frequencia_aluno->frequencia_check == 1) {
- $table_disciplinas .= "<td style='padding center borda' class='center borda'>*</td>";
- } elseif ($frequencia_aluno && $frequencia_aluno->frequencia_check == 0) {
- $table_disciplinas .= "<td style='padding center borda' class='center borda'>F</td>";
- } else {
- $table_disciplinas .= "<td style='padding center borda' class='center borda'> </td>";
- }
- }
- $table_disciplinas .= "</tr>";
- }
- $table_disciplinas .= '</table>';
- $dt_ini = date('d/m/Y', strtotime($object->dt_ini));
- $dt_fim = date('d/m/Y', strtotime($object->dt_fim));
- $replaces['table_disciplinas'] = $table_disciplinas;
- $replaces['tipo'] = 'FREQUÊNCIA MENSAL';
- $replaces['etapa'] = 'Referente ao período de ' . $dt_ini . ' até ' . $dt_fim;
- $replaces['break'] = '<div class="break"></div>';
- $html = new THtmlRenderer('app/reports/diario_relatorio.html');
- $html->enableSection('main', $replaces);
- $html->disableHtmlConversion();
- $contents = $html->getContents();
- $htmlTodos = $htmlTodos . $contents;
- }
- $document = 'tmp/' . uniqid() . '.html';
- file_put_contents($document, $htmlTodos);
- parent::openFile($document);
- TTransaction::close();
- new TMessage('info', ('Relatório gerado com sucesso!'));
- TApplication::loadPage('Relatorio');
- } catch (Exception $e) {
- new TMessage('alert', $e->getMessage());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment