/** * Método que gera uma consulta basica para ser usada pela classe. * * @return Select Objeto contendo as consultas básicas */ public function select() { $responsavel = new Responsavel(); $tabela = $responsavel->getPerfil()->getTabela(); $select = parent::select(); return $select->columns(array("{$responsavel->getColunaBase()}status" => "{$tabela}.status", "pk_usuario_responsavel"))->join($tabela, array('fk_usuario' => 'pk_usuario')); }
/** * Método que retorna todas as unidades associadas ao responsável informado * @param \Kernel\Modelo\Perfis\Responsavel $responsavel * @return ResultSetHydrator Um objeto contendo a resposta da consulta */ public function deResponsavel(\Kernel\Modelo\Perfis\Responsavel $responsavel) { $query = "select distinct on(pk_unidade) * " . "from {$this->tableGatway->getTabela()} " . "inner join public.turma on pk_unidade=fk_unidade " . "inner join public.usuario_aluno on fk_turma=pk_turma " . "inner join public.usuario_responsavel_vin on pk_usuario_aluno=fk_usuario_aluno " . "inner join public.usuario_responsavel on pk_usuario_responsavel=fk_usuario_responsavel " . "where public.usuario_responsavel.fk_usuario={$responsavel->getId()} " . "public.turma.status=" . Status::ATIVO . " " . "and public.usuario_aluno.status=" . Status::ATIVO . " " . "and ano=" . Loader::data("config", "site", "ano_letivo"); return $this->tableGatway->querySelect($query); }
/** * Método que retorna todas as unidades associadas ao responsável informado. * * @param Responsavel $responsavel * * @return ResultSetHydrator Um objeto contendo a resposta da consulta */ public function deResponsavel(Responsavel $responsavel) { return $this->tg->selectObj($this->select()->join('public.turma', array('fk_unidade' => 'pk_unidade'))->join('public.usuario_aluno', array('fk_turma' => 'pk_turma'))->join('public.usuario_responsavel_vin', array('fk_usuario_aluno' => 'pk_usuario_aluno'))->join('public.usuario_responsavel', array('pk_usuario_responsavel' => 'fk_usuario_responsavel'))->where("fk_usuario={$responsavel->getId()} " . ' and public.turma.status=' . Status::ATIVO . ' and public.usuario_aluno.status=' . Status::ATIVO . ' and ano=' . $this->anoLetivo)->distinct('pk_unidade')); }