Commit 190c489a authored by Waterfox's avatar Waterfox
Browse files
parents a739aaba c59fed22
Loading
Loading
Loading
Loading
+125 −0
Original line number Diff line number Diff line
<?php

namespace App\Http\Controllers;
use App\Models\DivingNumberModel;
use DateTime;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use Illuminate\View\View;

class DivingNumberController extends Controller
{
    public function index(): View
    {
        if (session()->has('user')) {
            $userId = session('user')->US_ID; // Récupérer l'ID de l'utilisateur connecté
    
            // Faire quelque chose avec l'utilisateur ou son ID
        } else {
            $userId = NULL;
        }

        $dateDives = DivingNumberModel::join('car_registration', 'car_user.us_id', '=', 'car_registration.us_id')
        ->join('car_diving_session','car_registration.ds_code','=','car_diving_session.ds_code')
        ->join('car_diving_location','car_diving_session.dl_id','=','car_diving_location.dl_id')
        ->join('car_role_attribution','car_user.us_id','=','car_role_attribution.Us_id')
        ->join('car_role','car_role_attribution.rol_code','=','car_role.rol_code')

        ->where('car_user.US_ID',$userId)
        ->get();


        $usersCount = DivingNumberModel::join('car_registration', 'car_user.us_id', '=', 'car_registration.us_id')
            ->join('car_diving_group', function ($dg) {
                $dg->on('car_registration.ds_code', '=', 'car_diving_group.ds_code')
                    ->on('car_registration.dg_number', '=', 'car_diving_group.dg_number');
            })
            ->join('car_diving_session','car_registration.ds_code','=','car_diving_session.ds_code')
            ->where('car_diving_session.ds_date','>=',date("Y").'-00-00')
            ->where('car_user.US_ID', $userId)
            ->orderBy('ds_date','desc')
            ->count();
        $usersCount = 99 - $usersCount ;

        return view('diveractivities', compact('usersCount'), ['dates' => $dateDives]);
    }

    public function allIndex(Request $request): View
    {

        if($request['afterthe'] != '' and $request['beforethe'] != ''){
            return DivingNumberController::afterAndBefore($request['afterthe'], $request['beforethe']);
        }
        if($request['afterthe'] != '' and $request['beforethe'] == ''){
            return DivingNumberController::after($request['afterthe']);
        }
        if($request['afterthe'] == '' and $request['beforethe'] != ''){
            return DivingNumberController::before($request['beforethe']);
        }

        $usersDatas = DivingNumberModel::selectRaw('COUNT(*) as aggregate, car_user.US_FIRST_NAME, car_user.US_NAME')
    ->join('car_registration', 'car_user.us_id', '=', 'car_registration.us_id')
    ->join('car_diving_group', function ($join) {
        $join->on('car_registration.ds_code', '=', 'car_diving_group.ds_code')
            ->on('car_registration.dg_number', '=', 'car_diving_group.dg_number');
    })
    ->groupBy('car_user.us_id', 'car_user.US_NAME', 'car_user.US_FIRST_NAME')
    ->get();

        return view('alldiversactivities', ['datas' => $usersDatas]);

    }

    public function afterAndBefore(string $after, string $before): View
    {


        $usersDatas = DivingNumberModel::selectRaw('COUNT(*) as aggregate, car_user.US_FIRST_NAME, car_user.US_NAME')
        ->join('car_registration', 'car_user.us_id', '=', 'car_registration.us_id')
        ->join('car_diving_session', 'car_registration.DS_CODE', '=', 'car_diving_session.DS_CODE')
        ->where('car_diving_session.DS_DATE', '>=', $after)
                ->where('car_diving_session.DS_DATE', '<=', $before)
        ->groupBy('car_user.us_id', 'car_user.US_NAME', 'car_user.US_FIRST_NAME')
        ->get();


        return view('alldiversactivities', ['datas' => $usersDatas]);

    }


    public function after(string $after): View
    {


        $usersDatas = DivingNumberModel::selectRaw('COUNT(*) as aggregate, car_user.US_FIRST_NAME, car_user.US_NAME')
        ->join('car_registration', 'car_user.us_id', '=', 'car_registration.us_id')
        ->join('car_diving_session', 'car_registration.DS_CODE', '=', 'car_diving_session.DS_CODE')
        ->where('car_diving_session.DS_DATE', '>=', $after)
        ->groupBy('car_user.us_id', 'car_user.US_NAME', 'car_user.US_FIRST_NAME')
        ->get();


        return view('alldiversactivities', ['datas' => $usersDatas]);

    }


    public function before(string $before): View
    {


        $usersDatas = DivingNumberModel::selectRaw('COUNT(*) as aggregate, car_user.US_FIRST_NAME, car_user.US_NAME')
        ->join('car_registration', 'car_user.us_id', '=', 'car_registration.us_id')
        ->join('car_diving_session', 'car_registration.DS_CODE', '=', 'car_diving_session.DS_CODE')
        ->where('car_diving_session.DS_DATE', '<=', $before)
        ->groupBy('car_user.us_id', 'car_user.US_NAME', 'car_user.US_FIRST_NAME')
        ->get();


        return view('alldiversactivities', ['datas' => $usersDatas]);

    }

}
+14 −0
Original line number Diff line number Diff line
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class DivingNumberModel extends Model
{
    protected $table = "CAR_USER";
    protected $primaryKey = "US_ID";
    protected $type = "int"; 
    use HasFactory;
}
+5 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;

class User extends Model
{
@@ -59,6 +60,10 @@ public function hasRole($roleCode)
    {
        return $this->roles->contains('ROL_CODE', $roleCode);
    }


    

}

+68 −0
Original line number Diff line number Diff line
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300&display=swap');


html{
    background-image: url("/images/background-homepage.jpg");
}

.background-image{
    filter: blur(5px);
}

.center-box{
    padding: 30px;
    background-color: rgba(255, 255, 255, 0.22);
    width: 60vw;
    height: auto;
    border-radius: 30px;
    margin: auto;
    margin-top: 7em ;
    display: block;
    text-align: center;
    backdrop-filter: blur(5px);
}

h1{
    font-family: 'Space Grotesk', sans-serif;
    font-size: 55px;
    color: white;
    font-weight: bold;
}

p{
    font-family: 'Montserrat', sans-serif;
    margin-top: 30px;
    font-size: 30px;
    color: white;
}

button{
    margin-top: 50px;
    background-color: #f7c36f;
    border-radius: 10px;
    width: 300px;
    height: 40px;
}

@media only screen and (max-width: 768px) {
    /* For mobile phones: */

    .center-box{
        padding: 30px;
        background-color: rgba(255, 255, 255, 0.22);
        width: 75vw;
        height: auto;
        border-radius: 30px;
        margin: auto;
        margin-top: 7em ;
        display: block;
        text-align: center;
        backdrop-filter: blur(5px);
    }

    h1{
        font-size: 50px;
    }

  }
 No newline at end of file
+193 KiB
Loading image diff...
Loading