/** * Atualiza na base os dados de um PID revisado. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request) { $this->validate($request, ['nome' => 'required|min:5', 'email' => 'required|email', 'url' => 'url', 'tipo_id' => 'exists:pidTipos,idTipo', 'endereco.logradouro' => 'required|min:3|max:150', 'endereco.bairro' => 'required|min:3|max:150', 'endereco.uf' => 'required', 'endereco.cidade_id' => 'required|exists:cidades,idCidade', 'endereco.latitude' => 'numeric', 'endereco.longitude' => 'numeric', 'endereco.localidade_id' => 'exists:localidades,idLocalidade', 'endereco.localizacao_id' => 'exists:localizacoes,idLocalizacao']); $pid = Pid::findOrFail($request['idPid']); $email = $request['session_email']; $pass = $request['session_pass']; $review = DB::table('pid_revisao')->where('email', $email)->where('pass', $pass)->where('valido', 1)->where('submetido', 1)->select('pid_id', 'idRevisao')->get(); if (empty($review)) { return ['error' => 'Acesso Inválido']; } else { if ($review[0]->pid_id != $request['idPid']) { return ['error' => 'Acesso Inválido']; } } DB::beginTransaction(); try { $pid->endereco()->update($request['endereco']); $pid->update($request->all()); $pid->touch(); $telefones = []; foreach ($request['telefones'] as $telefone) { if ($telefone['idTelefone'] == null) { $tel = $pid->telefones()->create($telefone); $telefones[] = $tel->idTelefone; } else { $tel = Telefone::find($telefone['idTelefone']); $tel->update($telefone); $telefones[] = $tel->idTelefone; } } $pid->telefones()->sync($telefones); $instituicoes = []; foreach ($request['instituicoes'] as $instituicao) { $instituicoes[] = $instituicao['idInstituicao']; } $pid->instituicoes()->sync($instituicoes); $iniciativas = []; foreach ($request['iniciativas'] as $iniciativa) { $iniciativas[] = $iniciativa['idIniciativa']; } $pid->iniciativas()->sync($iniciativas); $pid->servicos()->sync($request['servicos']); DB::table('pid_revisao')->where('idRevisao', '=', $review[0]->idRevisao)->update(['valido' => 0, 'updated_at' => Carbon::now()]); DB::commit(); } catch (\Exception $e) { DB::rollback(); abort(400); } finally { unlink(storage_path() . '/revisao/pid_' . $pid->idPid . '.json'); return $this->show($pid->idPid); } }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request) { $this->validate($request, ['tipo_id' => 'required|exists:iniciativaTipos,idTipo', 'nome' => 'required|min:3|max:255', 'sigla' => 'min:2|max:10', 'endereco.logradouro' => 'required|min:3|max:150', 'endereco.bairro' => 'required|min:3|max:150', 'endereco.uf' => 'required', 'endereco.cidade_id' => 'required|exists:cidades,idCidade', 'endereco.latitude' => 'numeric', 'endereco.longitude' => 'numeric', 'endereco.localidade_id' => 'exists:localidades,idLocalidade', 'endereco.localizacao_id' => 'exists:localizacoes,idLocalizacao', 'naturezaJuridica_id' => 'exists:naturezasJuridicas,idNatureza', 'email' => 'required|email', 'url' => 'url', 'objetivo' => 'min:3|max:255', 'informacaoComplementar' => 'min:3|max:1000', 'categoria_id' => 'required|exists:iniciativaCategorias,idCategoria', 'fonte' => 'required|min:3|max:255']); $iniciativa = Iniciativa::findOrFail($request['idIniciativa']); $iniciativa->endereco()->update($request['endereco']); $iniciativa->update($request->all()); $telefones = []; foreach ($request['telefones'] as $telefone) { if ($telefone['idTelefone'] == null) { $tel = $iniciativa->telefones()->create($telefone); $telefones[] = $tel->idTelefone; } else { $tel = Telefone::find($telefone['idTelefone']); $tel->update($telefone); $telefones[] = $tel->idTelefone; } } $iniciativa->telefones()->sync($telefones); $instituicoes = []; foreach ($request['instituicoes'] as $instituicao) { $instituicoes[$instituicao['idInstituicao']] = array('tipoVinculo' => $instituicao['tipoVinculo']); } $iniciativa->instituicoes()->sync($instituicoes); $iniciativa->dimensoes()->sync($request['dimensoes']); return $this->show($iniciativa->idIniciativa); }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request) { $this->validate($request, ['nome' => 'required', 'email' => 'required', 'url' => 'url', 'endereco.logradouro' => 'required|min:3|max:150', 'endereco.bairro' => 'required|min:3|max:150', 'endereco.uf' => 'required', 'endereco.cidade_id' => 'required|exists:cidades,idCidade', 'endereco.localidade_id' => 'exists:localidades,idLocalidade', 'endereco.localizacao_id' => 'exists:localizacoes,idLocalizacao']); $instituicao = Instituicao::findOrFail($request['idInstituicao']); $instituicao->endereco()->update($request['endereco']); $instituicao->update($request->all()); $telefones = []; foreach ($request['telefones'] as $telefone) { if ($telefone['idTelefone'] == null) { $tel = $instituicao->telefones()->create($telefone); $telefones[] = $tel->idTelefone; } else { $tel = Telefone::find($telefone['idTelefone']); $tel->update($telefone); $telefones[] = $tel->idTelefone; } } $instituicao->telefones()->sync($telefones); return $this->show($instituicao->idInstituicao); }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request) { $this->validate($request, ['nome' => 'required|min:5', 'email' => 'required|email', 'url' => 'url', 'tipo_id' => 'exists:pidTipos,idTipo', 'endereco.logradouro' => 'required|min:3|max:150', 'endereco.bairro' => 'required|min:3|max:150', 'endereco.uf' => 'required', 'endereco.cidade_id' => 'required|exists:cidades,idCidade', 'endereco.latitude' => 'numeric', 'endereco.longitude' => 'numeric', 'endereco.localidade_id' => 'exists:localidades,idLocalidade', 'endereco.localizacao_id' => 'exists:localizacoes,idLocalizacao']); $pid = Pid::findOrFail($request['idPid']); $pid->endereco()->update($request['endereco']); $pid->update($request->all()); $pid->touch(); $telefones = []; foreach ($request['telefones'] as $telefone) { if ($telefone['idTelefone'] == null) { $tel = $pid->telefones()->create($telefone); $telefones[] = $tel->idTelefone; } else { $tel = Telefone::find($telefone['idTelefone']); $tel->update($telefone); $telefones[] = $tel->idTelefone; } } $pid->telefones()->sync($telefones); $instituicoes = []; foreach ($request['instituicoes'] as $instituicao) { $instituicoes[] = $instituicao['idInstituicao']; } $pid->instituicoes()->sync($instituicoes); $iniciativas = []; foreach ($request['iniciativas'] as $iniciativa) { $iniciativas[] = $iniciativa['idIniciativa']; } $pid->iniciativas()->sync($iniciativas); $pid->servicos()->sync($request['servicos']); return $this->show($pid->idPid); }