/** * 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"); } } }