/** * Método que retorna um objeto contendo o modelo de consulta básica. * * @return Select Uma consulta básica */ public function select() { $sqlTurma = new SqlTurma(); $sqlTopico = new SqlTopico(); $t = $this->tg->getTabela(true); $select = new Select(); return $select->from($this->tg->getTabela())->columns(array("{$t}_status" => 'status', "{$t}_data_aula" => 'data_aula', '*'))->join('public.turma', array('pk_turma' => "{$this->tg->getTabela()}.fk_turma"))->import($sqlTurma->select())->join('apostilas.conteudo', array('pk_conteudo' => "{$this->tg->getTabela()}.fk_conteudo"))->import($sqlTopico->select()); }
/** * Método que gera um Select genérico para uso interno da classe * * @return Select Retorna um objeto contendo a base para as consultas */ public function select() { $t = $this->tg->getTabela(); $sqlUnidade = new SqlUnidade(); $sqlSerie = new SqlSerie(); $sqlTurma = new SqlTurma(); $sqlUsuario = new SqlUsuario(); $select = new Select($t); return $select->columns(array("pk_area_transf_dest" => "cod", "area_transf_dest_tipo" => "(case " . "when {$t}.fk_unidade!=0 then '" . Destinatario::UNIDADE . "' " . "when {$t}.fk_serie!=0 then '" . Destinatario::SERIE . "' " . "when {$t}.fk_turma!=0 then '" . Destinatario::TURMA . "' " . "else '" . Destinatario::USUARIO . "' " . "end)", "area_transf_dest_alvo" => "(case " . "when {$t}.fk_unidade!=0 " . "then ({$sqlUnidade->select()->columnsReset()->columns("unidade||''")->where("pk_unidade={$t}.fk_unidade")->limit(1)}) " . "when {$t}.fk_serie!=0 " . "then ({$sqlSerie->select()->columnsReset()->columns("serie||''")->where("pk_serie={$t}.fk_serie")->limit(1)}) " . "when {$t}.fk_turma!=0 " . "then ({$sqlTurma->select()->columnsReset()->columns("turma||''")->where("pk_turma={$t}.fk_turma")->limit(1)}) " . "else ({$sqlUsuario->select()->columnsReset()->columns("usuario||''")->where("pk_usuario={$t}.fk_usuario " . "and {$t}.fk_tipo_usuario=pk_tipo_usuario")->limit(1)}) " . "end)")); }
/** * Método que gera uma consulta básica para uso interno da classe * * @return Select */ public function select() { $select = new Select($this->tg->getTabela()); $sqlTurma = new SqlTurma(); return $select->columns("pk_aula")->columns(array("aula", "obs", "data_aula"), "aula_")->import($this->usrInsert(""))->join("public.grade", array("pk_grade" => "{$this->tg->getTabela()}.fk_grade"))->join("public.turma", array("pk_turma" => "public.grade.fk_turma"))->import($sqlTurma->select()); }
/** * Método que lista todas as séries associadas ao coordenador informado * * @param Coordenador $coordenador O coordenador usado como filtros * @param Filtros $filtros Objeto do sistema de filtros * * @return ResultSetHydrator Um objeto contendo as séries encontradas */ public function deCoordenador(Coordenador $coordenador, Filtros $filtros) { $where = "public.turma.ano={$this->anoLetivo} "; $selectTemp = $this->select(); if ($filtros->issetVar("unidade")) { $where .= "and pk_unidade={$filtros->get("unidade")} "; } if ($filtros->issetVar("ensino")) { $where .= "and pk_ensino={$filtros->get("ensino")} "; } $sqlTurma = new SqlTurma(); $select = new Select(array("series" => $selectTemp->import($sqlTurma->select(), array("colunas"))->where($where)->order("serie_nome"))); return $this->tg->selectObj($select->join("public.turma_vin", array("fk_turma" => "pk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "public.coordenacao_vin.fk_usuario_tipo_vin"))->where("fk_usuario={$coordenador->getId()}")->distinct("pk_serie")); }