Commit ab29fb0bc3a088c4cdcd684e1f3aaa3ef1ddf555
1 parent
2ffa8db7
Exists in
master
Adicionado controllers APIs json
Showing
10 changed files
with
1684 additions
and
0 deletions
Show diff stats
| @@ -0,0 +1,774 @@ | @@ -0,0 +1,774 @@ | ||
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +#error_reporting(E_ALL); | ||
| 4 | +#ini_set("display_errors", 1); | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * i-Educar - Sistema de gestão escolar | ||
| 8 | + * | ||
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | ||
| 10 | + * <ctima@itajai.sc.gov.br> | ||
| 11 | + * | ||
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | ||
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | ||
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | ||
| 15 | + * qualquer versão posterior. | ||
| 16 | + * | ||
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | ||
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | ||
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | ||
| 20 | + * do GNU para mais detalhes. | ||
| 21 | + * | ||
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | ||
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | ||
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
| 25 | + * | ||
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | ||
| 27 | + * @category i-Educar | ||
| 28 | + * @license @@license@@ | ||
| 29 | + * @package Api | ||
| 30 | + * @subpackage Modules | ||
| 31 | + * @since Arquivo disponível desde a versão ? | ||
| 32 | + * @version $Id$ | ||
| 33 | + */ | ||
| 34 | + | ||
| 35 | +require_once 'include/pmieducar/clsPmieducarAluno.inc.php'; | ||
| 36 | + | ||
| 37 | +require_once 'App/Model/MatriculaSituacao.php'; | ||
| 38 | + | ||
| 39 | +require_once 'Portabilis/Controller/ApiCoreController.php'; | ||
| 40 | +require_once 'Portabilis/Array/Utils.php'; | ||
| 41 | +require_once 'Portabilis/String/Utils.php'; | ||
| 42 | +require_once 'Portabilis/Array/Utils.php'; | ||
| 43 | +require_once 'Portabilis/Date/Utils.php'; | ||
| 44 | + | ||
| 45 | +require_once 'Transporte/Model/Responsavel.php'; | ||
| 46 | + | ||
| 47 | +class AlunoController extends ApiCoreController | ||
| 48 | +{ | ||
| 49 | + protected $_processoAp = 578; | ||
| 50 | + protected $_nivelAcessoOption = App_Model_NivelAcesso::SOMENTE_ESCOLA; | ||
| 51 | + | ||
| 52 | + | ||
| 53 | + // validators | ||
| 54 | + | ||
| 55 | + protected function validatesPessoaId() { | ||
| 56 | + $existenceOptions = array('schema_name' => 'cadastro', 'field_name' => 'idpes'); | ||
| 57 | + | ||
| 58 | + return $this->validatesPresenceOf('pessoa_id') && | ||
| 59 | + $this->validatesExistenceOf('fisica', $this->getRequest()->pessoa_id, $existenceOptions); | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + | ||
| 63 | + protected function validatesReligiaoId() { | ||
| 64 | + $isValid = true; | ||
| 65 | + | ||
| 66 | + // beneficio is optional | ||
| 67 | + if (is_numeric($this->getRequest()->religiao_id)) { | ||
| 68 | + $isValid = $this->validatesPresenceOf('religiao_id') && | ||
| 69 | + $this->validatesExistenceOf('religiao', $this->getRequest()->religiao_id); | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + return $isValid; | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + | ||
| 76 | + protected function validatesBeneficioId() { | ||
| 77 | + $isValid = true; | ||
| 78 | + | ||
| 79 | + // beneficio is optional | ||
| 80 | + if (is_numeric($this->getRequest()->beneficio_id)) { | ||
| 81 | + $isValid = $this->validatesPresenceOf('beneficio_id') && | ||
| 82 | + $this->validatesExistenceOf('aluno_beneficio', $this->getRequest()->beneficio_id); | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + return $isValid; | ||
| 86 | + } | ||
| 87 | + | ||
| 88 | + | ||
| 89 | + protected function validatesResponsavelId() { | ||
| 90 | + $isValid = true; | ||
| 91 | + | ||
| 92 | + if ($this->getRequest()->tipo_responsavel == 'outra_pessoa') { | ||
| 93 | + $existenceOptions = array('schema_name' => 'cadastro', 'field_name' => 'idpes'); | ||
| 94 | + | ||
| 95 | + $isValid = $this->validatesPresenceOf('responsavel_id') && | ||
| 96 | + $this->validatesExistenceOf('fisica', $this->getRequest()->responsavel_id, $existenceOptions); | ||
| 97 | + } | ||
| 98 | + | ||
| 99 | + return $isValid; | ||
| 100 | + } | ||
| 101 | + | ||
| 102 | + | ||
| 103 | + protected function validatesResponsavelTipo() { | ||
| 104 | + $expectedValues = array('mae', 'pai', 'outra_pessoa'); | ||
| 105 | + | ||
| 106 | + return $this->validatesPresenceOf('tipo_responsavel') && | ||
| 107 | + $this->validator->validatesValueInSetOf($this->getRequest()->tipo_responsavel, | ||
| 108 | + $expectedValues, 'tipo_responsavel'); | ||
| 109 | + } | ||
| 110 | + | ||
| 111 | + | ||
| 112 | + protected function validatesResponsavel() { | ||
| 113 | + return $this->validatesResponsavelTipo() && | ||
| 114 | + $this->validatesResponsavelId(); | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + | ||
| 118 | + protected function validatesTransporte() { | ||
| 119 | + $expectedValues = array('nenhum', 'municipal', 'estadual'); | ||
| 120 | + | ||
| 121 | + return $this->validatesPresenceOf('tipo_transporte') && | ||
| 122 | + $this->validator->validatesValueInSetOf($this->getRequest()->tipo_transporte, | ||
| 123 | + $expectedValues, 'tipo_transporte'); | ||
| 124 | + } | ||
| 125 | + | ||
| 126 | + | ||
| 127 | + protected function validatesUniquenessOfAlunoByPessoaId() { | ||
| 128 | + $existenceOptions = array('schema_name' => 'pmieducar', 'field_name' => 'ref_idpes', 'add_msg_on_error' => false); | ||
| 129 | + | ||
| 130 | + if( ! $this->validatesUniquenessOf('aluno', $this->getRequest()->pessoa_id, $existenceOptions)) { | ||
| 131 | + $this->messenger->append("Já existe um aluno cadastrado para a pessoa {$this->getRequest()->pessoa_id}."); | ||
| 132 | + return false; | ||
| 133 | + } | ||
| 134 | + | ||
| 135 | + return true; | ||
| 136 | + } | ||
| 137 | + | ||
| 138 | + | ||
| 139 | + protected function validatesUniquenessOfAlunoInepId() { | ||
| 140 | + if ($this->getRequest()->aluno_inep_id) { | ||
| 141 | + $where = array('alunoInep' => '$1'); | ||
| 142 | + $params = array($this->getRequest()->aluno_inep_id); | ||
| 143 | + | ||
| 144 | + if ($this->getRequest()->id) { | ||
| 145 | + $where['aluno'] = '!= $2'; | ||
| 146 | + $params[] = $this->getRequest()->id; | ||
| 147 | + } | ||
| 148 | + | ||
| 149 | + $dataMapper = $this->getDataMapperFor('educacenso', 'aluno'); | ||
| 150 | + $entity = $dataMapper->findAllUsingPreparedQuery(array('aluno'), $where, $params, array(), false); | ||
| 151 | + | ||
| 152 | + if (count($entity) && $entity[0]->get('aluno')) { | ||
| 153 | + $this->messenger->append("Já existe o aluno {$entity[0]->get('aluno')} cadastrado com código inep ". | ||
| 154 | + "{$this->getRequest()->aluno_inep_id}."); | ||
| 155 | + | ||
| 156 | + return false; | ||
| 157 | + } | ||
| 158 | + } | ||
| 159 | + | ||
| 160 | + return true; | ||
| 161 | + } | ||
| 162 | + | ||
| 163 | + | ||
| 164 | + protected function validatesUniquenessOfAlunoEstadoId() { | ||
| 165 | + if ($this->getRequest()->aluno_estado_id) { | ||
| 166 | + $sql = "select cod_aluno from pmieducar.aluno where aluno_estado_id = $1"; | ||
| 167 | + $params = array($this->getRequest()->aluno_estado_id); | ||
| 168 | + | ||
| 169 | + if($this->getRequest()->id) { | ||
| 170 | + $sql .= " and cod_aluno != $2"; | ||
| 171 | + $params[] = $this->getRequest()->id; | ||
| 172 | + } | ||
| 173 | + | ||
| 174 | + $alunoId = $this->fetchPreparedQuery($sql, $params, true, 'first-field'); | ||
| 175 | + | ||
| 176 | + if ($alunoId) { | ||
| 177 | + $this->messenger->append("Já existe o aluno $alunoId cadastrado com código estado ". | ||
| 178 | + "{$this->getRequest()->aluno_estado_id}."); | ||
| 179 | + | ||
| 180 | + return false; | ||
| 181 | + } | ||
| 182 | + } | ||
| 183 | + | ||
| 184 | + return true; | ||
| 185 | + } | ||
| 186 | + | ||
| 187 | + // validations | ||
| 188 | + | ||
| 189 | + protected function canGetMatriculas() { | ||
| 190 | + return $this->validatesId('aluno'); | ||
| 191 | + } | ||
| 192 | + | ||
| 193 | + protected function canChange() { | ||
| 194 | + return $this->validatesPessoaId() && | ||
| 195 | + $this->validatesResponsavel() && | ||
| 196 | + $this->validatesTransporte() && | ||
| 197 | + $this->validatesReligiaoId() && | ||
| 198 | + $this->validatesBeneficioId() && | ||
| 199 | + $this->validatesUniquenessOfAlunoInepId() && | ||
| 200 | + $this->validatesUniquenessOfAlunoEstadoId(); | ||
| 201 | + } | ||
| 202 | + | ||
| 203 | + protected function canPost() { | ||
| 204 | + return parent::canPost() && | ||
| 205 | + $this->validatesUniquenessOfAlunoByPessoaId(); | ||
| 206 | + } | ||
| 207 | + | ||
| 208 | + | ||
| 209 | + protected function canGetOcorrenciasDisciplinares() { | ||
| 210 | + return $this->validatesId('escola') && | ||
| 211 | + $this->validatesId('aluno'); | ||
| 212 | + } | ||
| 213 | + | ||
| 214 | + // load resources | ||
| 215 | + | ||
| 216 | + protected function loadNomeAluno($alunoId) { | ||
| 217 | + $sql = "select nome from cadastro.pessoa, pmieducar.aluno where idpes = ref_idpes and cod_aluno = $1"; | ||
| 218 | + $nome = $this->fetchPreparedQuery($sql, $alunoId, false, 'first-field'); | ||
| 219 | + | ||
| 220 | + return $this->toUtf8($nome, array('transform' => true)); | ||
| 221 | + } | ||
| 222 | + | ||
| 223 | + | ||
| 224 | + protected function loadTransporte($alunoId) { | ||
| 225 | + | ||
| 226 | + $tiposTransporte = array( | ||
| 227 | + Transporte_Model_Responsavel::NENHUM => 'nenhum', | ||
| 228 | + Transporte_Model_Responsavel::MUNICIPAL => 'municipal', | ||
| 229 | + Transporte_Model_Responsavel::ESTADUAL =>'estadual' | ||
| 230 | + ); | ||
| 231 | + | ||
| 232 | + $dataMapper = $this->getDataMapperFor('transporte', 'aluno'); | ||
| 233 | + $entity = $this->tryGetEntityOf($dataMapper, $alunoId); | ||
| 234 | + | ||
| 235 | + // no antigo cadastro de alunos era considerado como não utiliza transporte, | ||
| 236 | + // quando não existia dados, para o novo cadastro foi adicionado a opcao 0 (nenhum), | ||
| 237 | + // então por compatibilidade esta API retorna nenhum, quando não foi encontrado dados. | ||
| 238 | + if (is_null($entity)) | ||
| 239 | + $tipo = $tiposTransporte[Transporte_Model_Responsavel::NENHUM]; | ||
| 240 | + else | ||
| 241 | + $tipo = $tiposTransporte[$entity->get('responsavel')]; | ||
| 242 | + | ||
| 243 | + return $tipo; | ||
| 244 | + } | ||
| 245 | + | ||
| 246 | + | ||
| 247 | + protected function createOrUpdateTransporte($alunoId) { | ||
| 248 | + $tiposTransporte = array( | ||
| 249 | + 'nenhum' => Transporte_Model_Responsavel::NENHUM, | ||
| 250 | + 'municipal' => Transporte_Model_Responsavel::MUNICIPAL, | ||
| 251 | + 'estadual' => Transporte_Model_Responsavel::ESTADUAL | ||
| 252 | + ); | ||
| 253 | + | ||
| 254 | + $data = array( | ||
| 255 | + 'aluno' => $alunoId, | ||
| 256 | + 'responsavel' => $tiposTransporte[$this->getRequest()->tipo_transporte], | ||
| 257 | + 'user' => $this->getSession()->id_pessoa, | ||
| 258 | + | ||
| 259 | + // always setting now... | ||
| 260 | + 'created_at' => 'NOW()', | ||
| 261 | + ); | ||
| 262 | + | ||
| 263 | + $dataMapper = $this->getDataMapperFor('transporte', 'aluno'); | ||
| 264 | + $entity = $this->getOrCreateEntityOf($dataMapper, $alunoId); | ||
| 265 | + $entity->setOptions($data); | ||
| 266 | + | ||
| 267 | + return $this->saveEntity($dataMapper, $entity); | ||
| 268 | + } | ||
| 269 | + | ||
| 270 | + | ||
| 271 | + protected function loadAlunoInepId($alunoId) { | ||
| 272 | + $dataMapper = $this->getDataMapperFor('educacenso', 'aluno'); | ||
| 273 | + $entity = $this->tryGetEntityOf($dataMapper, $alunoId); | ||
| 274 | + | ||
| 275 | + return (is_null($entity) ? null : $entity->get('alunoInep')); | ||
| 276 | + } | ||
| 277 | + | ||
| 278 | + | ||
| 279 | + protected function createUpdateOrDestroyEducacensoAluno($alunoId) { | ||
| 280 | + $dataMapper = $this->getDataMapperFor('educacenso', 'aluno'); | ||
| 281 | + | ||
| 282 | + if (empty($this->getRequest()->aluno_inep_id)) | ||
| 283 | + $result = $this->deleteEntityOf($dataMapper, $alunoId); | ||
| 284 | + else { | ||
| 285 | + $data = array( | ||
| 286 | + 'aluno' => $alunoId, | ||
| 287 | + 'alunoInep' => $this->getRequest()->aluno_inep_id, | ||
| 288 | + | ||
| 289 | + // campos deprecados? | ||
| 290 | + 'fonte' => 'fonte', | ||
| 291 | + 'nomeInep' => '-', | ||
| 292 | + | ||
| 293 | + // always setting now... | ||
| 294 | + 'created_at' => 'NOW()', | ||
| 295 | + ); | ||
| 296 | + | ||
| 297 | + $entity = $this->getOrCreateEntityOf($dataMapper, $alunoId); | ||
| 298 | + $entity->setOptions($data); | ||
| 299 | + | ||
| 300 | + $result = $this->saveEntity($dataMapper, $entity); | ||
| 301 | + } | ||
| 302 | + | ||
| 303 | + return $result; | ||
| 304 | + } | ||
| 305 | + | ||
| 306 | + | ||
| 307 | + // #TODO mover updateResponsavel e updateDeficiencias para API pessoa ? | ||
| 308 | + | ||
| 309 | + protected function updateResponsavel() { | ||
| 310 | + $pessoa = new clsFisica(); | ||
| 311 | + $pessoa->idpes = $this->getRequest()->pessoa_id; | ||
| 312 | + $pessoa->nome_responsavel = ''; | ||
| 313 | + | ||
| 314 | + if ($this->getRequest()->tipo_responsavel == 'outra_pessoa') | ||
| 315 | + $pessoa->idpes_responsavel = $this->getRequest()->responsavel_id; | ||
| 316 | + else | ||
| 317 | + $pessoa->idpes_responsavel = 'NULL'; | ||
| 318 | + | ||
| 319 | + return $pessoa->edita(); | ||
| 320 | + } | ||
| 321 | + | ||
| 322 | + | ||
| 323 | + protected function updateDeficiencias() { | ||
| 324 | + $sql = "delete from cadastro.fisica_deficiencia where ref_idpes = $1"; | ||
| 325 | + $this->fetchPreparedQuery($sql, $this->getRequest()->pessoa_id, false); | ||
| 326 | + | ||
| 327 | + foreach ($this->getRequest()->deficiencias as $id) { | ||
| 328 | + if (! empty($id)) { | ||
| 329 | + $deficiencia = new clsCadastroFisicaDeficiencia($this->getRequest()->pessoa_id, $id); | ||
| 330 | + $deficiencia->cadastra(); | ||
| 331 | + } | ||
| 332 | + } | ||
| 333 | + } | ||
| 334 | + | ||
| 335 | + | ||
| 336 | + protected function createOrUpdateAluno($id = null){ | ||
| 337 | + $tiposResponsavel = array('pai' => 'p', 'mae' => 'm', 'outra_pessoa' => 'r'); | ||
| 338 | + | ||
| 339 | + $aluno = new clsPmieducarAluno(); | ||
| 340 | + $aluno->cod_aluno = $id; | ||
| 341 | + $aluno->aluno_estado_id = $this->getRequest()->aluno_estado_id; | ||
| 342 | + | ||
| 343 | + // após cadastro não muda mais id pessoa | ||
| 344 | + if (is_null($id)) | ||
| 345 | + $aluno->ref_idpes = $this->getRequest()->pessoa_id; | ||
| 346 | + | ||
| 347 | + $aluno->ref_cod_aluno_beneficio = $this->getRequest()->beneficio_id; | ||
| 348 | + $aluno->ref_cod_religiao = $this->getRequest()->religiao_id; | ||
| 349 | + $aluno->analfabeto = $this->getRequest()->alfabetizado ? 0 : 1; | ||
| 350 | + $aluno->tipo_responsavel = $tiposResponsavel[$this->getRequest()->tipo_responsavel]; | ||
| 351 | + $aluno->ref_usuario_exc = $this->getSession()->id_pessoa; | ||
| 352 | + | ||
| 353 | + return (is_null($id) ? $aluno->cadastra() : $aluno->edita()); | ||
| 354 | + } | ||
| 355 | + | ||
| 356 | + protected function loadTurmaByMatriculaId($matriculaId) { | ||
| 357 | + $sql = 'select ref_cod_turma as id, turma.nm_turma as nome from pmieducar.matricula_turma, | ||
| 358 | + pmieducar.turma where ref_cod_matricula = $1 and matricula_turma.ativo = 1 and | ||
| 359 | + turma.cod_turma = ref_cod_turma limit 1'; | ||
| 360 | + | ||
| 361 | + $turma = Portabilis_Utils_Database::selectRow($sql, $matriculaId); | ||
| 362 | + $turma['nome'] = $this->toUtf8($turma['nome'], array('transform' => true)); | ||
| 363 | + | ||
| 364 | + return $turma; | ||
| 365 | + } | ||
| 366 | + | ||
| 367 | + protected function loadEscolaNome($id) { | ||
| 368 | + $escola = new clsPmieducarEscola(); | ||
| 369 | + $escola->cod_escola = $id; | ||
| 370 | + $escola = $escola->detalhe(); | ||
| 371 | + | ||
| 372 | + return $this->toUtf8($escola['nome'], array('transform' => true)); | ||
| 373 | + } | ||
| 374 | + | ||
| 375 | + protected function loadCursoNome($id) { | ||
| 376 | + $curso = new clsPmieducarCurso(); | ||
| 377 | + $curso->cod_curso = $id; | ||
| 378 | + $curso = $curso->detalhe(); | ||
| 379 | + | ||
| 380 | + return $this->toUtf8($curso['nm_curso'], array('transform' => true)); | ||
| 381 | + } | ||
| 382 | + | ||
| 383 | + protected function loadSerieNome($id) { | ||
| 384 | + $serie = new clsPmieducarSerie(); | ||
| 385 | + $serie->cod_serie = $id; | ||
| 386 | + $serie = $serie->detalhe(); | ||
| 387 | + | ||
| 388 | + return $this->toUtf8($serie['nm_serie'], array('transform' => true)); | ||
| 389 | + } | ||
| 390 | + | ||
| 391 | + protected function loadTransferenciaDataEntrada($matriculaId) { | ||
| 392 | + $sql = "select to_char(data_transferencia, 'DD/MM/YYYY') from | ||
| 393 | + pmieducar.transferencia_solicitacao where ref_cod_matricula_entrada = $1 and ativo = 1"; | ||
| 394 | + | ||
| 395 | + return Portabilis_Utils_Database::selectField($sql, $matriculaId); | ||
| 396 | + } | ||
| 397 | + | ||
| 398 | + protected function loadTransferenciaDataSaida($matriculaId) { | ||
| 399 | + $sql = "select to_char(data_transferencia, 'DD/MM/YYYY') from | ||
| 400 | + pmieducar.transferencia_solicitacao where ref_cod_matricula_saida = $1 and ativo = 1"; | ||
| 401 | + | ||
| 402 | + return Portabilis_Utils_Database::selectField($sql, $matriculaId); | ||
| 403 | + } | ||
| 404 | + | ||
| 405 | + protected function possuiTransferenciaEmAberto($matriculaId) { | ||
| 406 | + $sql = "select count(cod_transferencia_solicitacao) from pmieducar.transferencia_solicitacao where | ||
| 407 | + ativo = 1 and ref_cod_matricula_saida = $1 and ref_cod_matricula_entrada is null and | ||
| 408 | + data_transferencia is null"; | ||
| 409 | + | ||
| 410 | + return (Portabilis_Utils_Database::selectField($sql, $matriculaId) > 0); | ||
| 411 | + } | ||
| 412 | + | ||
| 413 | + protected function loadTipoOcorrenciaDisciplinar($id) { | ||
| 414 | + if (! isset($this->_tiposOcorrenciasDisciplinares)) | ||
| 415 | + $this->_tiposOcorrenciasDisciplinares = array(); | ||
| 416 | + | ||
| 417 | + if (! isset($this->_tiposOcorrenciasDisciplinares[$id])) { | ||
| 418 | + $ocorrencia = new clsPmieducarTipoOcorrenciaDisciplinar; | ||
| 419 | + $ocorrencia->cod_tipo_ocorrencia_disciplinar = $id; | ||
| 420 | + $ocorrencia = $ocorrencia->detalhe(); | ||
| 421 | + | ||
| 422 | + $this->_tiposOcorrenciasDisciplinares[$id] = $this->toUtf8( | ||
| 423 | + $ocorrencia['nm_tipo'], | ||
| 424 | + array('transform' => true) | ||
| 425 | + ); | ||
| 426 | + | ||
| 427 | + } | ||
| 428 | + | ||
| 429 | + return $this->_tiposOcorrenciasDisciplinares[$id]; | ||
| 430 | + } | ||
| 431 | + | ||
| 432 | + | ||
| 433 | + protected function loadOcorrenciasDisciplinares() { | ||
| 434 | + $ocorrenciasAluno = array(); | ||
| 435 | + | ||
| 436 | + $sql = "select cod_matricula as id from pmieducar.matricula, pmieducar.escola where | ||
| 437 | + cod_escola = ref_ref_cod_escola and ref_cod_aluno = $1 and ref_ref_cod_escola = | ||
| 438 | + $2 and matricula.ativo = 1 order by ano desc, id"; | ||
| 439 | + | ||
| 440 | + $params = array($this->getRequest()->aluno_id, $this->getRequest()->escola_id); | ||
| 441 | + $matriculas = $this->fetchPreparedQuery($sql, $params); | ||
| 442 | + | ||
| 443 | + $_ocorrenciasMatricula = new clsPmieducarMatriculaOcorrenciaDisciplinar(); | ||
| 444 | + | ||
| 445 | + foreach($matriculas as $matricula) { | ||
| 446 | + $ocorrenciasMatricula = $_ocorrenciasMatricula->lista($matricula['id'], | ||
| 447 | + null, | ||
| 448 | + null, | ||
| 449 | + null, | ||
| 450 | + null, | ||
| 451 | + null, | ||
| 452 | + null, | ||
| 453 | + null, | ||
| 454 | + null, | ||
| 455 | + null, | ||
| 456 | + 1, | ||
| 457 | + $visivel_pais = 1); | ||
| 458 | + | ||
| 459 | + if (is_array($ocorrenciasMatricula)) { | ||
| 460 | + $attrsFilter = array('ref_cod_tipo_ocorrencia_disciplinar' => 'tipo', | ||
| 461 | + 'data_cadastro' => 'data_hora', | ||
| 462 | + 'observacao' => 'descricao'); | ||
| 463 | + | ||
| 464 | + $ocorrenciasMatricula = Portabilis_Array_Utils::filterSet($ocorrenciasMatricula, $attrsFilter); | ||
| 465 | + | ||
| 466 | + foreach($ocorrenciasMatricula as $ocorrenciaMatricula) { | ||
| 467 | + $ocorrenciaMatricula['tipo'] = $this->loadTipoOcorrenciaDisciplinar($ocorrenciaMatricula['tipo']); | ||
| 468 | + $ocorrenciaMatricula['data_hora'] = Portabilis_Date_Utils::pgSQLToBr($ocorrenciaMatricula['data_hora']); | ||
| 469 | + $ocorrenciaMatricula['descricao'] = $this->toUtf8($ocorrenciaMatricula['descricao']); | ||
| 470 | + $ocorrenciasAluno[] = $ocorrenciaMatricula; | ||
| 471 | + } | ||
| 472 | + } | ||
| 473 | + } | ||
| 474 | + | ||
| 475 | + return array('ocorrencias_disciplinares' => $ocorrenciasAluno); | ||
| 476 | + } | ||
| 477 | + | ||
| 478 | + // search options | ||
| 479 | + | ||
| 480 | + protected function searchOptions() { | ||
| 481 | + return array('sqlParams' => array($this->getRequest()->escola_id), | ||
| 482 | + 'selectFields' => array('matricula_id')); | ||
| 483 | + } | ||
| 484 | + | ||
| 485 | + protected function sqlsForNumericSearch() { | ||
| 486 | + $sqls = array(); | ||
| 487 | + | ||
| 488 | + // caso nao receba id da escola, pesquisa por codigo aluno em todas as escolas | ||
| 489 | + if (! $this->getRequest()->escola_id) { | ||
| 490 | + $sqls[] = "select distinct aluno.cod_aluno as id, pessoa.nome as name from | ||
| 491 | + pmieducar.aluno, cadastro.pessoa where pessoa.idpes = aluno.ref_idpes | ||
| 492 | + and aluno.ativo = 1 and aluno.cod_aluno like $1||'%' and $2 = $2 order by cod_aluno limit 15"; | ||
| 493 | + } | ||
| 494 | + | ||
| 495 | + // seleciona por (codigo matricula ou codigo aluno) e/ou codigo escola | ||
| 496 | + $sqls[] = "select * from (select distinct ON (aluno.cod_aluno) aluno.cod_aluno as id, | ||
| 497 | + matricula.cod_matricula as matricula_id, pessoa.nome as name from pmieducar.matricula, | ||
| 498 | + pmieducar.aluno, cadastro.pessoa where aluno.cod_aluno = matricula.ref_cod_aluno and | ||
| 499 | + pessoa.idpes = aluno.ref_idpes and aluno.ativo = matricula.ativo and | ||
| 500 | + matricula.ativo = 1 and | ||
| 501 | + (select case when $2 != 0 then matricula.ref_ref_cod_escola = $2 else 1=1 end) and | ||
| 502 | + (matricula.cod_matricula like $1||'%' or matricula.ref_cod_aluno like $1||'%') and | ||
| 503 | + matricula.aprovado in (1, 2, 3, 7, 8, 9) limit 15) as alunos order by id"; | ||
| 504 | + | ||
| 505 | + return $sqls; | ||
| 506 | + } | ||
| 507 | + | ||
| 508 | + | ||
| 509 | + protected function sqlsForStringSearch() { | ||
| 510 | + $sqls = array(); | ||
| 511 | + | ||
| 512 | + // caso nao receba id da escola, pesquisa por codigo aluno em todas as escolas | ||
| 513 | + if (! $this->getRequest()->escola_id) { | ||
| 514 | + $sqls[] = "select distinct aluno.cod_aluno as id, | ||
| 515 | + pessoa.nome as name from pmieducar.aluno, cadastro.pessoa where | ||
| 516 | + pessoa.idpes = aluno.ref_idpes and aluno.ativo = 1 and | ||
| 517 | + lower(to_ascii(pessoa.nome)) like lower(to_ascii($1))||'%' and $2 = $2 | ||
| 518 | + order by nome limit 15"; | ||
| 519 | + } | ||
| 520 | + | ||
| 521 | + // seleciona por nome aluno e/ou codigo escola | ||
| 522 | + $sqls[] = "select * from(select distinct ON (aluno.cod_aluno) aluno.cod_aluno as id, | ||
| 523 | + matricula.cod_matricula as matricula_id, pessoa.nome as name from pmieducar.matricula, | ||
| 524 | + pmieducar.aluno, cadastro.pessoa where aluno.cod_aluno = matricula.ref_cod_aluno and | ||
| 525 | + pessoa.idpes = aluno.ref_idpes and aluno.ativo = matricula.ativo and | ||
| 526 | + matricula.ativo = 1 and (select case when $2 != 0 then matricula.ref_ref_cod_escola = $2 | ||
| 527 | + else 1=1 end) and | ||
| 528 | + lower(to_ascii(pessoa.nome)) like lower(to_ascii($1))||'%' and matricula.aprovado in | ||
| 529 | + (1, 2, 3, 7, 8, 9) limit 15) as alunos order by name"; | ||
| 530 | + | ||
| 531 | + return $sqls; | ||
| 532 | + } | ||
| 533 | + | ||
| 534 | + // api | ||
| 535 | + | ||
| 536 | + protected function tipoResponsavel($aluno) { | ||
| 537 | + $tipos = array('p' => 'pai', 'm' => 'mae', 'r' => 'outra_pessoa'); | ||
| 538 | + $tipo = $tipos[$aluno['tipo_responsavel']]; | ||
| 539 | + | ||
| 540 | + // no antigo cadastro de aluno, caso não fosse encontrado um tipo de responsavel | ||
| 541 | + // verificava se a pessoa possua responsavel, pai ou mãe, considerando como | ||
| 542 | + // responsavel um destes, na respectiva ordem, sendo assim esta api mantem | ||
| 543 | + // compatibilidade com o antigo cadastro. | ||
| 544 | + if (! $tipo) { | ||
| 545 | + $pessoa = new clsFisica(); | ||
| 546 | + $pessoa->idpes = $aluno['pessoa_id']; | ||
| 547 | + $pessoa = $pessoa->detalhe(); | ||
| 548 | + | ||
| 549 | + if ($pessoa['idpes_responsavel'] || $pessoa['nome_responsavel']) | ||
| 550 | + $tipo = $tipos['r']; | ||
| 551 | + elseif ($pessoa['idpes_pai'] || $pessoa['nome_pai']) | ||
| 552 | + $tipo = $tipos['p']; | ||
| 553 | + elseif ($pessoa['idpes_mae'] || $pessoa['nome_mae']) | ||
| 554 | + $tipo = $tipos['m']; | ||
| 555 | + } | ||
| 556 | + | ||
| 557 | + return $tipo; | ||
| 558 | + } | ||
| 559 | + | ||
| 560 | + protected function get() { | ||
| 561 | + if ($this->canGet()) { | ||
| 562 | + $id = $this->getRequest()->id; | ||
| 563 | + | ||
| 564 | + $aluno = new clsPmieducarAluno(); | ||
| 565 | + $aluno->cod_aluno = $id; | ||
| 566 | + $aluno = $aluno->detalhe(); | ||
| 567 | + | ||
| 568 | + $attrs = array( | ||
| 569 | + 'cod_aluno' => 'id', | ||
| 570 | + 'ref_cod_aluno_beneficio' => 'beneficio_id', | ||
| 571 | + 'ref_cod_religiao' => 'religiao_id', | ||
| 572 | + 'ref_idpes' => 'pessoa_id', | ||
| 573 | + 'tipo_responsavel' => 'tipo_responsavel', | ||
| 574 | + 'ref_usuario_exc' => 'destroyed_by', | ||
| 575 | + 'data_exclusao' => 'destroyed_at', | ||
| 576 | + 'analfabeto', | ||
| 577 | + 'ativo', | ||
| 578 | + 'aluno_estado_id' | ||
| 579 | + ); | ||
| 580 | + | ||
| 581 | + $aluno = Portabilis_Array_Utils::filter($aluno, $attrs); | ||
| 582 | + | ||
| 583 | + $aluno['nome'] = $this->loadNomeAluno($id); | ||
| 584 | + $aluno['tipo_transporte'] = $this->loadTransporte($id); | ||
| 585 | + $aluno['tipo_responsavel'] = $this->tipoResponsavel($aluno); | ||
| 586 | + $aluno['aluno_inep_id'] = $this->loadAlunoInepId($id); | ||
| 587 | + $aluno['ativo'] = $aluno['ativo'] == 1; | ||
| 588 | + | ||
| 589 | + $aluno['alfabetizado'] = $aluno['analfabeto'] == 0; | ||
| 590 | + unset($aluno['analfabeto']); | ||
| 591 | + | ||
| 592 | + // destroyed_by username | ||
| 593 | + $dataMapper = $this->getDataMapperFor('usuario', 'funcionario'); | ||
| 594 | + $entity = $this->tryGetEntityOf($dataMapper, $aluno['destroyed_by']); | ||
| 595 | + $aluno['destroyed_by'] = is_null($entity) ? null : $entity->get('matricula'); | ||
| 596 | + | ||
| 597 | + $aluno['destroyed_at'] = Portabilis_Date_Utils::pgSQLToBr($aluno['destroyed_at']); | ||
| 598 | + | ||
| 599 | + return $aluno; | ||
| 600 | + } | ||
| 601 | + } | ||
| 602 | + | ||
| 603 | + protected function getMatriculas() { | ||
| 604 | + if ($this->canGetMatriculas()) { | ||
| 605 | + $matriculas = new clsPmieducarMatricula(); | ||
| 606 | + $matriculas->setOrderby('ano DESC, ref_ref_cod_serie DESC, cod_matricula DESC, aprovado'); | ||
| 607 | + | ||
| 608 | + $matriculas = $matriculas->lista( | ||
| 609 | + null, | ||
| 610 | + null, | ||
| 611 | + null, | ||
| 612 | + null, | ||
| 613 | + null, | ||
| 614 | + null, | ||
| 615 | + $this->getRequest()->aluno_id, | ||
| 616 | + null, | ||
| 617 | + null, | ||
| 618 | + null, | ||
| 619 | + null, | ||
| 620 | + null, | ||
| 621 | + 1 | ||
| 622 | + ); | ||
| 623 | + | ||
| 624 | + $attrs = array( | ||
| 625 | + 'cod_matricula' => 'id', | ||
| 626 | + 'ref_cod_instituicao' => 'instituicao_id', | ||
| 627 | + 'ref_ref_cod_escola' => 'escola_id', | ||
| 628 | + 'ref_cod_curso' => 'curso_id', | ||
| 629 | + 'ref_ref_cod_serie' => 'serie_id', | ||
| 630 | + 'ref_cod_aluno' => 'aluno_id', | ||
| 631 | + 'nome' => 'aluno_nome', | ||
| 632 | + 'aprovado' => 'situacao', | ||
| 633 | + 'ano' | ||
| 634 | + ); | ||
| 635 | + | ||
| 636 | + $matriculas = Portabilis_Array_Utils::filterSet($matriculas, $attrs); | ||
| 637 | + | ||
| 638 | + foreach ($matriculas as $index => $matricula) { | ||
| 639 | + $turma = $this->loadTurmaByMatriculaId($matricula['id']); | ||
| 640 | + | ||
| 641 | + $matriculas[$index]['aluno_nome'] = $this->toUtf8($matricula['aluno_nome'], array('transform' => true)); | ||
| 642 | + $matriculas[$index]['turma_id'] = $turma['id']; | ||
| 643 | + $matriculas[$index]['turma_nome'] = $turma['nome']; | ||
| 644 | + $matriculas[$index]['escola_nome'] = $this->loadEscolaNome($matricula['escola_id']); | ||
| 645 | + $matriculas[$index]['curso_nome'] = $this->loadCursoNome($matricula['curso_id']); | ||
| 646 | + $matriculas[$index]['serie_nome'] = $this->loadSerieNome($matricula['serie_id']); | ||
| 647 | + | ||
| 648 | + $matriculas[$index]['data_entrada'] = $this->loadTransferenciaDataEntrada($matricula['id']); | ||
| 649 | + $matriculas[$index]['data_saida'] = $this->loadTransferenciaDataSaida($matricula['id']); | ||
| 650 | + | ||
| 651 | + $matriculas[$index]['situacao'] = App_Model_MatriculaSituacao::getInstance()->getValue( | ||
| 652 | + $matricula['situacao'] | ||
| 653 | + ); | ||
| 654 | + | ||
| 655 | + $matriculas[$index]['user_can_access'] = Portabilis_Utils_User::canAccessEscola($matricula['escola_id']); | ||
| 656 | + $matriculas[$index]['transferencia_em_aberto'] = $this->possuiTransferenciaEmAberto($matricula['id']); | ||
| 657 | + } | ||
| 658 | + | ||
| 659 | + return array('matriculas' => $matriculas); | ||
| 660 | + } | ||
| 661 | + } | ||
| 662 | + | ||
| 663 | + protected function getOcorrenciasDisciplinares() { | ||
| 664 | + if ($this->canGetOcorrenciasDisciplinares()) | ||
| 665 | + return $this->loadOcorrenciasDisciplinares(); | ||
| 666 | + } | ||
| 667 | + | ||
| 668 | + protected function post() { | ||
| 669 | + if ($this->canPost()) { | ||
| 670 | + $id = $this->createOrUpdateAluno(); | ||
| 671 | + | ||
| 672 | + if (is_numeric($id)) { | ||
| 673 | + $this->updateResponsavel(); | ||
| 674 | + $this->createOrUpdateTransporte($id); | ||
| 675 | + $this->createUpdateOrDestroyEducacensoAluno($id); | ||
| 676 | + $this->updateDeficiencias(); | ||
| 677 | + | ||
| 678 | + $this->messenger->append('Cadastrado realizado com sucesso', 'success', false, 'error'); | ||
| 679 | + } | ||
| 680 | + else | ||
| 681 | + $this->messenger->append('Aparentemente o aluno não pode ser cadastrado, por favor, verifique.'); | ||
| 682 | + } | ||
| 683 | + | ||
| 684 | + return array('id' => $id); | ||
| 685 | + } | ||
| 686 | + | ||
| 687 | + protected function put() { | ||
| 688 | + $id = $this->getRequest()->id; | ||
| 689 | + | ||
| 690 | + if ($this->canPut() && $this->createOrUpdateAluno($id)) { | ||
| 691 | + $this->updateResponsavel(); | ||
| 692 | + $this->createOrUpdateTransporte($id); | ||
| 693 | + $this->createUpdateOrDestroyEducacensoAluno($id); | ||
| 694 | + $this->updateDeficiencias(); | ||
| 695 | + | ||
| 696 | + $this->messenger->append('Cadastro alterado com sucesso', 'success', false, 'error'); | ||
| 697 | + } | ||
| 698 | + else | ||
| 699 | + $this->messenger->append('Aparentemente o cadastro não pode ser alterado, por favor, verifique.', | ||
| 700 | + 'error', false, 'error'); | ||
| 701 | + | ||
| 702 | + return array('id' => $id); | ||
| 703 | + } | ||
| 704 | + | ||
| 705 | + | ||
| 706 | + protected function enable() { | ||
| 707 | + $id = $this->getRequest()->id; | ||
| 708 | + | ||
| 709 | + if ($this->canEnable()) { | ||
| 710 | + $aluno = new clsPmieducarAluno(); | ||
| 711 | + $aluno->cod_aluno = $id; | ||
| 712 | + $aluno->ref_usuario_exc = $this->getSession()->id_pessoa; | ||
| 713 | + $aluno->ativo = 1; | ||
| 714 | + | ||
| 715 | + if($aluno->edita()) | ||
| 716 | + $this->messenger->append('Cadastro ativado com sucesso', 'success', false, 'error'); | ||
| 717 | + else | ||
| 718 | + $this->messenger->append('Aparentemente o cadastro não pode ser ativado, por favor, verifique.', | ||
| 719 | + 'error', false, 'error'); | ||
| 720 | + } | ||
| 721 | + | ||
| 722 | + return array('id' => $id); | ||
| 723 | + } | ||
| 724 | + | ||
| 725 | + protected function delete() { | ||
| 726 | + $id = $this->getRequest()->id; | ||
| 727 | + | ||
| 728 | + if ($this->canDelete()) { | ||
| 729 | + $aluno = new clsPmieducarAluno(); | ||
| 730 | + $aluno->cod_aluno = $id; | ||
| 731 | + $aluno->ref_usuario_exc = $this->getSession()->id_pessoa; | ||
| 732 | + | ||
| 733 | + if($aluno->excluir()) | ||
| 734 | + $this->messenger->append('Cadastro removido com sucesso', 'success', false, 'error'); | ||
| 735 | + else | ||
| 736 | + $this->messenger->append('Aparentemente o cadastro não pode ser removido, por favor, verifique.', | ||
| 737 | + 'error', false, 'error'); | ||
| 738 | + } | ||
| 739 | + | ||
| 740 | + return array('id' => $id); | ||
| 741 | + } | ||
| 742 | + | ||
| 743 | + | ||
| 744 | + public function Gerar() { | ||
| 745 | + if ($this->isRequestFor('get', 'aluno')) | ||
| 746 | + $this->appendResponse($this->get()); | ||
| 747 | + | ||
| 748 | + elseif ($this->isRequestFor('get', 'aluno-search')) | ||
| 749 | + $this->appendResponse($this->search()); | ||
| 750 | + | ||
| 751 | + elseif ($this->isRequestFor('get', 'matriculas')) | ||
| 752 | + $this->appendResponse($this->getMatriculas()); | ||
| 753 | + | ||
| 754 | + elseif ($this->isRequestFor('get', 'ocorrencias_disciplinares')) | ||
| 755 | + $this->appendResponse($this->getOcorrenciasDisciplinares()); | ||
| 756 | + | ||
| 757 | + // create | ||
| 758 | + elseif ($this->isRequestFor('post', 'aluno')) | ||
| 759 | + $this->appendResponse($this->post()); | ||
| 760 | + | ||
| 761 | + // update | ||
| 762 | + elseif ($this->isRequestFor('put', 'aluno')) | ||
| 763 | + $this->appendResponse($this->put()); | ||
| 764 | + | ||
| 765 | + elseif ($this->isRequestFor('enable', 'aluno')) | ||
| 766 | + $this->appendResponse($this->enable()); | ||
| 767 | + | ||
| 768 | + elseif ($this->isRequestFor('delete', 'aluno')) | ||
| 769 | + $this->appendResponse($this->delete()); | ||
| 770 | + | ||
| 771 | + else | ||
| 772 | + $this->notImplementedOperationError(); | ||
| 773 | + } | ||
| 774 | +} |
ieducar/modules/Api/Views/ComponenteCurricularController.php
0 → 100644
| @@ -0,0 +1,64 @@ | @@ -0,0 +1,64 @@ | ||
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +#error_reporting(E_ALL); | ||
| 4 | +#ini_set("display_errors", 1); | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * i-Educar - Sistema de gestão escolar | ||
| 8 | + * | ||
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | ||
| 10 | + * <ctima@itajai.sc.gov.br> | ||
| 11 | + * | ||
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | ||
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | ||
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | ||
| 15 | + * qualquer versão posterior. | ||
| 16 | + * | ||
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | ||
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | ||
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | ||
| 20 | + * do GNU para mais detalhes. | ||
| 21 | + * | ||
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | ||
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | ||
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
| 25 | + * | ||
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | ||
| 27 | + * @category i-Educar | ||
| 28 | + * @license @@license@@ | ||
| 29 | + * @package Api | ||
| 30 | + * @subpackage Modules | ||
| 31 | + * @since Arquivo disponível desde a versão ? | ||
| 32 | + * @version $Id$ | ||
| 33 | + */ | ||
| 34 | + | ||
| 35 | +require_once 'lib/Portabilis/Controller/ApiCoreController.php'; | ||
| 36 | +require_once 'lib/Portabilis/Array/Utils.php'; | ||
| 37 | +require_once 'lib/Portabilis/String/Utils.php'; | ||
| 38 | + | ||
| 39 | +class ComponenteCurricularController extends ApiCoreController | ||
| 40 | +{ | ||
| 41 | + // search options | ||
| 42 | + | ||
| 43 | + protected function searchOptions() { | ||
| 44 | + return array('namespace' => 'modules', 'idAttr' => 'id'); | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + // subescreve para pesquisar %query%, e nao query% como por padrão | ||
| 48 | + protected function sqlsForStringSearch() { | ||
| 49 | + return "select distinct id, nome as name from modules.componente_curricular | ||
| 50 | + where lower(to_ascii(nome)) like '%'||lower(to_ascii($1))||'%' order by nome limit 15"; | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + // subscreve formatResourceValue para não adicionar 'id -' a frente do resultado | ||
| 54 | + protected function formatResourceValue($resource) { | ||
| 55 | + return $this->toUtf8(mb_strtoupper($resource['name'])); | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + public function Gerar() { | ||
| 59 | + if ($this->isRequestFor('get', 'componente_curricular-search')) | ||
| 60 | + $this->appendResponse($this->search()); | ||
| 61 | + else | ||
| 62 | + $this->notImplementedOperationError(); | ||
| 63 | + } | ||
| 64 | +} |
| @@ -0,0 +1,57 @@ | @@ -0,0 +1,57 @@ | ||
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +#error_reporting(E_ALL); | ||
| 4 | +#ini_set("display_errors", 1); | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * i-Educar - Sistema de gestão escolar | ||
| 8 | + * | ||
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | ||
| 10 | + * <ctima@itajai.sc.gov.br> | ||
| 11 | + * | ||
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | ||
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | ||
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | ||
| 15 | + * qualquer versão posterior. | ||
| 16 | + * | ||
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | ||
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | ||
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | ||
| 20 | + * do GNU para mais detalhes. | ||
| 21 | + * | ||
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | ||
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | ||
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
| 25 | + * | ||
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | ||
| 27 | + * @category i-Educar | ||
| 28 | + * @license @@license@@ | ||
| 29 | + * @package Api | ||
| 30 | + * @subpackage Modules | ||
| 31 | + * @since Arquivo disponível desde a versão ? | ||
| 32 | + * @version $Id$ | ||
| 33 | + */ | ||
| 34 | + | ||
| 35 | +require_once 'lib/Portabilis/Controller/ApiCoreController.php'; | ||
| 36 | +require_once 'lib/Portabilis/Array/Utils.php'; | ||
| 37 | +require_once 'lib/Portabilis/String/Utils.php'; | ||
| 38 | + | ||
| 39 | +class DeficienciaController extends ApiCoreController | ||
| 40 | +{ | ||
| 41 | + // search options | ||
| 42 | + | ||
| 43 | + protected function searchOptions() { | ||
| 44 | + return array('namespace' => 'cadastro', 'labelAttr' => 'nm_deficiencia', 'idAttr' => 'cod_deficiencia'); | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + protected function formatResourceValue($resource) { | ||
| 48 | + return $this->toUtf8($resource['name'], array('transform' => true)); | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + public function Gerar() { | ||
| 52 | + if ($this->isRequestFor('get', 'deficiencia-search')) | ||
| 53 | + $this->appendResponse($this->search()); | ||
| 54 | + else | ||
| 55 | + $this->notImplementedOperationError(); | ||
| 56 | + } | ||
| 57 | +} |
| @@ -0,0 +1,118 @@ | @@ -0,0 +1,118 @@ | ||
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +#error_reporting(E_ALL); | ||
| 4 | +#ini_set("display_errors", 1); | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * i-Educar - Sistema de gestão escolar | ||
| 8 | + * | ||
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | ||
| 10 | + * <ctima@itajai.sc.gov.br> | ||
| 11 | + * | ||
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | ||
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | ||
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | ||
| 15 | + * qualquer versão posterior. | ||
| 16 | + * | ||
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | ||
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | ||
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | ||
| 20 | + * do GNU para mais detalhes. | ||
| 21 | + * | ||
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | ||
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | ||
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
| 25 | + * | ||
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | ||
| 27 | + * @category i-Educar | ||
| 28 | + * @license @@license@@ | ||
| 29 | + * @package Api | ||
| 30 | + * @subpackage Modules | ||
| 31 | + * @since Arquivo disponível desde a versão ? | ||
| 32 | + * @version $Id$ | ||
| 33 | + */ | ||
| 34 | + | ||
| 35 | +require_once 'lib/Portabilis/Controller/ApiCoreController.php'; | ||
| 36 | + | ||
| 37 | +class EscolaController extends ApiCoreController | ||
| 38 | +{ | ||
| 39 | + protected $_processoAp = 561; | ||
| 40 | + protected $_nivelAcessoOption = App_Model_NivelAcesso::SOMENTE_ESCOLA; | ||
| 41 | + | ||
| 42 | + | ||
| 43 | + protected function canChange() { | ||
| 44 | + return true; | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + protected function loadEscolaInepId($escolaId) { | ||
| 48 | + $dataMapper = $this->getDataMapperFor('educacenso', 'escola'); | ||
| 49 | + $entity = $this->tryGetEntityOf($dataMapper, $escolaId); | ||
| 50 | + | ||
| 51 | + return (is_null($entity) ? null : $entity->get('escolaInep')); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + | ||
| 55 | + protected function createUpdateOrDestroyEducacensoEscola($escolaId) { | ||
| 56 | + $dataMapper = $this->getDataMapperFor('educacenso', 'escola'); | ||
| 57 | + | ||
| 58 | + if (empty($this->getRequest()->escola_inep_id)) | ||
| 59 | + $result = $this->deleteEntityOf($dataMapper, $escolaId); | ||
| 60 | + else { | ||
| 61 | + $data = array( | ||
| 62 | + 'escola' => $escolaId, | ||
| 63 | + 'escolaInep' => $this->getRequest()->escola_inep_id, | ||
| 64 | + | ||
| 65 | + // campos deprecados? | ||
| 66 | + 'fonte' => 'fonte', | ||
| 67 | + 'nomeInep' => '-', | ||
| 68 | + | ||
| 69 | + // always setting now... | ||
| 70 | + 'created_at' => 'NOW()', | ||
| 71 | + ); | ||
| 72 | + | ||
| 73 | + $entity = $this->getOrCreateEntityOf($dataMapper, $escolaId); | ||
| 74 | + $entity->setOptions($data); | ||
| 75 | + | ||
| 76 | + $result = $this->saveEntity($dataMapper, $entity); | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + return $result; | ||
| 80 | + } | ||
| 81 | + | ||
| 82 | + protected function get() { | ||
| 83 | + if ($this->canGet()) { | ||
| 84 | + $id = $this->getRequest()->id; | ||
| 85 | + | ||
| 86 | + $escola = array(); | ||
| 87 | + $escola['escola_inep_id'] = $this->loadEscolaInepId($id); | ||
| 88 | + | ||
| 89 | + return $escola; | ||
| 90 | + } | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + protected function put() { | ||
| 94 | + $id = $this->getRequest()->id; | ||
| 95 | + | ||
| 96 | + if ($this->canPut()) { | ||
| 97 | + $this->createUpdateOrDestroyEducacensoEscola($id); | ||
| 98 | + | ||
| 99 | + $this->messenger->append('Cadastro alterado com sucesso', 'success', false, 'error'); | ||
| 100 | + } | ||
| 101 | + else | ||
| 102 | + $this->messenger->append('Aparentemente o cadastro não pode ser alterado, por favor, verifique.', | ||
| 103 | + 'error', false, 'error'); | ||
| 104 | + | ||
| 105 | + return array('id' => $id); | ||
| 106 | + } | ||
| 107 | + | ||
| 108 | + public function Gerar() { | ||
| 109 | + if ($this->isRequestFor('get', 'escola')) | ||
| 110 | + $this->appendResponse($this->get()); | ||
| 111 | + | ||
| 112 | + elseif ($this->isRequestFor('put', 'escola')) | ||
| 113 | + $this->appendResponse($this->put()); | ||
| 114 | + | ||
| 115 | + else | ||
| 116 | + $this->notImplementedOperationError(); | ||
| 117 | + } | ||
| 118 | +} | ||
| 0 | \ No newline at end of file | 119 | \ No newline at end of file |
| @@ -0,0 +1,199 @@ | @@ -0,0 +1,199 @@ | ||
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +#error_reporting(E_ALL); | ||
| 4 | +#ini_set("display_errors", 1); | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * i-Educar - Sistema de gestão escolar | ||
| 8 | + * | ||
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | ||
| 10 | + * <ctima@itajai.sc.gov.br> | ||
| 11 | + * | ||
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | ||
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | ||
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | ||
| 15 | + * qualquer versão posterior. | ||
| 16 | + * | ||
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | ||
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | ||
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | ||
| 20 | + * do GNU para mais detalhes. | ||
| 21 | + * | ||
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | ||
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | ||
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
| 25 | + * | ||
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | ||
| 27 | + * @category i-Educar | ||
| 28 | + * @license @@license@@ | ||
| 29 | + * @package Api | ||
| 30 | + * @subpackage Modules | ||
| 31 | + * @since Arquivo disponível desde a versão ? | ||
| 32 | + * @version $Id$ | ||
| 33 | + */ | ||
| 34 | + | ||
| 35 | +require_once 'lib/Portabilis/Controller/ApiCoreController.php'; | ||
| 36 | +require_once 'lib/Portabilis/Array/Utils.php'; | ||
| 37 | +require_once 'lib/Portabilis/String/Utils.php'; | ||
| 38 | + | ||
| 39 | +class MatriculaController extends ApiCoreController | ||
| 40 | +{ | ||
| 41 | + | ||
| 42 | + protected function canGetMatriculas() { | ||
| 43 | + return $this->validatesId('escola') && | ||
| 44 | + $this->validatesId('aluno'); | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + // search options | ||
| 48 | + | ||
| 49 | + protected function searchOptions() { | ||
| 50 | + return array('sqlParams' => array($this->getRequest()->escola_id, $this->getRequest()->ano), | ||
| 51 | + 'selectFields' => array('aluno_id')); | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + protected function sqlsForNumericSearch() { | ||
| 55 | + | ||
| 56 | + return "select distinct ON (aluno.cod_aluno) aluno.cod_aluno as aluno_id, | ||
| 57 | + matricula.cod_matricula as id, pessoa.nome as name from pmieducar.matricula, | ||
| 58 | + pmieducar.aluno, cadastro.pessoa where aluno.cod_aluno = matricula.ref_cod_aluno and | ||
| 59 | + pessoa.idpes = aluno.ref_idpes and aluno.ativo = matricula.ativo and | ||
| 60 | + matricula.ativo = 1 and matricula.ref_ref_cod_escola = $2 and | ||
| 61 | + (matricula.cod_matricula like $1 or matricula.ref_cod_aluno like $1) and | ||
| 62 | + matricula.aprovado in (1, 2, 3, 7, 8, 9) and ano = $3 limit 15"; | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + | ||
| 66 | + protected function sqlsForStringSearch() { | ||
| 67 | + return "select distinct ON (aluno.cod_aluno) aluno.cod_aluno as aluno_id, | ||
| 68 | + matricula.cod_matricula as id, pessoa.nome as name from pmieducar.matricula, | ||
| 69 | + pmieducar.aluno, cadastro.pessoa where aluno.cod_aluno = matricula.ref_cod_aluno and | ||
| 70 | + pessoa.idpes = aluno.ref_idpes and aluno.ativo = matricula.ativo and | ||
| 71 | + matricula.ativo = 1 and matricula.ref_ref_cod_escola = $2 and | ||
| 72 | + lower(to_ascii(pessoa.nome)) like lower(to_ascii($1))||'%' and matricula.aprovado in (1, 2, 3, 7, 8, 9) | ||
| 73 | + and ano = $3 limit 15"; | ||
| 74 | + } | ||
| 75 | + | ||
| 76 | + | ||
| 77 | + protected function formatResourceValue($resource) { | ||
| 78 | + $alunoId = $resource['aluno_id']; | ||
| 79 | + $nome = $this->toUtf8($resource['name'], array('transform' => true)); | ||
| 80 | + | ||
| 81 | + return $resource['id'] . " - ($alunoId) $nome"; | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + | ||
| 85 | + // load | ||
| 86 | + | ||
| 87 | + protected function loadNomeEscola($escolaId) { | ||
| 88 | + $sql = "select nome from cadastro.pessoa, pmieducar.escola where idpes = ref_idpes and cod_escola = $1"; | ||
| 89 | + $nome = $this->fetchPreparedQuery($sql, $escolaId, false, 'first-field'); | ||
| 90 | + | ||
| 91 | + return $this->safeString($nome); | ||
| 92 | + } | ||
| 93 | + | ||
| 94 | + protected function loadNameFor($resourceName, $id){ | ||
| 95 | + $sql = "select nm_{$resourceName} from pmieducar.{$resourceName} where cod_{$resourceName} = $1"; | ||
| 96 | + $nome = $this->fetchPreparedQuery($sql, $id, false, 'first-field'); | ||
| 97 | + | ||
| 98 | + return $this->safeString($nome); | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + protected function loadDadosForMatricula($matriculaId){ | ||
| 102 | + $sql = "select cod_matricula as id, ref_cod_aluno as aluno_id, matricula.ano, | ||
| 103 | + escola.ref_cod_instituicao as instituicao_id, matricula.ref_ref_cod_escola | ||
| 104 | + as escola_id, matricula.ref_cod_curso as curso_id, matricula.ref_ref_cod_serie | ||
| 105 | + as serie_id, matricula_turma.ref_cod_turma as turma_id from | ||
| 106 | + pmieducar.matricula_turma, pmieducar.matricula, pmieducar.escola where escola.cod_escola = | ||
| 107 | + matricula.ref_ref_cod_escola and ref_cod_matricula = cod_matricula and ref_cod_matricula = | ||
| 108 | + $1 and matricula.ativo = matricula_turma.ativo and matricula_turma.ativo = 1 order by | ||
| 109 | + matricula_turma.sequencial limit 1"; | ||
| 110 | + | ||
| 111 | + $dadosMatricula = $this->fetchPreparedQuery($sql, $matriculaId, false, 'first-row'); | ||
| 112 | + | ||
| 113 | + $attrs = array('id', 'aluno_id', 'ano', 'instituicao_id', 'escola_id', | ||
| 114 | + 'curso_id', 'serie_id', 'turma_id'); | ||
| 115 | + | ||
| 116 | + return Portabilis_Array_Utils::filter($dadosMatricula, $attrs); | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + protected function tryLoadMatriculaTurma($matriculaId) { | ||
| 120 | + $sql = "select ref_cod_turma as turma_id, turma.tipo_boletim from pmieducar.matricula_turma, | ||
| 121 | + pmieducar.turma where ref_cod_turma = cod_turma and ref_cod_matricula = $1 and | ||
| 122 | + matricula_turma.ativo = 1 limit 1"; | ||
| 123 | + | ||
| 124 | + $matriculaTurma = $this->fetchPreparedQuery($sql, $matriculaId, false, 'first-row'); | ||
| 125 | + | ||
| 126 | + if (is_array($matriculaTurma) and count($matriculaTurma) > 0) { | ||
| 127 | + $attrs = array('turma_id', 'tipo_boletim'); | ||
| 128 | + | ||
| 129 | + $matriculaTurma = Portabilis_Array_Utils::filter($matriculaTurma, $attrs); | ||
| 130 | + $matriculaTurma['nome_turma'] = $this->loadNameFor('turma', $matriculaTurma['turma_id']); | ||
| 131 | + } | ||
| 132 | + | ||
| 133 | + return $matriculaTurma; | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + protected function loadMatriculasAluno($alunoId, $escolaId) { | ||
| 137 | + // #TODO mostrar o nome da situação da matricula | ||
| 138 | + | ||
| 139 | + // seleciona somente matriculas em andamento, aprovado, reprovado, em exame, aprovado apos exame e retido faltas | ||
| 140 | + $sql = "select cod_matricula as id, ano, ref_cod_instituicao as instituicao_id, ref_ref_cod_escola as | ||
| 141 | + escola_id, ref_cod_curso as curso_id, ref_ref_cod_serie as serie_id from pmieducar.matricula, | ||
| 142 | + pmieducar.escola where cod_escola = ref_ref_cod_escola and ref_cod_aluno = $1 and ref_ref_cod_escola = | ||
| 143 | + $2 and matricula.ativo = 1 and matricula.aprovado in (1, 2, 3, 7, 8, 9) order by ano desc, id"; | ||
| 144 | + | ||
| 145 | + $params = array($alunoId, $escolaId); | ||
| 146 | + $matriculas = $this->fetchPreparedQuery($sql, $params, false); | ||
| 147 | + | ||
| 148 | + if (is_array($matriculas) && count($matriculas) > 0) { | ||
| 149 | + $attrs = array('id', 'ano', 'instituicao_id', 'escola_id', 'curso_id', 'serie_id'); | ||
| 150 | + $matriculas = Portabilis_Array_Utils::filterSet($matriculas, $attrs); | ||
| 151 | + | ||
| 152 | + foreach($matriculas as $key => $matricula) { | ||
| 153 | + $matriculas[$key]['nome_curso'] = $this->loadNameFor('curso', $matricula['curso_id']); | ||
| 154 | + $matriculas[$key]['nome_escola'] = $this->loadNomeEscola($this->getRequest()->escola_id); | ||
| 155 | + $matriculas[$key]['nome_serie'] = $this->loadNameFor('serie', $matricula['serie_id']); | ||
| 156 | + $matriculas[$key]['situacao'] = '#TODO'; | ||
| 157 | + $turma = $this->tryLoadMatriculaTurma($matricula['id']); | ||
| 158 | + | ||
| 159 | + if (is_array($turma) and count($turma) > 0) { | ||
| 160 | + $matriculas[$key]['turma_id'] = $turma['turma_id']; | ||
| 161 | + $matriculas[$key]['nome_turma'] = $turma['nome_turma']; | ||
| 162 | + $matriculas[$key]['report_boletim_template'] = $turma['report_boletim_template']; | ||
| 163 | + } | ||
| 164 | + } | ||
| 165 | + } | ||
| 166 | + | ||
| 167 | + return $matriculas; | ||
| 168 | + } | ||
| 169 | + | ||
| 170 | + // api | ||
| 171 | + | ||
| 172 | + protected function get() { | ||
| 173 | + if ($this->canGet()) | ||
| 174 | + return $this->loadDadosForMatricula($this->getRequest()->id); | ||
| 175 | + } | ||
| 176 | + | ||
| 177 | + | ||
| 178 | + protected function getMatriculas() { | ||
| 179 | + if ($this->canGetMatriculas()) { | ||
| 180 | + $matriculas = $this->loadMatriculasAluno($this->getRequest()->aluno_id, $this->getRequest()->escola_id); | ||
| 181 | + return array('matriculas' => $matriculas); | ||
| 182 | + } | ||
| 183 | + } | ||
| 184 | + | ||
| 185 | + | ||
| 186 | + public function Gerar() { | ||
| 187 | + if ($this->isRequestFor('get', 'matricula')) | ||
| 188 | + $this->appendResponse($this->get()); | ||
| 189 | + | ||
| 190 | + elseif ($this->isRequestFor('get', 'matriculas')) | ||
| 191 | + $this->appendResponse($this->getMatriculas()); | ||
| 192 | + | ||
| 193 | + elseif ($this->isRequestFor('get', 'matricula-search')) | ||
| 194 | + $this->appendResponse($this->search()); | ||
| 195 | + | ||
| 196 | + else | ||
| 197 | + $this->notImplementedOperationError(); | ||
| 198 | + } | ||
| 199 | +} |
| @@ -0,0 +1,62 @@ | @@ -0,0 +1,62 @@ | ||
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +#error_reporting(E_ALL); | ||
| 4 | +#ini_set("display_errors", 1); | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * i-Educar - Sistema de gestão escolar | ||
| 8 | + * | ||
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | ||
| 10 | + * <ctima@itajai.sc.gov.br> | ||
| 11 | + * | ||
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | ||
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | ||
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | ||
| 15 | + * qualquer versão posterior. | ||
| 16 | + * | ||
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | ||
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | ||
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | ||
| 20 | + * do GNU para mais detalhes. | ||
| 21 | + * | ||
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | ||
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | ||
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
| 25 | + * | ||
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | ||
| 27 | + * @category i-Educar | ||
| 28 | + * @license @@license@@ | ||
| 29 | + * @package Api | ||
| 30 | + * @subpackage Modules | ||
| 31 | + * @since Arquivo disponível desde a versão ? | ||
| 32 | + * @version $Id$ | ||
| 33 | + */ | ||
| 34 | + | ||
| 35 | +require_once 'lib/Portabilis/Controller/ApiCoreController.php'; | ||
| 36 | +require_once 'lib/Portabilis/Array/Utils.php'; | ||
| 37 | +require_once 'lib/Portabilis/String/Utils.php'; | ||
| 38 | + | ||
| 39 | +class MunicipioController extends ApiCoreController | ||
| 40 | +{ | ||
| 41 | + // search options | ||
| 42 | + | ||
| 43 | + protected function searchOptions() { | ||
| 44 | + return array('namespace' => 'public', 'idAttr' => 'idmun', 'selectFields' => array('sigla_uf')); | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + // subscreve formatResourceValue para adicionar a sigla do estado ao final do valor, | ||
| 48 | + // "<id_municipio> - <nome_municipio> (<sigla_uf>)", ex: "1 - Içara (SC)" | ||
| 49 | + protected function formatResourceValue($resource) { | ||
| 50 | + $siglaUf = $resource['sigla_uf']; | ||
| 51 | + $nome = $this->toUtf8($resource['name'], array('transform' => true)); | ||
| 52 | + | ||
| 53 | + return $resource['id'] . " - $nome ($siglaUf)"; | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + public function Gerar() { | ||
| 57 | + if ($this->isRequestFor('get', 'municipio-search')) | ||
| 58 | + $this->appendResponse($this->search()); | ||
| 59 | + else | ||
| 60 | + $this->notImplementedOperationError(); | ||
| 61 | + } | ||
| 62 | +} |
| @@ -0,0 +1,53 @@ | @@ -0,0 +1,53 @@ | ||
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +#error_reporting(E_ALL); | ||
| 4 | +#ini_set("display_errors", 1); | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * i-Educar - Sistema de gestão escolar | ||
| 8 | + * | ||
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | ||
| 10 | + * <ctima@itajai.sc.gov.br> | ||
| 11 | + * | ||
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | ||
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | ||
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | ||
| 15 | + * qualquer versão posterior. | ||
| 16 | + * | ||
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | ||
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | ||
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | ||
| 20 | + * do GNU para mais detalhes. | ||
| 21 | + * | ||
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | ||
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | ||
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
| 25 | + * | ||
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | ||
| 27 | + * @category i-Educar | ||
| 28 | + * @license @@license@@ | ||
| 29 | + * @package Api | ||
| 30 | + * @subpackage Modules | ||
| 31 | + * @since Arquivo disponível desde a versão ? | ||
| 32 | + * @version $Id$ | ||
| 33 | + */ | ||
| 34 | + | ||
| 35 | +require_once 'lib/Portabilis/Controller/ApiCoreController.php'; | ||
| 36 | +require_once 'lib/Portabilis/Array/Utils.php'; | ||
| 37 | +require_once 'lib/Portabilis/String/Utils.php'; | ||
| 38 | + | ||
| 39 | +class PaisController extends ApiCoreController | ||
| 40 | +{ | ||
| 41 | + // search options | ||
| 42 | + | ||
| 43 | + protected function searchOptions() { | ||
| 44 | + return array('namespace' => 'public', 'idAttr' => 'idpais'); | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + public function Gerar() { | ||
| 48 | + if ($this->isRequestFor('get', 'pais-search')) | ||
| 49 | + $this->appendResponse($this->search()); | ||
| 50 | + else | ||
| 51 | + $this->notImplementedOperationError(); | ||
| 52 | + } | ||
| 53 | +} |
| @@ -0,0 +1,171 @@ | @@ -0,0 +1,171 @@ | ||
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +#error_reporting(E_ALL); | ||
| 4 | +#ini_set("display_errors", 1); | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * i-Educar - Sistema de gestão escolar | ||
| 8 | + * | ||
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | ||
| 10 | + * <ctima@itajai.sc.gov.br> | ||
| 11 | + * | ||
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | ||
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | ||
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | ||
| 15 | + * qualquer versão posterior. | ||
| 16 | + * | ||
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | ||
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | ||
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | ||
| 20 | + * do GNU para mais detalhes. | ||
| 21 | + * | ||
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | ||
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | ||
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
| 25 | + * | ||
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | ||
| 27 | + * @category i-Educar | ||
| 28 | + * @license @@license@@ | ||
| 29 | + * @package Api | ||
| 30 | + * @subpackage Modules | ||
| 31 | + * @since Arquivo disponível desde a versão ? | ||
| 32 | + * @version $Id$ | ||
| 33 | + */ | ||
| 34 | + | ||
| 35 | +require_once 'lib/Portabilis/Controller/ApiCoreController.php'; | ||
| 36 | +require_once 'lib/Portabilis/Array/Utils.php'; | ||
| 37 | +require_once 'lib/Portabilis/String/Utils.php'; | ||
| 38 | + | ||
| 39 | +class PessoaController extends ApiCoreController | ||
| 40 | +{ | ||
| 41 | + | ||
| 42 | + // validators | ||
| 43 | + | ||
| 44 | + // overwrite api core validator | ||
| 45 | + protected function validatesResourceId() { | ||
| 46 | + $existenceOptions = array('schema_name' => 'cadastro', 'field_name' => 'idpes'); | ||
| 47 | + | ||
| 48 | + return $this->validatesPresenceOf('id') && | ||
| 49 | + $this->validatesExistenceOf('fisica', $this->getRequest()->id, $existenceOptions); | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + | ||
| 53 | + // load resources | ||
| 54 | + | ||
| 55 | + protected function tryLoadAlunoId($pessoaId) { | ||
| 56 | + $sql = "select cod_aluno as id from pmieducar.aluno where ref_idpes = $1"; | ||
| 57 | + $id = $this->fetchPreparedQuery($sql, $pessoaId, false, 'first-field'); | ||
| 58 | + | ||
| 59 | + // when not exists, returns an empty array that causes error on loadDetails | ||
| 60 | + if (empty($id)) | ||
| 61 | + $id = null; | ||
| 62 | + | ||
| 63 | + return $id; | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + protected function loadPessoa($id = null) { | ||
| 67 | + $sql = "select idpes as id, nome from cadastro.pessoa where idpes = $1"; | ||
| 68 | + | ||
| 69 | + $pessoa = $this->fetchPreparedQuery($sql, $id, false, 'first-row'); | ||
| 70 | + $pessoa['nome'] = $this->toUtf8($pessoa['nome'], array('transform' => true)); | ||
| 71 | + | ||
| 72 | + return $pessoa; | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + protected function loadDetails($pessoaId = null) { | ||
| 76 | + $alunoId = $this->tryLoadAlunoId($pessoaId); | ||
| 77 | + | ||
| 78 | + $sql = "select cpf, idpes_pai as pai_id, idpes_mae as mae_id, idpes_responsavel as responsavel_id, | ||
| 79 | + coalesce((select nome from cadastro.pessoa where idpes = fisica.idpes_pai), | ||
| 80 | + (select nm_pai from pmieducar.aluno where cod_aluno = $1)) as nome_pai, | ||
| 81 | + coalesce((select nome from cadastro.pessoa where idpes = fisica.idpes_mae), | ||
| 82 | + (select nm_mae from pmieducar.aluno where cod_aluno = $1)) as nome_mae, | ||
| 83 | + (select nome from cadastro.pessoa where idpes = fisica.idpes_responsavel) as nome_responsavel, | ||
| 84 | + (select rg from cadastro.documento where documento.idpes = fisica.idpes) as rg | ||
| 85 | + from cadastro.fisica where idpes = $2"; | ||
| 86 | + | ||
| 87 | + $details = $this->fetchPreparedQuery($sql, array($alunoId, $pessoaId), false, 'first-row'); | ||
| 88 | + | ||
| 89 | + $attrs = array('cpf', 'rg', 'pai_id', 'mae_id', 'responsavel_id', 'nome_pai', 'nome_mae', 'nome_responsavel'); | ||
| 90 | + $details = Portabilis_Array_Utils::filter($details, $attrs); | ||
| 91 | + | ||
| 92 | + $details['aluno_id'] = $alunoId; | ||
| 93 | + $details['nome_mae'] = $this->toUtf8($details['nome_mae'], array('transform' => true)); | ||
| 94 | + $details['nome_pai'] = $this->toUtf8($details['nome_pai'], array('transform' => true)); | ||
| 95 | + $details['nome_responsavel'] = $this->toUtf8($details['nome_responsavel'], array('transform' => true)); | ||
| 96 | + | ||
| 97 | + return $details; | ||
| 98 | + } | ||
| 99 | + | ||
| 100 | + protected function loadDeficiencias($pessoaId) { | ||
| 101 | + $sql = "select cod_deficiencia as id, nm_deficiencia as nome from cadastro.fisica_deficiencia, | ||
| 102 | + cadastro.deficiencia where cod_deficiencia = ref_cod_deficiencia and ref_idpes = $1"; | ||
| 103 | + | ||
| 104 | + $deficiencias = $this->fetchPreparedQuery($sql, $pessoaId, false); | ||
| 105 | + | ||
| 106 | + // transforma array de arrays em array chave valor | ||
| 107 | + $_deficiencias = array(); | ||
| 108 | + | ||
| 109 | + foreach ($deficiencias as $deficiencia) { | ||
| 110 | + $nome = $this->toUtf8($deficiencia['nome'], array('transform' => true)); | ||
| 111 | + $_deficiencias[$deficiencia['id']] = $nome; | ||
| 112 | + } | ||
| 113 | + | ||
| 114 | + return $_deficiencias; | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + | ||
| 118 | + // search | ||
| 119 | + | ||
| 120 | + protected function searchOptions() { | ||
| 121 | + return array('namespace' => 'cadastro', 'idAttr' => 'idpes'); | ||
| 122 | + } | ||
| 123 | + | ||
| 124 | + protected function sqlsForNumericSearch() { | ||
| 125 | + $sqls = array(); | ||
| 126 | + | ||
| 127 | + // search by idpes or cpf | ||
| 128 | + $sqls[] = "select distinct pessoa.idpes as id, pessoa.nome as name from cadastro.pessoa, | ||
| 129 | + cadastro.fisica where fisica.idpes = pessoa.idpes and (pessoa.idpes like $1||'%' or | ||
| 130 | + trim(leading '0' from fisica.cpf) like trim(leading '0' from $1)||'%' or | ||
| 131 | + fisica.cpf like $1||'%') order by id limit 15"; | ||
| 132 | + | ||
| 133 | + // search by rg | ||
| 134 | + $sqls[] = "select distinct pessoa.idpes as id, pessoa.nome as name from cadastro.pessoa, cadastro.documento | ||
| 135 | + where pessoa.idpes = documento.idpes and ((documento.rg like $1||'%') or | ||
| 136 | + trim(leading '0' from documento.rg) like trim(leading '0' from $1)||'%') order by id limit 15"; | ||
| 137 | + | ||
| 138 | + return $sqls; | ||
| 139 | + } | ||
| 140 | + | ||
| 141 | + // api responders | ||
| 142 | + | ||
| 143 | + protected function get() { | ||
| 144 | + $pessoa = array(); | ||
| 145 | + | ||
| 146 | + if ($this->canGet()) { | ||
| 147 | + $attrs = array('id', 'nome'); | ||
| 148 | + | ||
| 149 | + $pessoa = $this->loadPessoa($this->getRequest()->id); | ||
| 150 | + $pessoa = Portabilis_Array_Utils::filter($pessoa, $attrs); | ||
| 151 | + | ||
| 152 | + $details = $this->loadDetails($this->getRequest()->id); | ||
| 153 | + $pessoa = Portabilis_Array_Utils::merge($pessoa, $details); | ||
| 154 | + | ||
| 155 | + $pessoa['deficiencias'] = $this->loadDeficiencias($this->getRequest()->id); | ||
| 156 | + } | ||
| 157 | + | ||
| 158 | + return $pessoa; | ||
| 159 | + } | ||
| 160 | + | ||
| 161 | + | ||
| 162 | + public function Gerar() { | ||
| 163 | + if ($this->isRequestFor('get', 'pessoa-search')) | ||
| 164 | + $this->appendResponse($this->search()); | ||
| 165 | + | ||
| 166 | + elseif ($this->isRequestFor('get', 'pessoa')) | ||
| 167 | + $this->appendResponse($this->get()); | ||
| 168 | + else | ||
| 169 | + $this->notImplementedOperationError(); | ||
| 170 | + } | ||
| 171 | +} |
| @@ -0,0 +1,102 @@ | @@ -0,0 +1,102 @@ | ||
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +#error_reporting(E_ALL); | ||
| 4 | +#ini_set("display_errors", 1); | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * i-Educar - Sistema de gestão escolar | ||
| 8 | + * | ||
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | ||
| 10 | + * <ctima@itajai.sc.gov.br> | ||
| 11 | + * | ||
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | ||
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | ||
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | ||
| 15 | + * qualquer versão posterior. | ||
| 16 | + * | ||
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | ||
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | ||
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | ||
| 20 | + * do GNU para mais detalhes. | ||
| 21 | + * | ||
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | ||
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | ||
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
| 25 | + * | ||
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | ||
| 27 | + * @category i-Educar | ||
| 28 | + * @license @@license@@ | ||
| 29 | + * @package Api | ||
| 30 | + * @subpackage Modules | ||
| 31 | + * @since Arquivo disponível desde a versão ? | ||
| 32 | + * @version $Id$ | ||
| 33 | + */ | ||
| 34 | + | ||
| 35 | +require_once 'lib/Portabilis/Controller/ApiCoreController.php'; | ||
| 36 | +require_once "Reports/Reports/BoletimReport.php"; | ||
| 37 | + | ||
| 38 | +class ReportController extends ApiCoreController | ||
| 39 | +{ | ||
| 40 | + | ||
| 41 | + // validations | ||
| 42 | + | ||
| 43 | + protected function canGetBoletim() { | ||
| 44 | + return $this->validatesId('escola') && | ||
| 45 | + $this->validatesId('matricula'); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + | ||
| 49 | + // load | ||
| 50 | + | ||
| 51 | + protected function loadDadosForMatricula($matriculaId){ | ||
| 52 | + $sql = "select cod_matricula as id, ref_cod_aluno as aluno_id, matricula.ano, | ||
| 53 | + escola.ref_cod_instituicao as instituicao_id, matricula.ref_ref_cod_escola | ||
| 54 | + as escola_id, matricula.ref_cod_curso as curso_id, matricula.ref_ref_cod_serie | ||
| 55 | + as serie_id, matricula_turma.ref_cod_turma as turma_id from | ||
| 56 | + pmieducar.matricula_turma, pmieducar.matricula, pmieducar.escola where escola.cod_escola = | ||
| 57 | + matricula.ref_ref_cod_escola and ref_cod_matricula = cod_matricula and ref_cod_matricula = | ||
| 58 | + $1 and matricula.ativo = matricula_turma.ativo and matricula_turma.ativo = 1 order by | ||
| 59 | + matricula_turma.sequencial limit 1"; | ||
| 60 | + | ||
| 61 | + $dadosMatricula = $this->fetchPreparedQuery($sql, $matriculaId, false, 'first-row'); | ||
| 62 | + | ||
| 63 | + $attrs = array('id', 'aluno_id', 'ano', 'instituicao_id', 'escola_id', | ||
| 64 | + 'curso_id', 'serie_id', 'turma_id'); | ||
| 65 | + | ||
| 66 | + return Portabilis_Array_Utils::filter($dadosMatricula, $attrs); | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + // api | ||
| 70 | + | ||
| 71 | + protected function getBoletim() { | ||
| 72 | + if ($this->canGetBoletim()) { | ||
| 73 | + $dadosMatricula = $this->loadDadosForMatricula($this->getRequest()->matricula_id); | ||
| 74 | + | ||
| 75 | + $boletimReport = new BoletimReport(); | ||
| 76 | + | ||
| 77 | + $boletimReport->addArg('matricula', (int)$dadosMatricula['id']); | ||
| 78 | + $boletimReport->addArg('ano', (int)$dadosMatricula['ano']); | ||
| 79 | + $boletimReport->addArg('instituicao', (int)$dadosMatricula['instituicao_id']); | ||
| 80 | + $boletimReport->addArg('escola', (int)$dadosMatricula['escola_id']); | ||
| 81 | + $boletimReport->addArg('curso', (int)$dadosMatricula['curso_id']); | ||
| 82 | + $boletimReport->addArg('serie', (int)$dadosMatricula['serie_id']); | ||
| 83 | + $boletimReport->addArg('turma', (int)$dadosMatricula['turma_id']); | ||
| 84 | + | ||
| 85 | + $encoding = 'base64'; | ||
| 86 | + | ||
| 87 | + $dumpsOptions = array('options' => array('encoding' => $encoding)); | ||
| 88 | + $encoded = $boletimReport->dumps($dumpsOptions); | ||
| 89 | + | ||
| 90 | + return array('matricula_id' => $this->getRequest()->matricula_id, | ||
| 91 | + 'encoding' => $encoding, | ||
| 92 | + 'encoded' => $encoded); | ||
| 93 | + } | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + public function Gerar() { | ||
| 97 | + if ($this->isRequestFor('get', 'boletim')) | ||
| 98 | + $this->appendResponse($this->getBoletim()); | ||
| 99 | + else | ||
| 100 | + $this->notImplementedOperationError(); | ||
| 101 | + } | ||
| 102 | +} |
| @@ -0,0 +1,84 @@ | @@ -0,0 +1,84 @@ | ||
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +#error_reporting(E_ALL); | ||
| 4 | +#ini_set("display_errors", 1); | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * i-Educar - Sistema de gestão escolar | ||
| 8 | + * | ||
| 9 | + * Copyright (C) 2006 Prefeitura Municipal de Itajaí | ||
| 10 | + * <ctima@itajai.sc.gov.br> | ||
| 11 | + * | ||
| 12 | + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo | ||
| 13 | + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free | ||
| 14 | + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério) | ||
| 15 | + * qualquer versão posterior. | ||
| 16 | + * | ||
| 17 | + * Este programa é distribuído na expectativa de que seja útil, porém, SEM | ||
| 18 | + * NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU | ||
| 19 | + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral | ||
| 20 | + * do GNU para mais detalhes. | ||
| 21 | + * | ||
| 22 | + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto | ||
| 23 | + * com este programa; se não, escreva para a Free Software Foundation, Inc., no | ||
| 24 | + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | ||
| 25 | + * | ||
| 26 | + * @author Lucas D'Avila <lucasdavila@portabilis.com.br> | ||
| 27 | + * @category i-Educar | ||
| 28 | + * @license @@license@@ | ||
| 29 | + * @package Api | ||
| 30 | + * @subpackage Modules | ||
| 31 | + * @since Arquivo disponível desde a versão ? | ||
| 32 | + * @version $Id$ | ||
| 33 | + */ | ||
| 34 | + | ||
| 35 | +require_once 'lib/Portabilis/Controller/ApiCoreController.php'; | ||
| 36 | +require_once 'lib/Portabilis/Array/Utils.php'; | ||
| 37 | +require_once 'lib/Portabilis/String/Utils.php'; | ||
| 38 | +require_once 'Portabilis/Model/Report/TipoBoletim.php'; | ||
| 39 | +require_once "App/Model/IedFinder.php"; | ||
| 40 | + | ||
| 41 | +class TurmaController extends ApiCoreController | ||
| 42 | +{ | ||
| 43 | + // validators | ||
| 44 | + | ||
| 45 | + protected function validatesTurmaId() { | ||
| 46 | + return $this->validatesPresenceOf('id') && | ||
| 47 | + $this->validatesExistenceOf('turma', $this->getRequest()->id); | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + // validations | ||
| 51 | + | ||
| 52 | + protected function canGet() { | ||
| 53 | + return $this->canAcceptRequest() && | ||
| 54 | + $this->validatesTurmaId(); | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | + // api | ||
| 58 | + | ||
| 59 | + protected function getTipoBoletim() { | ||
| 60 | + $tipo = App_Model_IedFinder::getTurma($codTurma = $this->getRequest()->id); | ||
| 61 | + $tipo = $tipo['tipo_boletim']; | ||
| 62 | + | ||
| 63 | + $tiposBoletim = Portabilis_Model_Report_TipoBoletim; | ||
| 64 | + | ||
| 65 | + $tipos = array(null => 'indefinido', | ||
| 66 | + $tiposBoletim::BIMESTRAL => 'portabilis_boletim', | ||
| 67 | + $tiposBoletim::TRIMESTRAL => 'portabilis_boletim_trimestral', | ||
| 68 | + $tiposBoletim::TRIMESTRAL_CONCEITUAL => 'portabilis_boletim_primeiro_ano_trimestral', | ||
| 69 | + $tiposBoletim::SEMESTRAL => 'portabilis_boletim_semestral', | ||
| 70 | + $tiposBoletim::SEMESTRAL_CONCEITUAL => 'portabilis_boletim_conceitual_semestral', | ||
| 71 | + $tiposBoletim::SEMESTRAL_EDUCACAO_INFANTIL => 'portabilis_boletim_educ_infantil_semestral', | ||
| 72 | + $tiposBoletim::PARECER_DESCRITIVO_COMPONENTE => 'portabilis_boletim_parecer', | ||
| 73 | + $tiposBoletim::PARECER_DESCRITIVO_GERAL => 'portabilis_boletim_parecer_geral'); | ||
| 74 | + | ||
| 75 | + return array('tipo-boletim' => $tipos[$tipo]); | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + public function Gerar() { | ||
| 79 | + if ($this->isRequestFor('get', 'tipo-boletim')) | ||
| 80 | + $this->appendResponse($this->getTipoBoletim()); | ||
| 81 | + else | ||
| 82 | + $this->notImplementedOperationError(); | ||
| 83 | + } | ||
| 84 | +} |