SHOW:
|
|
- or go back to the newest paste.
| 1 | function onGenerate() | |
| 2 | {
| |
| 3 | try {
| |
| 4 | $object = $this->form->getData(); | |
| 5 | ||
| 6 | $htmlTodos = NULL; | |
| 7 | ||
| 8 | TTransaction::open('permission');
| |
| 9 | $school = new SystemUnit(TSession::getValue('userunitid'));
| |
| 10 | TTransaction::close(); | |
| 11 | ||
| 12 | $replaces = [ | |
| 13 | 'photo_path_empresa' => 'https://redemunicipal.sistematoth.com.br/siga/' . $school->logo, | |
| 14 | 'nomeEscola' => $school->name, | |
| 15 | 'enderecoEscola1' => strtoupper($school->logradouro) . ", {$school->numero} - " . strtoupper($school->bairro),
| |
| 16 | 'contatoEscola' => $school->telefone, | |
| 17 | 'endereco_escola_cidade' => strtoupper($school->cidade), | |
| 18 | 'endereco_escola_uf' => strtoupper($school->estado), | |
| 19 | 'endereco_escola_pais' => strtoupper($school->pais), | |
| 20 | ]; | |
| 21 | ||
| 22 | $htmlTodos = NULL; | |
| 23 | ||
| 24 | TTransaction::open(TSession::getValue('userunitid'));
| |
| 25 | $grade = GradeCurricular::select('id', 'curso_id', 'serie_id')
| |
| 26 | ->where('periodo_id', '=', $object->periodo_id)
| |
| 27 | ->where('serie_id', '=', $object->serie_id)
| |
| 28 | ->first(); | |
| 29 | ||
| 30 | if (!$grade) {
| |
| 31 | // Handle the case where $grade is not found. | |
| 32 | // You might want to return an error message or take appropriate action. | |
| 33 | } | |
| 34 | ||
| 35 | $grade_disciplinas = GradeCurricularDisciplina::select('disciplina_id')
| |
| 36 | ->where('grade_curricular_id', '=', $grade->id)
| |
| 37 | ->load(); | |
| 38 | ||
| 39 | $curso_id = $object->curso_id; | |
| 40 | $serie_id = $object->serie_id; | |
| 41 | $turma_id = $object->turma_id; | |
| 42 | ||
| 43 | foreach ($grade_disciplinas as $grade_disciplina) {
| |
| 44 | $turma = new Turma($object->turma_id); | |
| 45 | ||
| 46 | $replaces['turma'] = $grade->curso->nome . ' / ' . $grade->serie->nome . ' / ' . $turma->nome . ' / ' . $turma->turno->nome; | |
| 47 | $replaces['disciplina'] = $grade_disciplina->disciplina->nome; | |
| 48 | ||
| 49 | $table_disciplinas = '<table cellspacing=0 class="borda" style="width:100%;">'; | |
| 50 | $table_disciplinas .= "<th style='padding left borda' class='center borda negrito'>Nº</td>"; | |
| 51 | $table_disciplinas .= "<th style='padding left borda' class='center borda negrito'>Matrícula</td>"; | |
| 52 | $table_disciplinas .= "<th style='padding left borda' class='center borda negrito'>Nome do aluno(a)</td>"; | |
| 53 | ||
| 54 | $frequencia_datas = []; | |
| 55 | ||
| 56 | switch ($curso_id) {
| |
| 57 | case 3: | |
| 58 | $frequencia_datas = AlunoFrequencia::select('data_frequencia')
| |
| 59 | ->where('turma_id', '=', $object->turma_id)
| |
| 60 | ->where('disciplina_id', '=', $grade_disciplina->disciplina_id)
| |
| 61 | ->where('data_frequencia', '>=', $object->dt_ini)
| |
| 62 | ->where('data_frequencia', '<=', $object->dt_fim)
| |
| 63 | ->groupBy('data_frequencia')
| |
| 64 | ->orderBy('data_frequencia')
| |
| 65 | ->load(); | |
| 66 | break; | |
| 67 | case 2: | |
| 68 | $frequencia_datas = AlunoFrequenciaEFI::select('data_frequencia')
| |
| 69 | ->where('turma_id', '=', $object->turma_id)
| |
| 70 | ->where('data_frequencia', '>=', $object->dt_ini)
| |
| 71 | ->where('data_frequencia', '<=', $object->dt_fim)
| |
| 72 | ->groupBy('data_frequencia')
| |
| 73 | ->orderBy('data_frequencia')
| |
| 74 | ->load(); | |
| 75 | break; | |
| 76 | case 1: | |
| 77 | $frequencia_datas = AlunoFrequenciaEI::select('data_frequencia')
| |
| 78 | ->where('turma_id', '=', $object->turma_id)
| |
| 79 | ->where('data_frequencia', '>=', $object->dt_ini)
| |
| 80 | ->where('data_frequencia', '<=', $object->dt_fim)
| |
| 81 | ->groupBy('data_frequencia')
| |
| 82 | ->orderBy('data_frequencia')
| |
| 83 | ->load(); | |
| 84 | break; | |
| 85 | case 4: | |
| 86 | if ($serie_id >= 224 && $serie_id <= 227) {
| |
| 87 | $frequencia_datas = AlunoFrequenciaEJAEFI::select('data_frequencia')
| |
| 88 | ->where('turma_id', '=', $object->turma_id)
| |
| 89 | ->where('data_frequencia', '>=', $object->dt_ini)
| |
| 90 | ->where('data_frequencia', '<=', $object->dt_fim)
| |
| 91 | ->groupBy('data_frequencia')
| |
| 92 | ->orderBy('data_frequencia')
| |
| 93 | ->load(); | |
| 94 | } elseif ($serie_id >= 228 && $serie_id <= 231) {
| |
| 95 | $frequencia_datas = AlunoFrequenciaEJAEFII::select('data_frequencia')
| |
| 96 | ->where('turma_id', '=', $object->turma_id)
| |
| 97 | ->where('disciplina_id', '=', $grade_disciplina->disciplina_id)
| |
| 98 | ->where('data_frequencia', '>=', $object->dt_ini)
| |
| 99 | ->where('data_frequencia', '<=', $object->dt_fim)
| |
| 100 | ->groupBy('data_frequencia')
| |
| 101 | ->orderBy('data_frequencia')
| |
| 102 | ->load(); | |
| 103 | } | |
| 104 | break; | |
| 105 | case 5: | |
| 106 | if ($serie_id == 24 || $serie_id == 25) {
| |
| 107 | $frequencia_datas = AlunoFrequenciaEJACAMPO::select('data_frequencia')
| |
| 108 | ->where('turma_id', '=', $object->turma_id)
| |
| 109 | ->where('disciplina_id', '=', $grade_disciplina->disciplina_id)
| |
| 110 | ->where('data_frequencia', '>=', $object->dt_ini)
| |
| 111 | ->where('data_frequencia', '<=', $object->dt_fim)
| |
| 112 | ->groupBy('data_frequencia')
| |
| 113 | ->orderBy('data_frequencia')
| |
| 114 | ->load(); | |
| 115 | } | |
| 116 | break; | |
| 117 | } | |
| 118 | ||
| 119 | foreach ($frequencia_datas as $frequencia_data) {
| |
| 120 | $data = explode('-', $frequencia_data->data_frequencia);
| |
| 121 | $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>";
| |
| 122 | } | |
| 123 | ||
| 124 | $table_disciplinas .= "</tr>"; | |
| 125 | ||
| 126 | /* $repository = new TRepository('AlunoTurma');
| |
| 127 | $criteria = new TCriteria; | |
| 128 | $criteria->add(new TFilter('turma_id', '=', $turma_id));
| |
| 129 | $criteria->add(new TFilter('situacao_id', '=', 1));
| |
| 130 | $alunos_turma = $repository->load($criteria); */ | |
| 131 | ||
| 132 | $alunos_turma = AlunoTurma::select('aluno_id')
| |
| 133 | ->where('turma_id', '=', $object->turma_id)
| |
| 134 | ->where('situacao_id', '=', 1)
| |
| 135 | ->load(); | |
| 136 | ||
| 137 | /* if (is_array($alunos_turma)) {
| |
| 138 | $filteredObjects = array_filter($alunos_turma, static function ($object) {
| |
| 139 | return $object instanceof AlunoTurma; | |
| 140 | }); | |
| 141 | ||
| 142 | usort($filteredObjects, static function ($a, $b) {
| |
| 143 | return strnatcasecmp($a->Aluno->name, $b->Aluno->name); | |
| 144 | }); | |
| 145 | ||
| 146 | $alunos_turma = $filteredObjects; | |
| 147 | } */ | |
| 148 | ||
| 149 | foreach ($alunos_turma as $aluno_turma) {
| |
| 150 | ||
| 151 | if ($alt == true) {
| |
| 152 | $table_disciplinas .= '<tr>'; | |
| 153 | $alt = false; | |
| 154 | } else {
| |
| 155 | $table_disciplinas .= '<tr class="gray">'; | |
| 156 | $alt = true; | |
| 157 | } | |
| 158 | ||
| 159 | $cont++; | |
| 160 | ||
| 161 | $matricula = $aluno_turma->Aluno->matricula; | |
| 162 | $nome_aluno = mb_strtoupper($aluno_turma->Aluno->name, 'UTF-8'); | |
| 163 | ||
| 164 | $table_disciplinas .= "<tr><td class='padding center borda'>{$cont}</td>";
| |
| 165 | $table_disciplinas .= "<td class='padding center borda'>{$matricula}</td>";
| |
| 166 | $table_disciplinas .= "<td class='padding left borda'>{$nome_aluno}</td>";
| |
| 167 | ||
| 168 | foreach ($frequencia_datas as $frequencia_data) {
| |
| 169 | $frequencia_aluno = null; | |
| 170 | ||
| 171 | switch ($curso_id) {
| |
| 172 | case 3: | |
| 173 | $frequencia_aluno = AlunoFrequencia::select('frequencia_check')
| |
| 174 | ->where('data_frequencia', '=', $frequencia_data->data_frequencia)
| |
| 175 | ->where('disciplina_id', '=', $grade_disciplina->disciplina_id)
| |
| 176 | ->where('aluno_id', '=', $aluno_turma->aluno_id)
| |
| 177 | ->orderBy('data_frequencia')
| |
| 178 | ->first(); | |
| 179 | break; | |
| 180 | case 2: | |
| 181 | $frequencia_aluno = AlunoFrequenciaEFI::select('frequencia_check')
| |
| 182 | ->where('data_frequencia', '=', $frequencia_data->data_frequencia)
| |
| 183 | ->where('aluno_id', '=', $aluno_turma->aluno_id)
| |
| 184 | ->orderBy('data_frequencia')
| |
| 185 | ->first(); | |
| 186 | break; | |
| 187 | case 1: | |
| 188 | $frequencia_aluno = AlunoFrequenciaEI::select('frequencia_check')
| |
| 189 | ->where('data_frequencia', '=', $frequencia_data->data_frequencia)
| |
| 190 | ->where('aluno_id', '=', $aluno_turma->aluno_id)
| |
| 191 | ->orderBy('data_frequencia')
| |
| 192 | ->first(); | |
| 193 | break; | |
| 194 | case 4: | |
| 195 | if ($serie_id >= 224 && $serie_id <= 227) {
| |
| 196 | $frequencia_aluno = AlunoFrequenciaEJAEFI::select('frequencia_check')
| |
| 197 | ->where('data_frequencia', '=', $frequencia_data->data_frequencia)
| |
| 198 | ->where('aluno_id', '=', $aluno_turma->aluno_id)
| |
| 199 | ->orderBy('data_frequencia')
| |
| 200 | ->first(); | |
| 201 | } elseif ($serie_id >= 228 && $serie_id <= 231) {
| |
| 202 | $frequencia_aluno = AlunoFrequenciaEJAEFII::select('frequencia_check')
| |
| 203 | ->where('data_frequencia', '=', $frequencia_data->data_frequencia)
| |
| 204 | ->where('disciplina_id', '=', $grade_disciplina->disciplina_id)
| |
| 205 | ->where('aluno_id', '=', $aluno_turma->aluno_id)
| |
| 206 | ->orderBy('data_frequencia')
| |
| 207 | ->first(); | |
| 208 | } | |
| 209 | break; | |
| 210 | case 5: | |
| 211 | if ($serie_id == 24 || $serie_id == 25) {
| |
| 212 | $frequencia_aluno = AlunoFrequenciaEJACAMPO::select('frequencia_check')
| |
| 213 | ->where('data_frequencia', '=', $frequencia_data->data_frequencia)
| |
| 214 | ->where('aluno_id', '=', $aluno_turma->aluno_id)
| |
| 215 | ->orderBy('data_frequencia')
| |
| 216 | ->first(); | |
| 217 | } | |
| 218 | break; | |
| 219 | } | |
| 220 | ||
| 221 | if ($frequencia_aluno && $frequencia_aluno->frequencia_check == 1) {
| |
| 222 | $table_disciplinas .= "<td style='padding center borda' class='center borda'>*</td>"; | |
| 223 | } elseif ($frequencia_aluno && $frequencia_aluno->frequencia_check == 0) {
| |
| 224 | $table_disciplinas .= "<td style='padding center borda' class='center borda'>F</td>"; | |
| 225 | } else {
| |
| 226 | $table_disciplinas .= "<td style='padding center borda' class='center borda'> </td>"; | |
| 227 | } | |
| 228 | } | |
| 229 | $table_disciplinas .= "</tr>"; | |
| 230 | } | |
| 231 | ||
| 232 | $table_disciplinas .= '</table>'; | |
| 233 | ||
| 234 | $dt_ini = date('d/m/Y', strtotime($object->dt_ini));
| |
| 235 | $dt_fim = date('d/m/Y', strtotime($object->dt_fim));
| |
| 236 | ||
| 237 | $replaces['table_disciplinas'] = $table_disciplinas; | |
| 238 | $replaces['tipo'] = 'FREQUÊNCIA MENSAL'; | |
| 239 | $replaces['etapa'] = 'Referente ao período de ' . $dt_ini . ' até ' . $dt_fim; | |
| 240 | $replaces['break'] = '<div class="break"></div>'; | |
| 241 | ||
| 242 | $html = new THtmlRenderer('app/reports/diario_relatorio.html');
| |
| 243 | $html->enableSection('main', $replaces);
| |
| 244 | $html->disableHtmlConversion(); | |
| 245 | ||
| 246 | $contents = $html->getContents(); | |
| 247 | ||
| 248 | $htmlTodos = $htmlTodos . $contents; | |
| 249 | } | |
| 250 | ||
| 251 | $document = 'tmp/' . uniqid() . '.html'; | |
| 252 | file_put_contents($document, $htmlTodos); | |
| 253 | parent::openFile($document); | |
| 254 | ||
| 255 | TTransaction::close(); | |
| 256 | ||
| 257 | new TMessage('info', ('Relatório gerado com sucesso!'));
| |
| 258 | TApplication::loadPage('Relatorio');
| |
| 259 | } catch (Exception $e) {
| |
| 260 | new TMessage('alert', $e->getMessage());
| |
| 261 | } | |
| 262 | } |