/** * Metodo que faz o cadastro dos idiomas do candidato * @param Candidato $candidato */ public function insert(Candidato $candidato) { if (!$candidato->getId()) { throw new BTAlentoException("O candidato informado é inválido"); } if (count($candidato->getIdiomas())) { $query = "insert into {$this->tg->getTabela()}"; $query .= "(idioma_nome, idioma_nivel, idioma_instituicao, "; $query .= "idioma_pais, idioma_pk_candidato)"; $query .= " values "; foreach ($candidato->getIdiomas() as $idioma) { $idioma = new Idioma(); $query .= "({$idioma->getNome()}, {$idioma->getNivel()}, "; $query .= "{$idioma->getInstituicao()}, {$idioma->getIntercambioPais()}, "; $query .= "{$candidato->getId()}),"; } $queryInsert = substr($query, 0, -1); $prepare = $this->tg->getPDO()->prepare($queryInsert); if (!$prepare->execute()) { $sqlCandidato = new SqlCandidato(); $sqlCandidato->delete($candidato); throw new BTAlentoException("Ocorreu um erro ao tentar cadastrar o currículo." . "Tente novamente mais tarde"); } } }
/** * Metodo que faz o cadastro das experiências profissionais de um determinado candidato * @param Candidato $candidato */ public function insert(Candidato $candidato) { if (!$candidato->getId()) { throw new BTAlentoException("O candidato informado é inválido"); } if (count($candidato->getExpProfissional())) { $query = "insert into {$this->tg->getTabela()}"; $query .= "(experiencia_tipo_vin,experiencia_empresa,experiencia_cargo,"; $query .= "experiencia_atividade,experiencia_de,,experiencia_ate,"; $query .= "experiencia_pk_candidato) values "; foreach ($candidato->getExpProfissional() as $exp) { $query .= "({$exp->getTipo()}, '{$exp->getNome()}',"; $query .= "'{$exp->getCargo()}', '{$exp->getAtividades()}',"; $query .= "{$exp->getPeriodo()->getDe()->format(Date::FORMAT_SQL_DATE)}, "; $query .= "{$exp->getPeriodo()->getAte()->format(Date::FORMAT_SQL_DATE)}, "; $query .= "{$candidato->getId()}),"; } $queryInsert = substr($query, 0, -1); $prepare = $this->tg->getPDO()->prepare($queryInsert); if (!$prepare->execute()) { $sqlCandidato = new SqlCandidato(); $sqlCandidato->delete($candidato); throw new BTAlentoException("Ocorreu um erro ao tentar cadastrar o currículo." . "Tente novamente mais tarde"); } } }
/** * Página que exibe os detalhes do currículo é permite a edição do mesmo. * Metodo referente a rota "banco_de_talentos/meu_curriculo". */ public function detalhes() { try { $sqlCandidato = new SqlCandidato(); var_dump($this->candidato->byLogin()); $candidato = $sqlCandidato->login($this->candidato->byLogin()); $this->setData("candidato", $candidato); $this->printView(); } catch (SqlException $sql) { // echo Javascript::alert("Ocorreu um erro interno. Tente novamente mais tarde"); // echo Javascript::window_location(base_url("banco_de_talentos/login")); } catch (Exception $exc) { // echo Javascript::alert($exc->getMessage()); // echo Javascript::window_location(base_url("banco_de_talentos/login")); } }
/** * Metodo que insere os cursos extras de um determinado candidato * @param Candidato $candidato */ public function insert(Candidato $candidato) { if (!$candidato->getId()) { throw new BTAlentoException("O candidato informado é inválido"); } if (count($candidato->getCursosCompl())) { $query = "insert into {$this->tg->getTabela()}"; $query .= "(curso_extra_nome,curso_extra_instituicao,curso_extra_pk_candidato)"; $query .= " values "; foreach ($candidato->getCursosCompl() as $curso) { $query .= "('{$curso->getConhecimento()}', '{$curso->getInstituicao()}',"; $query .= "{$candidato->getId()}),"; } $queryInsert = substr($query, 0, -1); $prepare = $this->tg->getPDO()->prepare($queryInsert); if (!$prepare->execute()) { $sqlCandidato = new SqlCandidato(); $sqlCandidato->delete($candidato); throw new BTAlentoException("Ocorreu um erro ao tentar cadastrar o currículo." . "Tente novamente mais tarde"); } } }
/** * Metodo que faz o cadastro das formações do candidato * @param Candidato $candidato */ public function insert(Candidato $candidato) { if (!$candidato->getId()) { throw new BTAlentoException("O candidato informado é inválido"); } if (count($candidato->getFormacao())) { $query = "insert into {$this->tg->getTabela()}"; $query .= "(formacao_tipo, formacao_nome, formacao_instituicao, "; $query .= "formacao_status, formacao_periodo, formacao_pk_candidato)"; $query .= " values "; foreach ($candidato->getFormacao() as $formacao) { $query .= "({$formacao->getTipo()}, '{$formacao->getCurso()}',"; $query .= "'{$formacao->getInstituicao()}', {$formacao->getStatus()},"; $query .= "{$formacao->getPeriodoAtual()}, {$candidato->getId()}),"; } $queryInsert = substr($query, 0, -1); $prepare = $this->tg->getPDO()->prepare($queryInsert); if (!$prepare->execute()) { $sqlCandidato = new SqlCandidato(); $sqlCandidato->delete($candidato); throw new BTAlentoException("Ocorreu um erro ao tentar cadastrar o currículo." . "Tente novamente mais tarde"); } } }
/** * Serviço de cadastro de currículos. * Metodo referente a rota "banco_de_talentos/service/put". */ public function cadastrar() { try { $sqlCandidato = new SqlCandidato(); $candidato = $this->getCandidato(); if ($sqlCandidato->exist($candidato->getCpf())) { throw new Exception('Parece que já existe um candidato cadastrado ' . 'com o cpf informado. Tente fazer login. ' . 'Caso não lembre sua senha, use a opção recuperar senha'); } $sqlCandidato->insert($candidato); $this->setMensagem('Currículo cadastrado com sucesso'); $this->statusTrue()->setStatusCod(0); } catch (SqlException $exc) { $this->setMensagem("Ocorreu um erro interno. Tente novamente mais tarde"); } catch (Exception $exc) { $this->setMensagem($exc->getMessage()); } $this->printResposta(); }