Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.82 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use Illuminate\Http\Request;
  6. use App\Empresa;
  7. use App\Fornecedor;
  8. use App\FornecedorPessoaFisica;
  9. use App\FornecedorPessoaJuridica;
  10. use App\Telefone;
  11.  
  12. class FornecedorControlador extends Controller
  13. {
  14.  
  15. /**
  16. * Display a listing of the resource.
  17. *
  18. * @return \Illuminate\Http\Response
  19. */
  20. public function index()
  21. {
  22.  
  23. $fornecedores = Fornecedor::getFornecedores();
  24.  
  25. return view('fornecedor.fornecedores', compact('fornecedores'));
  26.  
  27. }
  28.  
  29. /**
  30. * Show the form for creating a new resource.
  31. *
  32. * @return \Illuminate\Http\Response
  33. */
  34. public function create()
  35. {
  36. $empresas = Empresa::getEmpresas();
  37.  
  38. return view('fornecedor.novofornecedor', compact('empresas'));
  39. }
  40.  
  41. /**
  42. * Store a newly created resource in storage.
  43. *
  44. * @param \Illuminate\Http\Request $request
  45. * @return \Illuminate\Http\Response
  46. */
  47. public function store(Request $request)
  48. {
  49.  
  50. if($request->tipoPessoa === 'pessoaFisica'):
  51. $fornecedor = new Fornecedor();
  52. $fornecedor->empresa_id = $request->empresa;
  53. $fornecedor->nome = $request->nomeFornecedor;
  54. $fornecedor->tipo = 'F';
  55. $fornecedor->save();
  56.  
  57. $fornecedorFisico = new FornecedorPessoaFisica();
  58. $fornecedorFisico->fornecedor_id = $fornecedor->id;
  59. $fornecedorFisico->cpf = $request->cpf;
  60. $fornecedorFisico->rg = $request->rg;
  61. $fornecedorFisico->nascimento = $request->dataNascimento;
  62. $fornecedorFisico->fornecedor()->associate($fornecedor);
  63. $fornecedorFisico->save();
  64.  
  65. for($i = 0; $i < count($request->telefone); $i++):
  66. $telefone = new Telefone();
  67. $telefone->fornecedor_id = $fornecedor->id;
  68. $telefone->numero = $request->telefone[$i];
  69. $telefone->save();
  70. endfor;
  71.  
  72. return redirect('/fornecedores');
  73. else:
  74. $fornecedor = new Fornecedor();
  75. $fornecedor->empresa_id = $request->empresa;
  76. $fornecedor->nome = $request->nomeFornecedor;
  77. $fornecedor->tipo = 'J';
  78. $fornecedor->save();
  79.  
  80. $fornecedorJuridico = new FornecedorPessoaJuridica();
  81. $fornecedorJuridico->fornecedor_id = $fornecedor->id;
  82. $fornecedorJuridico->cnpj = $request->cnpj;
  83. $fornecedorJuridico->fornecedor()->associate($fornecedor);
  84. $fornecedorJuridico->save();
  85.  
  86. for($i = 0; $i < count($request->telefone); $i++):
  87. $telefone = new Telefone();
  88. $telefone->fornecedor_id = $fornecedor->id;
  89. $telefone->numero = $request->telefone[$i];
  90. $telefone->save();
  91. endfor;
  92.  
  93. return redirect('/fornecedores');
  94. endif;
  95.  
  96. }
  97.  
  98. /**
  99. * Show the form for editing the specified resource.
  100. *
  101. * @param int $id
  102. * @return \Illuminate\Http\Response
  103. */
  104. public function edit($id)
  105. {
  106. $empresas = Empresa::getEmpresas();
  107. $fornecedor = Fornecedor::find($id);
  108.  
  109. if($fornecedor->tipo === 'F'):
  110. $fornecedor = $fornecedor->with('fornecedorFisico', 'telefone')->where('id', $id)->first();
  111.  
  112. return view('fornecedor.editarfornecedorfisico', compact('fornecedor', 'empresas'));
  113. else:
  114. $fornecedor = $fornecedor->with('fornecedorJuridico', 'telefone')->where('id', $id)->first();
  115.  
  116. return view('fornecedor.editarfornecedorjuridico', compact('fornecedor', 'empresas'));
  117. endif;
  118.  
  119. }
  120.  
  121. /**
  122. * Update the specified resource in storage.
  123. *
  124. * @param \Illuminate\Http\Request $request
  125. * @param int $id
  126. * @return \Illuminate\Http\Response
  127. */
  128. public function update(Request $request, $id)
  129. {
  130. $fornecedor = Fornecedor::find($id);
  131.  
  132. $fornecedor->nome = $request->input('nomeFornecedor');
  133.  
  134. $telefone = $fornecedor->telefone()->get();
  135.  
  136. $telForm = $request->input("telefone");
  137.  
  138. foreach($telefone as $index => $telDb):
  139. $telArray[] = $telDb->numero;
  140. endforeach;
  141.  
  142. $this->verificarTelefone($telefone, $telForm, $telArray, $id);
  143.  
  144. $fornecedor->save();
  145.  
  146. return redirect('/fornecedores');
  147. }
  148.  
  149. /**
  150. * Remove the specified resource from storage.
  151. *
  152. * @param int $id
  153. * @return \Illuminate\Http\Response
  154. */
  155. public function destroy($id)
  156. {
  157. $fornecedor = Fornecedor::find($id);
  158.  
  159. if(isset($fornecedor)):
  160. $fornecedor->telefone()->delete();
  161. $fornecedor->fornecedorFisico()->delete();
  162. $fornecedor->fornecedorJuridico()->delete();
  163. $fornecedor->delete();
  164. endif;
  165.  
  166. return redirect('/fornecedores');
  167.  
  168. }
  169.  
  170. public function verificarTelefone($telDb, $telForm, $telArray, $id){
  171. //Verifica cada numero do formulario se esta presente no array de numeros do banco de dados, caso não esteja será adicionado
  172. foreach($telForm as $tel):
  173. if(!in_array($tel, $telArray)):
  174. $novoTelefone = new Telefone();
  175. $novoTelefone->fornecedor_id = $id;
  176. $novoTelefone->numero = $tel;
  177. $novoTelefone->save();
  178. endif;
  179. endforeach;
  180. //Verifica se numero que esta no banco de dados esta presente no formulario, caso não esteja será apagado
  181. foreach($telDb as $tel):
  182. if(!in_array($tel->numero, $telForm)):
  183. $tel->delete();
  184. endif;
  185. endforeach;
  186. }
  187.  
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement