<?php

namespace App\Http\Controllers;

use App\Models\Admin;
use App\Models\CouleurYeux;
use App\Models\GroupeSanguin;
use App\Models\Sexe;
use App\Models\Sexes;
use Illuminate\Http\Request;
use Barryvdh\DomPDF\Facade\Pdf;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
use SimpleSoftwareIO\QrCode\Facades\QrCode;
class PdfController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */



    public function index()
    {
        $admins= Admin::whereNotNull('id')
        ->whereNotNull('nom')
        ->whereNotNull('prenoms')
        ->whereNotNull('dateNaissance')
        ->whereNotNull('VilleNaissance')
        ->whereNotNull('sexe')
        ->whereNotNull('taille')
        ->whereNotNull('couleurYeux')
        ->whereNotNull('groupeSanguin')
        ->whereNotNull('email')
        ->whereNotNull('telephone')
        ->whereNotNull('signePart')
        ->whereNotNull('grade')
        ->whereNotNull('matricule')
        ->whereNotNull('corps')
        ->whereNotNull('photo')
        ->whereNotNull('signature')
        ->paginate(150);
        return view('pdf.policiers_ajour',compact('admins'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $admins= Admin::whereNotNull('id')
        ->whereNotNull('nom')
        ->whereNotNull('prenoms')
        ->whereNotNull('dateNaissance')
        ->whereNotNull('VilleNaissance')
        ->whereNotNull('sexe')
        ->whereNotNull('taille')
        ->whereNotNull('couleurYeux')
        ->whereNotNull('groupeSanguin')
        ->whereNotNull('email')
        ->whereNotNull('telephone')
        ->whereNotNull('signePart')
        ->whereNotNull('grade')
        ->whereNotNull('matricule')
        ->whereNotNull('corps')
        ->whereNotNull('photo')
        ->whereNotNull('signature')
        ->paginate(150);
        return view('admin.policiers_ajour',compact('admins'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function show($pdf)
    {
    $user = Admin::find($pdf); // Récupérer l'utilisateur correspondant à l'ID passé en paramètre
    $signature_url = $user->signature;
    $photo_url = $user->photo;
    $matricule = $user->matricule;
    $corps = $user->corps;
    $nom = $user->nom;
    $prenoms = $user->prenoms;

    $date = $user->dateNaissance;
    $debut = substr($matricule, 0, 2);
    $fin = substr($matricule, -2);
    $matriculeAffiche = $debut . '' . $fin; // Affiche les deux premières lettres et les deux derniers chiffres


    $annee = substr($date,-2);
    $mois = substr($date,  3, 2);
    $jour = substr($date,  0, 2);

    $naissance = $annee .''. $mois.''. $jour;


    $matr = substr($matricule, -4);
    $matri = $matr;
    //nouvelle
    $matrifin = $user->matricule;
    $fin = substr($matrifin, -5);
    $matriculeAffichefin =$fin;
    $qrcode = QrCode::size(200)->generate($corps,$nom,$prenoms,$matricule);
    $image=asset('signatures/' .  $signature_url);
    $photos=asset('img/' .  $photo_url);
    $pdfs = PDF::loadView('pdf.carte', [
        'user' => $user, // Passez l'utilisateur récupéré à la vue
        'signature_url' => $image, // Génère l'URL de l'image
        'photo_url' => $photos, // Génère l'URL de l'image
          'matriculeAffiche' => $matriculeAffiche,
          'matriculeAffichefin'=>$matriculeAffichefin,
          'corps'=>$corps,
          'naissance'=>$naissance,
          'matri'=>$matri,
          'qrcode'=>$qrcode
    ]);
    return $pdfs->setPaper('a6','landscape')->stream() ;
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */



    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit()
    {

    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Admin $admin)
    {
        $admin->update($request->all());
        return redirect()->route('admin.index')->with('modif', 'Modification effecutée avec succès');

    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy(Admin $admin)
    {
        $admin->delete();
        return back()->with('info', 'Suppression effecutée avec succès.');
    }
}
