%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home2/vacivi36/.trash/app/Http/Controllers/Query/
Upload File :
Create Path :
Current File : //home2/vacivi36/.trash/app/Http/Controllers/Query/DependentController.php

<?php

namespace App\Http\Controllers\Query;

use App\Http\Controllers\Controller;
use App\Models\Dependent;
use App\Models\Access;
use App\Models\Unit;
use App\Providers\RouteServiceProvider;
use Illuminate\Auth\Events\Registered;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\Rules;
use Illuminate\View\View;

class DependentController extends Controller
{

    /**
     * Display the registration view.
     */
    public function create(): View
    {
        $unit = Unit::orderBy('created_at', 'DESC')->get();
        return view('auth.register', compact('unit'));
    }
    public readonly Dependent $dependent;

    public function __construct()
    {
        $this->dependent = new Dependent();
    }

    public function index()
    {
        $userId = Auth::user()->id;
        $dependent = Dependent::where('employee_id', $userId)
            ->orderBy('created_at', 'DESC')
            ->get();

        $access = Access::orderBy('date_access', 'DESC')->get();

        $unit = Unit::orderBy('created_at', 'DESC')->get();

        return view('dependents', compact('dependent', 'access', 'unit'));
    
    }

     /**
     * Handle an incoming registration request.
     *
     * @throws \Illuminate\Validation\ValidationException
     */
    public function store(Request $request): RedirectResponse
    {
        $request->validate([
            'name' => ['required', 'string', 'max:255'],
            'last_name' => ['string', 'max:255'],
            'cpf' => ['required', 'string', 'max:255', 'unique:'.Dependent::class],
            'birth_date' => ['required', 'date', 'max:255'],
            'phone' => ['required', 'string', 'max:255'],
            'vaccine_id' => ['required', 'int', 'max:255'],
        ]);
       
        try {
            $user = Dependent::create([
                'name' => $request->name,
                'last_name' => $request->last_name,
                'cpf' => $request->cpf,
                'birth_date' => $request->birth_date,
                'phone' => $request->phone,
                'vaccine_id' => $request->vaccine_id,
                'employee_id' => Auth::user()->id,
                'unit_id' => Auth::user()->unit_id,
                'is_active' => 1,
            ]);
        } catch (QueryException $e) {
            if ($e->errorInfo[1] === 1062) { 
                return redirect(RouteServiceProvider::HOME)->with('message', 'CPF já cadastrado!')->with('type', 'danger');
            } else {
                throw $e; 
            }
        }
    
        return redirect(RouteServiceProvider::HOME);
    }

    public function update(Request $request, string $id)
    {
        $updated = $this->dependent->where('id', $id)->update($request->except('_token', '_method'));

        if ($updated) {
            return redirect()->back()->with('message', 'Dependente atualizado com sucesso!')->with('type', 'success');
        }

        return redirect()->back()->with('message', 'Erro ao atualizar dependente!')->with('type', 'danger');
    }

    public function destroy(string $id)
    {
        $deleted = $this->dependent->where('id', $id)->delete();

        if ($deleted) {
            return redirect()->back()->with('message', 'Dependente excluído com sucesso!')->with('type', 'success');
        }

        return redirect()->back()->with('message', 'Erro ao excluir dependente!')->with('type', 'danger');
    }
    
}

Zerion Mini Shell 1.0