/** * Método que retorna um determinado professor caso ele esteja associado ao coordenador infromado * @param \Kernel\Modelo\Perfis\Coordenador $coordenador O coordenado usado como filtro * @param \Kernel\Modelo\Perfis\Professor $professor Um objeto contendo o id do professor pedido. * Serve como modelo em caso de herança * @return \Kernel\Modelo\Perfis\Professor Um objeto contendo os dados do professor informado * @throws \Kernel\Exception\UsuarioException */ public function getDeCoordenador(\Kernel\Modelo\Perfis\Coordenador $coordenador, \Kernel\Modelo\Perfis\Professor $professor) { if (!$coordenador->getId()) { throw new \Kernel\Exception\UsuarioException("O coordenador informado é inválido"); } if (!$professor->getId()) { throw new \Kernel\Exception\UsuarioException("O professor informado é inválido"); } $select = new \GGE\Lib\Sql\Querys\Select(); $resultset = $this->gatWayUsuario->selectObj($select->join($professor->getPerfil()->getTabela(), array("pk_usuario" => "{$professor->getPerfil()->getTabela()}.fk_usuario"))->join("public.grade", array("public.grade.fk_usuario_professor" => "pk_usuario_professor"))->join("public.turma", array("pk_turma" => "public.grade.fk_turma"))->join("public.turma_vin", array("public.turma_vin.fk_turma" => "pk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("public.coordenacao_vin.fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "fk_usuario_tipo_vin"))->where("public.usuario_tipo_vin.fk_usuario={$coordenador->getId()} " . "and pk_usuario={$professor->getId()}")->limit(1)); if (!$resultset->rowCount()) { throw new \Kernel\Exception\UsuarioException("O professor informado não foi encontrado, " . "esta desativado ou não esta associado ao coordendor"); } return $resultset->fetch(); }
/** * Método que retorna um determinado professor caso ele esteja * associado ao coordenador infromado * @param Coordenador $coordenador O coordenado usado como filtro * @param Professor $professor Um objeto contendo o id do professor pedido. * Serve como modelo em caso de herança * @return Professor Um objeto contendo os dados do professor informado * @throws UsuarioException */ public function getDeCoordenador(Coordenador $coordenador, Professor $professor) { if (!$coordenador->getId()) { throw new UsuarioException("O coordenador informado é inválido"); } if (!$professor->getId()) { throw new UsuarioException("O professor informado é inválido"); } $select = new Select(); $resultset = $this->tg->selectObj($select->join($professor->getPerfil()->getTabela(), array("fk_usuario" => "pk_usuario"))->join("public.grade", array("public.grade.fk_usuario_professor" => "pk_usuario_professor"))->join("public.turma", array("pk_turma" => "public.grade.fk_turma"))->join("public.turma_vin", array("public.turma_vin.fk_turma" => "pk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("public.coordenacao_vin.fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "fk_usuario_tipo_vin"))->where("public.usuario_tipo_vin.fk_usuario=" . "{$coordenador->getId()} " . "and pk_usuario={$professor->getId()}")->limit(1)); if (!$resultset->rowCount()) { throw new UsuarioException("O professor informado não " . "foi encontrado, " . "esta desativado ou não esta associado ao coordendor"); } return $resultset->fetch(new Professor()); }