Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use App\Empresa;
- use App\Fornecedor;
- use App\FornecedorPessoaFisica;
- use App\FornecedorPessoaJuridica;
- use App\Telefone;
- class FornecedorControlador extends Controller
- {
- /**
- * Display a listing of the resource.
- *
- * @return \Illuminate\Http\Response
- */
- public function index()
- {
- $fornecedores = Fornecedor::getFornecedores();
- return view('fornecedor.fornecedores', compact('fornecedores'));
- }
- /**
- * Show the form for creating a new resource.
- *
- * @return \Illuminate\Http\Response
- */
- public function create()
- {
- $empresas = Empresa::getEmpresas();
- return view('fornecedor.novofornecedor', compact('empresas'));
- }
- /**
- * Store a newly created resource in storage.
- *
- * @param \Illuminate\Http\Request $request
- * @return \Illuminate\Http\Response
- */
- public function store(Request $request)
- {
- if($request->tipoPessoa === 'pessoaFisica'):
- $fornecedor = new Fornecedor();
- $fornecedor->empresa_id = $request->empresa;
- $fornecedor->nome = $request->nomeFornecedor;
- $fornecedor->tipo = 'F';
- $fornecedor->save();
- $fornecedorFisico = new FornecedorPessoaFisica();
- $fornecedorFisico->fornecedor_id = $fornecedor->id;
- $fornecedorFisico->cpf = $request->cpf;
- $fornecedorFisico->rg = $request->rg;
- $fornecedorFisico->nascimento = $request->dataNascimento;
- $fornecedorFisico->fornecedor()->associate($fornecedor);
- $fornecedorFisico->save();
- for($i = 0; $i < count($request->telefone); $i++):
- $telefone = new Telefone();
- $telefone->fornecedor_id = $fornecedor->id;
- $telefone->numero = $request->telefone[$i];
- $telefone->save();
- endfor;
- return redirect('/fornecedores');
- else:
- $fornecedor = new Fornecedor();
- $fornecedor->empresa_id = $request->empresa;
- $fornecedor->nome = $request->nomeFornecedor;
- $fornecedor->tipo = 'J';
- $fornecedor->save();
- $fornecedorJuridico = new FornecedorPessoaJuridica();
- $fornecedorJuridico->fornecedor_id = $fornecedor->id;
- $fornecedorJuridico->cnpj = $request->cnpj;
- $fornecedorJuridico->fornecedor()->associate($fornecedor);
- $fornecedorJuridico->save();
- for($i = 0; $i < count($request->telefone); $i++):
- $telefone = new Telefone();
- $telefone->fornecedor_id = $fornecedor->id;
- $telefone->numero = $request->telefone[$i];
- $telefone->save();
- endfor;
- return redirect('/fornecedores');
- endif;
- }
- /**
- * Show the form for editing the specified resource.
- *
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function edit($id)
- {
- $empresas = Empresa::getEmpresas();
- $fornecedor = Fornecedor::find($id);
- if($fornecedor->tipo === 'F'):
- $fornecedor = $fornecedor->with('fornecedorFisico', 'telefone')->where('id', $id)->first();
- return view('fornecedor.editarfornecedorfisico', compact('fornecedor', 'empresas'));
- else:
- $fornecedor = $fornecedor->with('fornecedorJuridico', 'telefone')->where('id', $id)->first();
- return view('fornecedor.editarfornecedorjuridico', compact('fornecedor', 'empresas'));
- endif;
- }
- /**
- * Update the specified resource in storage.
- *
- * @param \Illuminate\Http\Request $request
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function update(Request $request, $id)
- {
- $fornecedor = Fornecedor::find($id);
- $fornecedor->nome = $request->input('nomeFornecedor');
- $telefone = $fornecedor->telefone()->get();
- $telForm = $request->input("telefone");
- foreach($telefone as $index => $telDb):
- $telArray[] = $telDb->numero;
- endforeach;
- $this->verificarTelefone($telefone, $telForm, $telArray, $id);
- $fornecedor->save();
- return redirect('/fornecedores');
- }
- /**
- * Remove the specified resource from storage.
- *
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function destroy($id)
- {
- $fornecedor = Fornecedor::find($id);
- if(isset($fornecedor)):
- $fornecedor->telefone()->delete();
- $fornecedor->fornecedorFisico()->delete();
- $fornecedor->fornecedorJuridico()->delete();
- $fornecedor->delete();
- endif;
- return redirect('/fornecedores');
- }
- public function verificarTelefone($telDb, $telForm, $telArray, $id){
- //Verifica cada numero do formulario se esta presente no array de numeros do banco de dados, caso não esteja será adicionado
- foreach($telForm as $tel):
- if(!in_array($tel, $telArray)):
- $novoTelefone = new Telefone();
- $novoTelefone->fornecedor_id = $id;
- $novoTelefone->numero = $tel;
- $novoTelefone->save();
- endif;
- endforeach;
- //Verifica se numero que esta no banco de dados esta presente no formulario, caso não esteja será apagado
- foreach($telDb as $tel):
- if(!in_array($tel->numero, $telForm)):
- $tel->delete();
- endif;
- endforeach;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement