Esempio n. 1
0
 /**
  * Retorna as informações de uma instituicao
  * @param null $id
  * @return array
  */
 public function getInstituicao($id = null)
 {
     if ($id) {
         $instituicao = Instituicao::findOrFail($id);
         $naturezaJuridica = DB::table('naturezasJuridicas')->select('naturezaJuridica')->where('idNatureza', '=', $instituicao->naturezaJuridica_id)->first();
         $cidade = DB::table('cidades')->select('nomeCidade', 'uf_id')->where('idCidade', '=', $instituicao->endereco->cidade_id)->first();
         $uf = DB::table('uf')->select('uf')->where('idUf', '=', $cidade->uf_id)->first();
         $localidade = DB::table('localidades')->select('localidade')->where('idLocalidade', '=', $instituicao->endereco->localidade_id)->first();
         $localizacao = DB::table('localizacoes')->select('localizacao')->where('idLocalizacao', '=', $instituicao->endereco->localizacao_id)->first();
         return ['idInstituicao' => $instituicao->idInstituicao, 'nome' => $instituicao->nome, 'email' => $instituicao->email, 'url' => $instituicao->url, 'naturezaJuridica' => isset($naturezaJuridica->naturezaJuridica) ? $naturezaJuridica->naturezaJuridica : null, 'endereco' => ['cep' => $instituicao->endereco->cep, 'logradouro' => $instituicao->endereco->logradouro, 'numero' => $instituicao->endereco->numero, 'complemento' => $instituicao->endereco->complemento, 'bairro' => $instituicao->endereco->bairro, 'uf' => $uf->uf, 'cidade' => $cidade->nomeCidade, 'latitude' => $instituicao->endereco->latitude, 'longitude' => $instituicao->endereco->longitude, 'localidade' => isset($localidade->localidade) ? $localidade->localidade : null, 'localizacao' => isset($localizacao->localizacao) ? $localizacao->localizacao : null], 'telefones' => $instituicao->telefones];
     }
 }
 /**
  * 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);
 }