File manager - Edit - /var/www/html/portalHomolog/app/Http/Controllers/CadastroDeAmbulantes/AmbulantesController.php
Back
<?php namespace App\Http\Controllers\CadastroDeAmbulantes; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; use App\Models\CadastroDeAmbulantes\Ambulante; use App\Models\User; use App\Models\Empresa; class AmbulantesController extends Controller { public function index(Request $request) { $paginate = 20; if ($request->filled('q')) { $request->validate([ 'q' => 'nullable|string|max:255', ]); $q = trim($request->q); // 🔎 Busca em empresas (mysql) $empresas = Empresa::select("id") ->where(function ($query) use ($q) { $query->where('razaoSocial', 'like', "%{$q}%") ->orWhere('nomeFantasia', 'like', "%{$q}%") ->orWhere('numeroInscricaoMunicipal', 'like', "%{$q}%") ->orWhere('email', 'like', "%{$q}%") ->orWhere('celular', 'like', "%{$q}%") ->orWhere('telefone', 'like', "%{$q}%") ->orWhere('cnpj', 'like', "%" . $this->clearCpfCnpj($q) . "%"); }) ->pluck('id'); // 🔎 Busca em usuários (mysql) $usuarios = User::select("id") ->where(function ($query) use ($q) { $query->where('firstName', 'like', "%{$q}%") ->orWhere('lastName', 'like', "%{$q}%") ->orWhere('email', 'like', "%{$q}%") ->orWhere('cpf', 'like', "%" . $this->clearCpfCnpj($q) . "%") ->orWhere('phoneNumber', 'like', "%{$q}%"); }) ->pluck('id'); // 🔎 Busca em ambulantes (mysql_ambulantes) $ambulantes = Ambulante::where(function ($query) use ($empresas, $usuarios) { $query->whereIn('empresa_id', $empresas) ->orWhereIn('user_id', $usuarios); }) ->orderByDesc('created_at') ->paginate($paginate); } else { $ambulantes = Ambulante::orderByDesc('created_at') ->paginate($paginate); } return view('admin.cadastroDeAmbulantes.ambulantes.index', compact('ambulantes')); } private function __cpf($numero) { $user = User::where('cpf', $numero)->first(); if ($user) { $ambulante = Ambulante::firstOrCreate( ['user_id' => $user->id], [ 'status' => 'ATIVADO', 'owner_id' => Auth::user()->id, ] ); return redirect() ->route('admin.cadastroDeAmbulantes.ambulantes.proprietarioEdit', $ambulante->id) ->with('success', 'Ambulante (PF) localizado ou criado com sucesso.'); } \Session::put('cpfTmp', ""); return redirect() ->route('admin.cadastroDeAmbulantes.ambulantes.proprietarioIndex') ->with('info', 'CPF não encontrado. Cadastre novo PF.'); } private function __cnpj($numero) { $empresa = Empresa::where('cnpj', $numero)->first(); $ambulante = Ambulante::where('empresa_id', $empresa?->id)->first(); if (isset($empresa->id) && isset($ambulante->id)) { return redirect() ->route('admin.cadastroDeAmbulantes.ambulantes.proprietarioEdit', $ambulante->id) ->with('success', 'Ambulante (PJ) localizado com sucesso.'); } if (isset($empresa->id)) { return redirect() ->route('admin.cadastroDeAmbulantes.ambulantes.proprietarioEdit', $ambulante->id) ->with('success', 'Esta empresa existe, porém, não está associada a nenhum ambulante.'); } \Session::put('cnpjTmp', ""); return redirect() ->route('admin.cadastroDeAmbulantes.ambulantes.proprietarioIndex', $ambulante) ->with('success', 'CNPJ não encontrado. Cadastre novo PJ.'); } public function verify(Request $request) { if ($request->isMethod('post')) { $request->validate([ 'cpf_cnpj' => ['required', 'string', 'max:18', 'regex:/^(\d{3}\.\d{3}\.\d{3}\-\d{2}|\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2})$/'], ], [ 'cpf_cnpj.required' => '* O CPF/CNPJ é obrigatório!', 'cpf_cnpj.regex' => '* O CPF deve estar no formato 000.000.000-00 ou o CNPJ no formato 00.000.000/0000-00.', ]); $numero = preg_replace('/\D/', '', $request->cpf_cnpj); $isCpf = strlen($numero) === 11; $isCnpj = strlen($numero) === 14; if (!$isCpf && !$isCnpj) { return back()->with('error', '* CPF ou CNPJ inválido!'); } if ($isCpf) { return $this->__cpf($numero); } if ($isCnpj) { return $this->__cnpj($numero); } } return view('admin.cadastroDeAmbulantes.ambulantes.verify'); } public function destroy(Request $request, Ambulante $ambulante) { if (!in_array("DELETE", explode(",", Auth::user()->papers))) { return redirect() ->back() ->withInput() ->with('error', 'Permissão negada! Entre em contato com o administrador do sistema.'); } try { DB::beginTransaction(); Ambulante::destroy($ambulante->id); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/cadastro-de-ambulantes/ambulantes?page={$page}")->with("success", __("* O ambulante {$ambulante?->proprietario->firstName} foi excluÃdo com sucesso! Esta ação não pode ser desfeita!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar excluir este ambulante. ' . $e->getMessage()); } } public function status(Request $request, Ambulante $ambulante) { try { DB::beginTransaction(); $ambulante->fill([ 'status' => $request->checkStatus ]); $ambulante->save(); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/cadastro-de-ambulantes/ambulantes?page={$page}")->with("success", __("* O status do ambulante {$ambulante?->proprietario->firstName} foi alterado com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar alterar o status deste ambulante. ' . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings