/**
  * 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);
 }
Beispiel #4
0
 /**
  * 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);
 }