/** * Método responsável pela tradução dos dados retornados pela consulta para o modelo Livro. * * @param array $dados */ public function exchangeArray(array $dados) { $p = "livro_"; $this->livroDigitalizado = (bool) (empty($dados["{$p}digital"]) ? "" : $dados["{$p}digital"]); $this->disciplina->exchangeArray($dados); parent::exchangeArray($dados); if (!empty($dados["livro_mat_desc_video"])) { $this->video = new Youtube($dados["livro_mat_desc_video"]); } }
/** * Método que retorna todas as disciplinas existentes em um determinado livro. * * @param Livro $livro O livro alvo da busca * * @return ResultSetHydrator Um objeto contendo os dados do retorno da consulta */ public function deLivro(Livro $livro) { $select = new Select(); $this->tg->defineColuna('fk_livro', $this->colInt); return $this->tg->selectObj($select->join('public.materia_vin', array('fk_materia' => 'pk_materia'))->join('apostilas.capitulo', array('fk_materia_vin' => 'pk_materia_vin'))->where(array('fk_livro' => $livro->getId()))->order("materia_nome")); }
/** * Método que retorna todas as disciplinas existentes em um determinado livro * @param Livro $livro O livro alvo da busca * @return ResultSetHydrator Um objeto contendo os dados do retorno da consulta */ public function deLivro(Livro $livro) { $select = new Select(); $this->tableGatway->defineColuna("fk_livro", new ResultSetMap(Column::INTEGER)); return $this->tableGatway->selectObj($select->join("public.materia_vin", array("pk_materia" => "fk_materia"))->join("apostilas.capitulo", array("pk_materia_vin" => "fk_materia_vin"))->where(array("fk_livro" => $livro->getId()))); }
/** * Método que retorna os conteúdos do livro informado com o seu andamento * @param Livro $livro O livro alvo da busca * @param Disciplina $disciplina A disciplina referente ao conteúdo * @throws \GGE\Lib\Base\Exception */ public function deLivroComAcompanhamento(Livro $livro, Disciplina $disciplina) { $select = new Select(); return $this->tableGatway->selectObj($select->distinct("sequencial_topico")->columns("*, apostilas.acompanhamento.status as topico_status, " . "data_aula as topico_data_aula ")->join("apostilas.capitulo", array("pk_capitulo" => "fk_capitulo"))->join("public.materia_vin", array("fk_materia_vin" => "pk_materia_vin"))->join("public.materia", array("pk_materia" => "fk_materia"))->join("public.materia_mae", array("pk_materia_mae" => "fk_materia_mae"))->join("public.area", array("pk_area" => "fk_area"))->join("apostilas.acompanhamento", array("pk_conteudo" => "fk_conteudo"))->where("fk_livro={$livro->getId()} " . "and pk_materia={$disciplina->getId()} " . "and (status=" . \Kernel\Modelo\Livro\Topico::STATUS_EM_ANDAMENTO . " " . "or status=" . \Kernel\Modelo\Livro\Topico::STATUS_CONCLUIDO . ") " . "and id=(select max(id) from apostilas.acompanhamento " . "where fk_conteudo=pk_conteudo and status!=" . \Kernel\Modelo\Livro\Topico::STATUS_REVISADO . ") " . "and extract(year from data_aula)=" . Loader::data("config", "site", "ano_letivo"))->order("sequencial_topico")); }
/** * Substituindo o método de mapeamento do Livro * @param array $dados */ public function exchangeArray(array $dados) { parent::exchangeArray($dados); $this->serieId = (int) (empty($dados["pk_serie"]) ? 0 : $dados["pk_serie"]); $this->serie = empty($dados["serie_nome"]) ? "" : $dados["serie_nome"]; $this->disciplinaId = (int) (empty($dados["pk_materia"]) ? 0 : $dados["pk_materia"]); $this->disciplina = empty($dados["materia_nome"]) ? "" : $dados["materia_nome"]; $this->frenteId = (int) (empty($dados["pk_materia_mae"]) ? 0 : $dados["pk_materia_mae"]); $this->frente = empty($dados["materia_mae_nome"]) ? "" : $dados["materia_mae_nome"]; $this->capituloId = (int) (empty($dados["pk_capitulo"]) ? 0 : $dados["pk_capitulo"]); $this->capitulo = empty($dados["capitulo_nome"]) ? "" : $dados["capitulo_nome"]; $this->conteudoId = (int) (empty($dados["pk_conteudo"]) ? 0 : $dados["pk_conteudo"]); $this->conteudo = empty($dados["conteudo_nome"]) ? "" : $dados["conteudo_nome"]; }