Erreur non compréhensible
jus2mandarine
Messages postés
258
Statut
Membre
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
Bonjour Chers tous
J'ai un problème avec un code php/html.
Quand je saisis le code ci-dessus sur le site local, le tableau s'affiche correctement. (voir l'image après le code)
@extends('admin.layouts.application')
@section('contenu')
<!--app-content open-->
<div class="main-content app-content mt-0">
<div class="side-app">
<!-- CONTAINER -->
<div class="main-container container-fluid">
@if (Session::has('success'))
<div class="alert alert-success alert-dismissible fade show mb-0" role="alert">
<span class="alert-inner--text">{{ session::get('success') }}</span>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
@endif
@if ($errors->any())
<div class="alert alert-danger alert-dismissible fade show mb-0" role="alert">
<span class="alert-inner--text">
@foreach ($errors->all() as $error)
{{ $error }}
@endforeach
</span>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
@endif
@if (Session::has('error'))
<div class="alert alert-danger alert-dismissible fade show mb-0" role="alert">
<span class="alert-inner--text">{{ session::get('error') }}</span>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
@endif
<!-- PAGE-HEADER -->
<div class="page-header">
<div>
<h1 class="page-title">Facturation-encaissement</h1>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="javascript:void(0);">Tableau de bord</a></li>
<li class="breadcrumb-item active" aria-current="page">Facturation-encaissement</li>
</ol>
</div>
<!--div class="ms-auto pageheader-btn">
<a href="" data-bs-toggle="modal" data-bs-target="#scrollingmodal" class="btn btn-primary btn-icon text-white me-2">
<span>
<i class="fa fa-plus-circle"></i>
</span> Ajouter facturation
</a>
</div-->
</div>
<!-- PAGE-HEADER END -->
<!-- ROW-5 -->
<div class="row">
<div class="col-12 col-sm-12">
<div class="card ">
<div class="card-header">
<h3 class="card-title mb-0">Liste facturation-encaissement</h3>
</div>
<div class="card-body">
<div class="table-responsive">
<table id="data-table" class="table table-bordered text-nowrap mb-0">
<thead class="border-top">
<tr align="center">
<th colspan="6" class="bg-transparent border-bottom-0">Facturation</th>
<th colspan="3" class="bg-transparent border-bottom-0">Paiement</th>
</tr>
<tr>
<th class="bg-transparent border-bottom-0">Mois</th>
<th class="bg-transparent border-bottom-0">Activite</th>
<th class="bg-transparent border-bottom-0">Montant/Activite</th>
<th class="bg-transparent border-bottom-0">Rubrique</th>
<th class="bg-transparent border-bottom-0">Montant/Rubrique</th>
<th class="bg-transparent border-bottom-0">Membre RH</th>
<th class="bg-transparent border-bottom-0">Montant rubrique</th>
<th class="bg-transparent border-bottom-0">Montant activite</th>
<th class="bg-transparent border-bottom-0">Date paiement</th>
</tr>
</thead>
<tbody>
@forelse ($facturations as $facturation)
<tr class="border-bottom">
<td class="text-muted fs-15 fw-semibold">{{ Carbon\Carbon::parse($facturation->mois)->format('M-Y')}}</td>
<td class="text-muted fs-15 fw-semibold">
@forelse ($activites as $activite)
@if ($activite->id == $facturation->activite_id)
{{ $activite->intitule }}
@else
@endif
@empty
@endforelse
</td>
<td class="text-muted fs-15 fw-semibold">{{ $facturation->montant}}</td>
<td class="text-muted fs-15 fw-semibold">
@forelse ( $resourencs as $resourenc)
@if ($resourenc->id == $facturation->ress_enc_id)
{{ $resourenc->libelle }}
@else
@endif
@empty
@endforelse
</td>
<td class="text-muted fs-15 fw-semibold">{{ $facturation->montant_rub}} </td>
<td>
@forelse ($membres as $membre)
@if ($membre->id == $facturation->professionnel_id)
<div class="d-flex">
<!--span class="avatar avatar-md brround mt-1" style="background-image: url({{ asset('images/membre/profil/'. $membre->photo) }})"></span-->
<div class="ms-2 mt-0 mt-sm-2 d-block">
<h6 class="mb-0 fs-14 fw-semibold">
<a href="{{ route('admin.membre.vue',$membre->id) }}">
{{ $membre->prenom }} {{ $membre->nom }}
</a>
</h6>
<span class="fs-12 text-muted">{{ $membre->email }}</span>
</div>
</div>
@else
@endif
@empty
@endforelse
</td>
@forelse ($suivis as $suivi)
<td class="text-muted fs-15 fw-semibold">
{{ $suivi->montant_ress_enc}}
</td>
<td class="text-muted fs-15 fw-semibold">
{{ $suivi->montant}}
</td>
<td class="text-muted fs-15 fw-semibold">{{ Carbon\Carbon::parse($suivi->date_payement)->format('d-m-Y')}} </td>
@empty
@endforelse
</tr>
@empty
@endforelse
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- COL END -->
</div>
<!-- ROW-5 END -->
</div>
<!-- CONTAINER END -->
</div>
</div>
<!--app-content end-->
<!-- Modal -->
<!--form action="{{ route('admin.facturation.post') }}" method="post">
@csrf
<div class="modal fade" id="scrollingmodal" tabindex="-1" role="dialog" >
<div class="modal-dialog modal-lg modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" >Ajout cotisation membre RH</h5>
<button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-lg-6 col-md-12">
<div class="form-group">
<label for="exampleInputname">Membre RH</label>
<select name="professionnel" class="form-control" required>
<option selected disabled>Selectionnez membre RH</option>
@forelse ($membres as $membre)
<option value="{{ $membre->id }}">{{ $membre->prenom }} {{ $membre->nom }}</option>
@empty
<option disabled selected>Pas de membre RH</option>
@endforelse
</select>
<!--input type="text" name="prenom" class="form-control" id="exampleInputname" placeholder="Prénom" required-->
</div>
</div>
<div class="col-lg-6 col-md-12">
<div class="form-group">
<label for="exampleInputname1">Activité</label>
<select name="activite" class="form-control" required>
<option selected disabled>Selectionnez une activité</option>
@forelse ($activites as $activite)
<option value="{{ $activite->id }}">{{ $activite->intitule }}</option>
@empty
<option disabled selected>Pas d'activite</option>
@endforelse
</select>
<!--input type="text" name="nom" class="form-control" id="exampleInputname1" placeholder="Nom" required-->
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-12">
<div class="form-group">
<label class="form-label">Rubrique encaissement</label>
<select name="ress_dec" class="form-control" required>
<option selected disabled>Selectionnez rubrique encaissement</option>
@forelse ($resourencs as $resourenc)
<option value="{{ $resourenc->id }}">{{ $resourenc->libelle }}</option>
@empty
<option disabled selected>Pas de rubrique</option>
@endforelse
</select>
<!--input type="email" name="email" class="form-control" id="exampleInputname" placeholder="Email" required-->
</div>
</div>
<div class="col-lg-6 col-md-12">
<div class="form-group">
<label class="form-label">Mois</label>
<input type="month" name="mois" class="form-control" id="exampleInputname" placeholder="" required>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-12">
<div class="form-group">
<label class="form-label">Montant</label>
<input type="number" name="montant" class="form-control" id="exampleInputname" required>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fermer</button>
<button type="submit" class="btn btn-primary">Ajouter</button>
</div>
</div>
</div>
</div>
</form>
@endsection
Le code du fichier de contrôle de cette page est le suivant :
<?php
namespace App\Http\Controllers;
use Auth;
use Exception;
use Validator;
use Carbon\Carbon;
use App\Models\Rdv;
use App\Models\Jour;
use App\Models\Admin;
use Illuminate\Support\Str;
use Illuminate\Http\Request;
use App\Models\Professionnel;
use Illuminate\Validation\Rules;
use App\Models\AdminPasswordReset;
use Illuminate\Support\Facades\DB;
use App\Mail\AdminPasswordResetMail;
use App\Models\Activite;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Mail;
use Intervention\Image\Facades\Image;
use App\Models\Entreprise;
use App\Models\Flux;
use App\Models\Membre;
use App\Models\SuiviPayement;
use App\Models\RessDec;
use App\Models\TypeProfessionnel;
use App\Models\Facturation;
use App\Models\RessEnc;
use Illuminate\Support\Facades\Response;
class AdminController extends Controller
{
public function index(){
return view('admin.login');
}
public function dashboard(){
$now = Carbon::now()->addDay();
$sept = Carbon::now()->subDays(7);
$trente = Carbon::now()->subDays(30);
$jours7encais = SuiviPayement::whereBetween('date_payement', [$sept, $now])->get();
$jours30encais = SuiviPayement::whereBetween('date_payement', [$trente, $now])->get();
$jours7decais = Flux::whereBetween('date_flux', [$sept, $now])->get();
$jours30decais = Flux::whereBetween('date_flux', [$trente, $now])->get();
// dd($jours30decais);
$membres1 = Professionnel::where('type_professionnel_id', 1)->count();
$membres2 = Professionnel::where('type_professionnel_id', 2)->count();
$membres3 = Professionnel::where('type_professionnel_id', 3)->count();
$entreprises = Entreprise::all()->count();
$encais = SuiviPayement::all()->sum('montant');
$cotisations = SuiviPayement::where('ress_enc_id', 2)->sum('montant_ress_enc');
$frais = SuiviPayement::where('ress_enc_id', 3)->sum('montant_ress_enc');
$decais = Flux::all()->sum('montant');
return view('admin.dashboard', compact('membres1', 'membres2', 'membres3', 'entreprises','encais', 'cotisations', 'frais', 'decais'));
}
public function login(Request $request){
// dd($request->all());
$check = $request->all();
if(Auth::guard('admin')->attempt(['email' => $check['email'], 'password' => $check['password']])){
if(Auth::guard('admin')->user()->etat){
return redirect()->route('admin.dashboard')->with('success', 'Connecté');
} else{
return back()->with('error', 'Vous ne pouvez pas accéder à ce compte car il est désactivé');
}
}else{
return back()->with('error', 'Authentification échouée');
}
}
public function logout(){
Auth::guard('admin')->logout();
return redirect()->route('admin.login_form')->with('success', 'Deconnexion avec succès');
}
public function register(Request $request){
$request->validate([
'name' => ['required', 'string', 'max:100'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:admins'],
'password' => ['required', 'confirmed', Rules\Password::defaults()],
]);
$user = Admin::create([
'name' => $request->name,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
return redirect()->route('admin.dashboard');
}
public function passwordForget(){
return view('admin.passwordForget');
}
public function passwordReset(Request $request){
$request->validate([
'email' => ['required', 'string', 'email', 'max:255']
]);
$isFound = Admin::where('email', $request->email)->first();
if($isFound){
$reset = AdminPasswordReset::create([
'email' => $request->email,
'token' => (string) Str::uuid(),
'expire' => false,
'created_at' => Carbon::now(),
]);
$lien = route('admin.new.password', $reset->token);
// SendAdminPasswordResetLinkMailJob::dispatch($isFound, $lien);
Mail::to($isFound->email)->send(new AdminPasswordResetMail($isFound, $lien));
return back()->with('success', 'Nous vous avons envoyé un lien de réinitialisation dans votre boite email.');
}else{
return back()->with('error', 'Cette adresse n\'existe pas.');
}
}
public function newPassword($token){
$isFound = AdminPasswordReset::where('token', $token)->first();
if($isFound){
if($isFound->expire == 0){
return view('admin.passwordUpdate', compact('isFound'));
}else{
return redirect()->route('admin.login_form')->with('error', 'Token déjà utilisé.');
}
}else{
return redirect()->route('admin.login_form')->with('error', 'Token invalide');
}
}
public function passwordUpdate(Request $request){
$request->validate([
'email' => ['required', 'string', 'email', 'max:255'],
'password' => ['required', 'string', 'min:8', 'max:255'],
'confirmation_password' => ['required', 'string', 'min:8', 'max:255'],
]);
if($request->password === $request->confirmation_password){
$isFoundToken = AdminPasswordReset::where('email', $request->email)->first();
if($isFoundToken){
$isFoundPro = Admin::where('email', $isFoundToken->email)->first();
if($isFoundPro){
$isFoundToken->expire = true;
$isFoundToken->updated_at = Carbon::now();
$resultatToken = $isFoundToken->save();
$isFoundPro->password = Hash::make($request->password);
$isFoundPro->updated_at = Carbon::now();
$resultatPro = $isFoundPro->save();
if($resultatToken && $resultatPro){
return redirect()->route('admin.login_form')->with('success', 'Réinitialiser effectuée avec succès.');
}else{
return back()->with('error', 'Une erreur a surgi lors de la réinitialisation. Veuillez reprendre s\'il vous plaît.');
}
}else{
return back()->with('error', 'Cette adresse n\'existe pas.');
}
}else{
return back()->with('error', 'Vous n\'avez pas enclenché un processus de réinitialisation du mot de passe.');
}
}else{
return back()->with('error', 'Les mots de passe doivent être identiques.');
}
}
public function profil(){
$id = Auth::guard('admin')->user()->id;
$profil = Admin::find($id);
//dd($rdv);
return view('admin.profil.index', compact('profil'));
} // Profil
public function profilEdit(){
$id = Auth::guard('admin')->user()->id;
$profil = Admin::find($id);
//dd($rdv);
return view('admin.profil.edit', compact('profil'));
}
public function profilUpdate(Request $request){
$request->validate([
"name" => ['required', 'string', 'max:50'],
"email" => ['required', 'string'],
]);
try{
$admin = Admin::find(Auth::guard('admin')->user()->id);
$admin->pseudo = $request->name;
$admin->email = $request->email;
$admin->updated_at = Carbon::now();
$val = $admin->save();
if($val){
return redirect()->route('admin.profil')->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function profilUpdatePhoto(Request $request){
$request->validate([
'photo' => 'required|image|mimes:jpg,jpeg,png|max:5048',
]);
$admin = Auth::guard('admin')->user();
$prof = Admin::find($admin->id);
$old_image = Admin::find($admin->id);
$image_name = $admin->photo;
$image = $request->photo;
$image_name = rand() . '.' . $image->getClientOriginalExtension();
$image->move(public_path('images/admin/profil'), $image_name);
if($old_image->photo == 'user.png'){
}else{
if($old_image->photo == 'user.jpg'){
}else{
unlink('images/admin/profil/'. $old_image->photo);
}
}
$filename = public_path('images/admin/profil') .'/'. $image_name;
$image = Image::make($filename)->fit(720,720);
$image->save();
$prof->photo = $image_name;
$bool = $prof->save();
if($bool){
return redirect()->route('admin.profil')->with('success', 'Photo de profil mise à jour avec succès');
}else{
return back()->with('error', 'L\'image n\'a pas été sauvegardé en base de données');
}
}
public function profilUpdatePassword(Request $request){
if(Hash::check($request->password, Auth::guard('admin')->user()->password)){
if($request->new_password === $request->confirmation_password){
$isFoundPro = Admin::where('email', Auth::guard('admin')->user()->email)->first();
if($isFoundPro){
$isFoundPro->password = Hash::make($request->new_password);
$isFoundPro->updated_at = Carbon::now();
$resultatPro = $isFoundPro->save();
if($resultatPro){
return redirect()->route('admin.profil')->with('success', 'Réinitialisation effectuée avec succès.');
}else{
return back()->with('error', 'Une erreur a surgi lors de la réinitialisation. Veuillez reprendre s\'il vous plaît.');
}
}else{
return back()->with('error', 'Utilisateur introuvable.');
}
}else{
return back()->with('error', 'Les mots de passe doivent être identiques.');
}
}else{
return back()->with('error', 'Mot de passe incorrect.');
}
}
public function profilEditPassword(){
return view('admin.profil.password');
}
public function profilEditPhoto(){
return view('admin.profil.photo');
}
public function type(){
$types = TypeProfessionnel::all();
return view('admin.type.index', compact('types'));
}
public function type_post(Request $request){
$request->validate([
"intitule" => ['required', 'string'],
"details" => ['required', 'string'],
]);
$type = TypeProfessionnel::create([
"intitule" => $request->intitule,
"details" => $request->details,
"created_at" => Carbon::now(),
]);
if($type){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}
public function type_vue(Request $request){
$type = TypeProfessionnel::findOrFail($request->id);
return view('admin.type.type', compact('type'));
}
public function type_edit(Request $request){
$request->validate([
"intitule" => ['required', 'string'],
"details" => ['required', 'string'],
]);
try{
$type = TypeProfessionnel::find($request->id);
$type->intitule = $request->intitule;
$type->details = $request->details;
$type->updated_at = Carbon::now();
$val = $type->save();
if($val){
return redirect()->route('admin.type')->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function type_supprime(Request $request){
$type = TypeProfessionnel::find($request->id);
$type->delete();
return redirect()->route('admin.type')->with('success', 'Type membre supprimé avec succès');
}
public function activite(){
$activites = Activite::all();
return view('admin.activite.index', compact('activites'));
}
public function activite_post(Request $request){
$request->validate([
"intitule" => ['required', 'string'],
"date_debut" => ['required', 'date'],
"montant" => ['required', 'string'],
]);
$activite = Activite::create([
"intitule" => $request->intitule,
"date_debut" => $request->date_debut,
"date_fin" => $request->date_fin,
"montant" => $request->montant,
"created_at" => Carbon::now(),
]);
if($activite){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}
public function activite_vue(Request $request){
$activite = Activite::findOrFail($request->id);
return view('admin.activite.activite', compact('activite'));
}
public function activite_edit(Request $request){
$request->validate([
"intitule" => ['required', 'string'],
"date_debut" => ['required', 'date'],
"montant" => ['required', 'string'],
]);
try{
$activite = Activite::find($request->id);
$activite->intitule = $request->intitule;
$activite->date_debut = $request->date_debut;
$activite->date_fin = $request->date_fin;
$activite->montant = $request->montant;
$activite->updated_at = Carbon::now();
$val = $activite->save();
if($val){
return redirect()->route('admin.activite')->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function activite_supprime(Request $request){
$activite = Activite::find($request->id);
$activite->delete();
return redirect()->route('admin.activite')->with('success', 'Type membre supprimé avec succès');
}
public function entreprise(){
$entreprises = Entreprise::all();
return view('admin.entreprise.index', compact('entreprises'));
}
public function entreprise_post(Request $request){
$request->validate([
"nom_entreprise" => ['required', 'string'],
"statut_juridique" => ['required', 'string'],
"domaine_activite" => ['required', 'string'],
"email" => ['required', 'string', 'email', 'max:255', 'unique:entreprises'],
"telephone" => ['required', 'string', 'max:20', 'unique:entreprises'],
"adresse" => ['required', 'string'],
]);
$entreprise = Entreprise::create([
"nom_entreprise" => $request->nom_entreprise,
"statut_juridique" => $request->statut_juridique,
"domaine_activite" => $request->domaine_activite,
"web" => $request->web,
"representant" => $request->representant,
"email" => $request->email,
"telephone" => $request->telephone,
"adresse" => $request->adresse,
"created_at" => Carbon::now(),
]);
if($entreprise){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}
public function entreprise_vue(Request $request){
$entreprise = Entreprise::findOrFail($request->id);
return view('admin.entreprise.entreprise', compact('entreprise'));
}
public function entreprise_edit(Request $request){
$request->validate([
"nom_entreprise" => ['required', 'string'],
"statut_juridique" => ['required', 'string'],
"domaine_activite" => ['required', 'string'],
"email" => ['required', 'string', 'email', 'max:255'],
"telephone" => ['required', 'string', 'max:20'],
"adresse" => ['required', 'string'],
]);
try{
$entreprise = Entreprise::find($request->id);
$entreprise->nom_entreprise = $request->nom_entreprise;
$entreprise->statut_juridique = $request->statut_juridique;
$entreprise->domaine_activite = $request->domaine_activite;
$entreprise->web = $request->web;
$entreprise->representant = $request->representant;
$entreprise->email = $request->email;
$entreprise->telephone = $request->telephone;
$entreprise->adresse = $request->adresse;
$entreprise->updated_at = Carbon::now();
$val = $entreprise->save();
if($val){
return redirect()->route('admin.entreprise')->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function entreprise_supprime(Request $request){
$entreprise = Entreprise::find($request->id);
$entreprise->delete();
return redirect()->route('admin.entreprise')->with('success', 'Entreprise supprimée avec succès');
}
//Code d'ajout
public function rubrique_encaissement(){
$resourencs = RessEnc::all();
return view('admin.rubencaissement.index', compact('resourencs'));
}
public function rubrique_encaissement_post(Request $request){
$request->validate([
"libelle" => ['required', 'string'],
"montant" => ['required', 'string'],
]);
$resourenc = RessEnc::create([
"libelle" => $request->libelle,
"montant" => $request->montant,
"created_at" => Carbon::now(),
]);
if($resourenc){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}
public function rubrique_encaissement_vue(Request $request){
$resourenc = RessEnc::findOrFail($request->id);
return view('admin.rubencaissement.encaissement', compact('resourenc'));
}
public function rubrique_encaissement_edit(Request $request){
$request->validate([
"libelle" => ['required', 'string'],
"montant" => ['required', 'string'],
]);
try{
$resourenc = RessEnc::find($request->id);
$resourenc->libelle = $request->libelle;
$resourenc->montant = $request->montant;
$resourenc->updated_at = Carbon::now();
$val = $resourenc->save();
if($val){
return redirect()->route('admin.rubrique.encaissement')->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function rubrique_encaissement_destroy(Request $request){
$resourenc = RessEnc::find($request->id);
$resourenc->delete();
return redirect()->route('admin.rubrique.encaissement')->with('success', 'Rubrique encaissement supprimée avec succès');
}
public function rubrique_decaissement(){
$resourdecs = RessDec::all();
return view('admin.rubdecaissement.index', compact('resourdecs'));
}
public function rubrique_decaissement_post(Request $request){
$request->validate([
"libelle" => ['required', 'string'],
]);
$resourdec = RessDec::create([
"libelle" => $request->libelle,
"created_at" => Carbon::now(),
]);
if($resourdec){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}
public function rubrique_decaissement_vue(Request $request){
$resourdec = RessDec::findOrFail($request->id);
return view('admin.rubdecaissement.decaissement', compact('resourdec'));
}
public function rubrique_decaissement_edit(Request $request){
$request->validate([
"libelle" => ['required', 'string'],
"montant" => ['required', 'string'],
]);
try{
$resourdec = RessDec::find($request->id);
$resourdec->libelle = $request->libelle;
$resourdec->montant = $request->montant;
$resourdec->updated_at = Carbon::now();
$val = $resourdec->save();
if($val){
return redirect()->route('admin.rubrique.decaissement')->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function rubrique_decaissement_destroy(Request $request){
$resourdec = RessDec::find($request->id);
$resourdec->delete();
return redirect()->route('admin.rubrique.decaissement')->with('success', 'Rubrique décaissement supprimée avec succès');
}
public function facturation(){
$facturations = Facturation::all();
$activites = Activite::all();
$membres = Professionnel::all();
$resourencs = RessEnc::all();
return view('admin.facturation.index', compact('facturations', 'activites', 'membres', 'resourencs'));
}
public function facturation_post(Request $request){
// dd($request);
$request->validate([
"mois" => ['required', 'date'],
"montant" => ['required', 'string'],
"montant_rub" => ['required', 'string'],
"professionnel" => ['required', 'string'],
"libelle" => ['required', 'string'],
"activite" => ['required', 'string'],
]);
// dd($request);
$facturation = Facturation::create([
"details" => $request->details,
"mois" => $request->mois,
"montant" => $request->montant,
"montant_rub" => $request->montant_rub,
"activite_id" => $request->activite,
"ress_enc_id" => $request->libelle,
"professionnel_id" => $request->professionnel,
"created_at" => Carbon::now(),
]);
// dd($membre);
if($facturation){
return back()->with('success', 'Facturation ajoutée avec succès');
}else{
return back()->with('Une erreur a surgi');
}
}
public function facturation_destroy(Request $request){
$facturation = Facturation::find($request->id);
$facturation->delete();
return redirect()->route('admin.facturation')->with('success', 'Facturation supprimée avec succès');
}
public function facturation_encaissement(){
$facturations = Facturation::all();
$suivis = SuiviPayement::all();
$membres = Professionnel::all();
$activites = Activite::all();
$resourencs = RessEnc::all();
return view('admin.encfactu.index', compact('facturations', 'suivis', 'membres','activites','resourencs'));
}
public function suivi_paiement(){
$suivis = SuiviPayement::all();
$membres = Professionnel::all();
$activites = Activite::all();
$resourencs = RessEnc::all();
return view('admin.suivi.index', compact('suivis', 'membres', 'activites', 'resourencs'));
}
public function suivi_paiement_post(Request $request){
$request->validate([
"membre_id" => ['required', 'string'],
"type_payement" => ['required', 'string'],
"date_payement" => ['required', 'date'],
]);
$verif = SuiviPayement::where('professionnel_id', $request->membre_id)->where('activite_id', $request->intitule)->where('ress_enc_id', $request->libelle)->first();
if($verif){
$verif->montant = $verif->montant + $request->montant;
$app = $verif->save();
if($app){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}else{
$suivi = SuiviPayement::create([
"professionnel_id" => $request->membre_id,
"montant" => $request->montant,
"montant_ress_enc" => $request->montant_ress_enc,
"activite_id" => $request->intitule,
"ress_enc_id" => $request->libelle,
"type_payement" => $request->type_payement,
"date_payement" => $request->date_payement,
"created_at" => Carbon::now(),
]);
if($suivi){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}
}
public function suivi_paiement_vue(Request $request){
/* $suivi = SuiviPayement::findOrFail($request->id);
$membre = Professionnel::all();
$activites = Activite::all();
$resourencs = RessEnc::all();
return view('admin.suivi.suivi', compact('suivi', 'membre', 'activites', 'resourencs'));*/
}
public function suivi_paiement_destroy(Request $request){
$suivi = SuiviPayement::findOrFail($request->id);
$suivi->delete();
return back()->with('success', 'Encaissement supprimé avec succès');
}
public function membre(){
$membres = Professionnel::all();
$entreprises = Entreprise::all();
$types = TypeProfessionnel::all();
return view('admin.membre.index', compact('membres', 'entreprises', 'types'));
}
public function membre_post(Request $request){
// dd($request);
$request->validate([
"prenom" => ['required', 'string'],
"nom" => ['required', 'string'],
"email" => ['required', 'string', 'email', 'max:255', 'unique:professionnels'],
"telephone" => ['required', 'string', 'max:20', 'unique:professionnels'], //required|regex:/^([0-9\s\-\+\(\)]*)$/|min:8
"intitule" => ['required', 'string'],
"datenais" => ['required', 'date'],
"lieunais" => ['required', 'string'],
"photo" => 'required|image|mimes:jpg,jpeg,png,gif,svg|max:2048',
"domaine_etude" => ['required', 'string'],
"niveau_etude" => ['required', 'string'],
// "date_adhesion" => ['required', 'date'],
"diplome" => ['required', 'string'],
// "civilite" => ['required', 'string'],
//"statut" => ['required', 'string'],
"fonction" => ['required', 'string'],
"ville" => ['required', 'string'],
"pays" => ['required', 'string'],
"adresse" => ['required', 'string'],
//"password" => ['required', 'string'],
//"statut_rh" => ['required', 'string'],
]);
$image = $request->photo;
$imageName = rand().'.'.$image->getClientOriginalExtension();
$image->move(public_path('images/membre/profil'), $imageName);
$filename = public_path('images/membre/profil') .'/'. $imageName;
$image = Image::make($filename)->fit(720,720);
$image->save();
// dd($request);
$membre = Professionnel::create([
"prenom" => $request->prenom,
"nom" => $request->nom,
"email" => $request->email,
"telephone" => $request->telephone,
"type_professionnel_id" => $request->intitule,
"datenais" => $request->datenais,
"lieunais" => $request->lieunais,
"domaine_etude" => $request->domaine_etude,
"niveau_etude" => $request->niveau_etude,
//"date_adhesion" => $request->date_adhesion,
"diplome" => $request->diplome,
//"civilite" => $request->civilite,
//"statut" => $request->statut,
"fonction" => $request->fonction,
"domaine_etude" => $request->domaine_etude,
"ville" => $request->ville,
"pays" => $request->pays,
"adresse" => $request->adresse,
"datenais" => $request->datenais,
"lieunais" => $request->lieunais,
"photo" => $imageName,
"password" => Hash::make('user123'),
"entreprise_id" => $request->entreprise,
//"statut_rh" => $request->statut_rh,
"created_at" => Carbon::now(),
]);
// dd($membre);
if($membre){
return back()->with('success', 'RH ajouté avec succès');
}else{
return back()->with('Une erreur a surgi');
}
}
public function membre_vue(Request $request){
$types = TypeProfessionnel::all();
$entreprises = Entreprise::all();
$membre = Professionnel::findOrFail($request->id);
$suivis = SuiviPayement::where('professionnel_id', $request->id)->get();
$activites = Activite::all();
$resourencs = RessEnc::all();
return view('admin.membre.membre', compact('membre', 'entreprises', 'types', 'suivis', 'activites', 'resourencs'));
}
public function membre_edit(Request $request){
$request->validate([
"prenom" => ['required', 'string'],
"nom" => ['required', 'string'],
"email" => ['required', 'string', 'email'],
"telephone" => ['required', 'string', 'max:20'],
//"date_adhesion" => ['required', 'date'],
"diplome" => ['required', 'string'],
//"civilite" => ['required', 'string'],
//"statut" => ['required', 'string'],
"fonction" => ['required', 'string'],
"domaine_etude" => ['required'],
"niveau_etude" => ['required'],
"ville" => ['required', 'string'],
"pays" => ['required', 'string'],
"adresse" => ['required', 'string'],
"datenais" => ['required', 'string'],
"lieunais" => ['required', 'string'],
"photo" => 'required|image|mimes:jpg,jpeg,png,gif,svg|max:2048',
"entreprise" => ['required', 'string'],
//"statut_rh" => ['required', 'string'],
]);
$image = $request->photo;
$imageName = rand().'.'.$image->getClientOriginalExtension();
$image->move(public_path('images/membre/profil'), $imageName);
$filename = public_path('images/membre/profil') .'/'. $imageName;
$image = Image::make($filename)->fit(720,720);
$image->save();
try{
$membre = Professionnel::find($request->id);
$membre->nom = $request->nom;
$membre->prenom = $request->prenom;
$membre->telephone = $request->telephone;
//$membre->date_adhesion = $request->date_adhesion;
$membre->diplome = $request->diplome;
// $membre->civilite = $request->civilite;
// $membre->statut = $request->statut;
$membre->fonction = $request->fonction;
$membre->domaine_etude = $request->domaine_etude;
$membre->niveau_etude = $request->niveau_etude;
$membre->ville = $request->ville;
$membre->pays = $request->pays;
$membre->adresse = $request->adresse;
$membre->datenais = $request->datenais;
$membre->lieunais = $request->lieunais;
$membre->photo = $imageName;
$membre->entreprise_id = $request->entreprise;
//$membre->statut_rh = $request->statut_rh;
$membre->updated_at = Carbon::now();
$val = $membre->save();
if($val){
return back()->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function membre_etat(Request $request){
$mem = Professionnel::find($request->id);
if($mem->etat){
$mem->etat = false;
$mem->updated_at = Carbon::now();
$val = $mem->save();
if($val){
return back()->with('success', 'Désactivation effectuée avec succès');
}else{
return back()->with('error', 'Désactivation echouée');
}
}else{
$mem->etat = true;
$mem->updated_at = Carbon::now();
$val = $mem->save();
if($val){
return back()->with('success', 'Activation effectuée avec succès');
}else{
return back()->with('error', 'Activation echouée');
}
}
}
public function membre_supprime(Request $request){
$membre = Professionnel::find($request->id);
$membre->delete();
return redirect()->route('admin.membre')->with('success', 'Compte supprimé avec succès');
}
public function flux(){
$fluxes = Flux::all();
$activites = Activite::all();
$resourdecs = RessDec::all();
return view('admin.flux.index', compact('fluxes', 'activites', 'resourdecs'));
}
public function flux_post(Request $request){
// dd($request);
$request->validate([
"motif" => ['required', 'string'],
"montant" => ['required', 'string'],
"activite" => ['required', 'string'],
"libelle" => ['required', 'string'],
"date_flux" => ['required', 'date'],
]);
// dd($request);
$flux = Flux::create([
"motif" => $request->motif,
"montant" => $request->montant,
"activite_id" => $request->activite,
"ress_dec_id" => $request->libelle,
"date_flux" => $request->date_flux,
"created_at" => Carbon::now(),
]);
// dd($membre);
if($flux){
return back()->with('success', 'Décaissement ajouté avec succès');
}else{
return back()->with('Une erreur a surgi');
}
}
public function flux_supprime(Request $request){
$flux = Flux::findOrFail($request->id);
$flux->delete();
return back()->with('success', 'Décaissement supprimé avec succès');
}
}
ci-dessous un aperçu de l'interface générée par le code :
Par contre, le code ci-dessous, écris sur site hébergé en ligne, m'affiche un tableau différent (voir l'image après le code)
@extends('admin.layouts.application')
@section('contenu')
<!--app-content open-->
<div class="main-content app-content mt-0">
<div class="side-app">
<!-- CONTAINER -->
<div class="main-container container-fluid">
@if (Session::has('success'))
<div class="alert alert-success alert-dismissible fade show mb-0" role="alert">
<span class="alert-inner--text">{{ session::get('success') }}</span>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
@endif
@if ($errors->any())
<div class="alert alert-danger alert-dismissible fade show mb-0" role="alert">
<span class="alert-inner--text">
@foreach ($errors->all() as $error)
{{ $error }}
@endforeach
</span>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
@endif
@if (Session::has('error'))
<div class="alert alert-danger alert-dismissible fade show mb-0" role="alert">
<span class="alert-inner--text">{{ session::get('error') }}</span>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
@endif
<!-- PAGE-HEADER -->
<div class="page-header">
<div>
<h1 class="page-title">Facturation-encaissement</h1>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="javascript:void(0);">Tableau de bord</a></li>
<li class="breadcrumb-item active" aria-current="page">Facturation-encaissement</li>
</ol>
</div>
<!--div class="ms-auto pageheader-btn">
<a href="" data-bs-toggle="modal" data-bs-target="#scrollingmodal" class="btn btn-primary btn-icon text-white me-2">
<span>
<i class="fa fa-plus-circle"></i>
</span> Ajouter facturation
</a>
</div-->
</div>
<!-- PAGE-HEADER END -->
<!-- ROW-5 -->
<div class="row">
<div class="col-12 col-sm-12">
<div class="card ">
<div class="card-header">
<h3 class="card-title mb-0">Liste facturation-encaissement</h3>
</div>
<div class="card-body">
<div class="table-responsive">
<table id="data-table" class="table table-bordered text-nowrap mb-0">
<thead class="border-top">
<tr align="center">
<th colspan="6" class="bg-transparent border-bottom-0">Facturation</th>
<th colspan="3" class="bg-transparent border-bottom-0">Paiement</th>
</tr>
<tr>
<th class="bg-transparent border-bottom-0">Mois</th>
<th class="bg-transparent border-bottom-0">Activite</th>
<th class="bg-transparent border-bottom-0">Montant/Activite</th>
<th class="bg-transparent border-bottom-0">Rubrique</th>
<th class="bg-transparent border-bottom-0">Montant/Rubrique</th>
<th class="bg-transparent border-bottom-0">Membre RH</th>
<th class="bg-transparent border-bottom-0">Montant versé/rubrique</th>
<th class="bg-transparent border-bottom-0">Montant versé/activite</th>
<th class="bg-transparent border-bottom-0">Date paiement</th>
</tr>
</thead>
<tbody>
@forelse ($facturations as $facturation)
<tr class="border-bottom">
<td class="text-muted fs-15 fw-semibold">{{ Carbon\Carbon::parse($facturation->mois)->format('M-Y')}}</td>
<td class="text-muted fs-15 fw-semibold">
@forelse ($activites as $activite)
@if ($activite->id == $facturation->activite_id)
{{ $activite->intitule }}
@else
@endif
@empty
@endforelse
</td>
<td class="text-muted fs-15 fw-semibold">{{ $facturation->montant}}</td>
<td class="text-muted fs-15 fw-semibold">
@forelse ( $resourencs as $resourenc)
@if ($resourenc->id == $facturation->ress_enc_id)
{{ $resourenc->libelle }}
@else
@endif
@empty
@endforelse
</td>
<td class="text-muted fs-15 fw-semibold">{{ $facturation->montant_rub}} </td>
<td>
@forelse ($membres as $membre)
@if ($membre->id == $facturation->professionnel_id)
<div class="d-flex">
<!--span class="avatar avatar-md brround mt-1" style="background-image: url({{ asset('images/membre/profil/'. $membre->photo) }})"></span-->
<div class="ms-2 mt-0 mt-sm-2 d-block">
<h6 class="mb-0 fs-14 fw-semibold">
<a href="{{ route('admin.membre.vue',$membre->id) }}">
{{ $membre->prenom }} {{ $membre->nom }}
</a>
</h6>
<span class="fs-12 text-muted">{{ $membre->email }}</span>
</div>
</div>
@else
@endif
@empty
@endforelse
</td>
@forelse ($suivis as $suivi)
<td class="text-muted fs-15 fw-semibold">
{{ $suivi->montant_ress_enc}}
</td>
<td class="text-muted fs-15 fw-semibold">
{{ $suivi->montant}}
</td>
<td class="text-muted fs-15 fw-semibold">{{ Carbon\Carbon::parse($suivi->date_payement)->format('d-m-Y')}} </td>
@empty
@endforelse
</tr>
@empty
@endforelse
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- COL END -->
</div>
<!-- ROW-5 END -->
</div>
<!-- CONTAINER END -->
</div>
</div>
<!--app-content end-->
<!-- Modal -->
<!--form action="{{ route('admin.facturation.post') }}" method="post">
@csrf
<div class="modal fade" id="scrollingmodal" tabindex="-1" role="dialog" >
<div class="modal-dialog modal-lg modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" >Ajout cotisation membre RH</h5>
<button class="btn-close" type="button" data-bs-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-lg-6 col-md-12">
<div class="form-group">
<label for="exampleInputname">Membre RH</label>
<select name="professionnel" class="form-control" required>
<option selected disabled>Selectionnez membre RH</option>
@forelse ($membres as $membre)
<option value="{{ $membre->id }}">{{ $membre->prenom }} {{ $membre->nom }}</option>
@empty
<option disabled selected>Pas de membre RH</option>
@endforelse
</select>
<!--input type="text" name="prenom" class="form-control" id="exampleInputname" placeholder="Prénom" required-->
</div>
</div>
<div class="col-lg-6 col-md-12">
<div class="form-group">
<label for="exampleInputname1">Activité</label>
<select name="activite" class="form-control" required>
<option selected disabled>Selectionnez une activité</option>
@forelse ($activites as $activite)
<option value="{{ $activite->id }}">{{ $activite->intitule }}</option>
@empty
<option disabled selected>Pas d'activite</option>
@endforelse
</select>
<!--input type="text" name="nom" class="form-control" id="exampleInputname1" placeholder="Nom" required-->
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-12">
<div class="form-group">
<label class="form-label">Rubrique encaissement</label>
<select name="ress_dec" class="form-control" required>
<option selected disabled>Selectionnez rubrique encaissement</option>
@forelse ($resourencs as $resourenc)
<option value="{{ $resourenc->id }}">{{ $resourenc->libelle }}</option>
@empty
<option disabled selected>Pas de rubrique</option>
@endforelse
</select>
<!--input type="email" name="email" class="form-control" id="exampleInputname" placeholder="Email" required-->
</div>
</div>
<div class="col-lg-6 col-md-12">
<div class="form-group">
<label class="form-label">Mois</label>
<input type="month" name="mois" class="form-control" id="exampleInputname" placeholder="" required>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-12">
<div class="form-group">
<label class="form-label">Montant</label>
<input type="number" name="montant" class="form-control" id="exampleInputname" required>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fermer</button>
<button type="submit" class="btn btn-primary">Ajouter</button>
</div>
</div>
</div>
</div>
</form>
@endsection
Le code en ligne permettant le contrôle de la page ci-dessous est le suivant :
<?php
namespace App\Http\Controllers;
use Auth;
use Exception;
use Validator;
use Carbon\Carbon;
use App\Models\Rdv;
use App\Models\Jour;
use App\Models\Admin;
use Illuminate\Support\Str;
use Illuminate\Http\Request;
use App\Models\Professionnel;
use Illuminate\Validation\Rules;
use App\Models\AdminPasswordReset;
use Illuminate\Support\Facades\DB;
use App\Mail\AdminPasswordResetMail;
use App\Models\Activite;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Mail;
use Intervention\Image\Facades\Image;
use App\Models\Entreprise;
use App\Models\Flux;
use App\Models\Membre;
use App\Models\SuiviPayement;
use App\Models\RessDec;
use App\Models\TypeProfessionnel;
use App\Models\Facturation;
use App\Models\RessEnc;
use Illuminate\Support\Facades\Response;
class AdminController extends Controller
{
public function index(){
return view('admin.login');
}
public function dashboard(){
$now = Carbon::now()->addDay();
$sept = Carbon::now()->subDays(7);
$trente = Carbon::now()->subDays(30);
$jours7encais = SuiviPayement::whereBetween('date_payement', [$sept, $now])->get();
$jours30encais = SuiviPayement::whereBetween('date_payement', [$trente, $now])->get();
$jours7decais = Flux::whereBetween('date_flux', [$sept, $now])->get();
$jours30decais = Flux::whereBetween('date_flux', [$trente, $now])->get();
// dd($jours30decais);
$membres1 = Professionnel::where('type_professionnel_id', 1)->count();
$membres2 = Professionnel::where('type_professionnel_id', 2)->count();
$membres3 = Professionnel::where('type_professionnel_id', 3)->count();
$entreprises = Entreprise::all()->count();
$encais = SuiviPayement::all()->sum('montant');
$cotisations = SuiviPayement::where('ress_enc_id', 2)->sum('montant_ress_enc');
$frais = SuiviPayement::where('ress_enc_id', 3)->sum('montant_ress_enc');
$decais = Flux::all()->sum('montant');
return view('admin.dashboard', compact('membres1', 'membres2', 'membres3', 'entreprises','encais', 'cotisations', 'frais', 'decais'));
}
public function login(Request $request){
// dd($request->all());
$check = $request->all();
if(Auth::guard('admin')->attempt(['email' => $check['email'], 'password' => $check['password']])){
if(Auth::guard('admin')->user()->etat){
return redirect()->route('admin.dashboard')->with('success', 'Connecté');
} else{
return back()->with('error', 'Vous ne pouvez pas accéder à ce compte car il est désactivé');
}
}else{
return back()->with('error', 'Authentification échouée');
}
}
public function logout(){
Auth::guard('admin')->logout();
return redirect()->route('admin.login_form')->with('success', 'Deconnexion avec succès');
}
public function register(Request $request){
$request->validate([
'name' => ['required', 'string', 'max:100'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:admins'],
'password' => ['required', 'confirmed', Rules\Password::defaults()],
]);
$user = Admin::create([
'name' => $request->name,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
return redirect()->route('admin.dashboard');
}
public function passwordForget(){
return view('admin.passwordForget');
}
public function passwordReset(Request $request){
$request->validate([
'email' => ['required', 'string', 'email', 'max:255']
]);
$isFound = Admin::where('email', $request->email)->first();
if($isFound){
$reset = AdminPasswordReset::create([
'email' => $request->email,
'token' => (string) Str::uuid(),
'expire' => false,
'created_at' => Carbon::now(),
]);
$lien = route('admin.new.password', $reset->token);
// SendAdminPasswordResetLinkMailJob::dispatch($isFound, $lien);
Mail::to($isFound->email)->send(new AdminPasswordResetMail($isFound, $lien));
return back()->with('success', 'Nous vous avons envoyé un lien de réinitialisation dans votre boite email.');
}else{
return back()->with('error', 'Cette adresse n\'existe pas.');
}
}
public function newPassword($token){
$isFound = AdminPasswordReset::where('token', $token)->first();
if($isFound){
if($isFound->expire == 0){
return view('admin.passwordUpdate', compact('isFound'));
}else{
return redirect()->route('admin.login_form')->with('error', 'Token déjà utilisé.');
}
}else{
return redirect()->route('admin.login_form')->with('error', 'Token invalide');
}
}
public function passwordUpdate(Request $request){
$request->validate([
'email' => ['required', 'string', 'email', 'max:255'],
'password' => ['required', 'string', 'min:8', 'max:255'],
'confirmation_password' => ['required', 'string', 'min:8', 'max:255'],
]);
if($request->password === $request->confirmation_password){
$isFoundToken = AdminPasswordReset::where('email', $request->email)->first();
if($isFoundToken){
$isFoundPro = Admin::where('email', $isFoundToken->email)->first();
if($isFoundPro){
$isFoundToken->expire = true;
$isFoundToken->updated_at = Carbon::now();
$resultatToken = $isFoundToken->save();
$isFoundPro->password = Hash::make($request->password);
$isFoundPro->updated_at = Carbon::now();
$resultatPro = $isFoundPro->save();
if($resultatToken && $resultatPro){
return redirect()->route('admin.login_form')->with('success', 'Réinitialiser effectuée avec succès.');
}else{
return back()->with('error', 'Une erreur a surgi lors de la réinitialisation. Veuillez reprendre s\'il vous plaît.');
}
}else{
return back()->with('error', 'Cette adresse n\'existe pas.');
}
}else{
return back()->with('error', 'Vous n\'avez pas enclenché un processus de réinitialisation du mot de passe.');
}
}else{
return back()->with('error', 'Les mots de passe doivent être identiques.');
}
}
public function profil(){
$id = Auth::guard('admin')->user()->id;
$profil = Admin::find($id);
//dd($rdv);
return view('admin.profil.index', compact('profil'));
} // Profil
public function profilEdit(){
$id = Auth::guard('admin')->user()->id;
$profil = Admin::find($id);
//dd($rdv);
return view('admin.profil.edit', compact('profil'));
}
public function profilUpdate(Request $request){
$request->validate([
"name" => ['required', 'string', 'max:50'],
"email" => ['required', 'string'],
]);
try{
$admin = Admin::find(Auth::guard('admin')->user()->id);
$admin->pseudo = $request->name;
$admin->email = $request->email;
$admin->updated_at = Carbon::now();
$val = $admin->save();
if($val){
return redirect()->route('admin.profil')->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function profilUpdatePhoto(Request $request){
$request->validate([
'photo' => 'required|image|mimes:jpg,jpeg,png|max:5048',
]);
$admin = Auth::guard('admin')->user();
$prof = Admin::find($admin->id);
$old_image = Admin::find($admin->id);
$image_name = $admin->photo;
$image = $request->photo;
$image_name = rand() . '.' . $image->getClientOriginalExtension();
$image->move(public_path('images/admin/profil'), $image_name);
if($old_image->photo == 'user.png'){
}else{
if($old_image->photo == 'user.jpg'){
}else{
unlink('../public_html/images/admin/profil/'. $old_image->photo);
}
}
$filename = public_path('images/admin/profil') .'/'. $image_name;
$image = Image::make($filename)->fit(720,720);
$image->save();
$prof->photo = $image_name;
$bool = $prof->save();
if($bool){
return redirect()->route('admin.profil')->with('success', 'Photo de profil mise à jour avec succès');
}else{
return back()->with('error', 'L\'image n\'a pas été sauvegardé en base de données');
}
}
public function profilUpdatePassword(Request $request){
if(Hash::check($request->password, Auth::guard('admin')->user()->password)){
if($request->new_password === $request->confirmation_password){
$isFoundPro = Admin::where('email', Auth::guard('admin')->user()->email)->first();
if($isFoundPro){
$isFoundPro->password = Hash::make($request->new_password);
$isFoundPro->updated_at = Carbon::now();
$resultatPro = $isFoundPro->save();
if($resultatPro){
return redirect()->route('admin.profil')->with('success', 'Réinitialisation effectuée avec succès.');
}else{
return back()->with('error', 'Une erreur a surgi lors de la réinitialisation. Veuillez reprendre s\'il vous plaît.');
}
}else{
return back()->with('error', 'Utilisateur introuvable.');
}
}else{
return back()->with('error', 'Les mots de passe doivent être identiques.');
}
}else{
return back()->with('error', 'Mot de passe incorrect.');
}
}
public function profilEditPassword(){
return view('admin.profil.password');
}
public function profilEditPhoto(){
return view('admin.profil.photo');
}
public function type(){
$types = TypeProfessionnel::all();
return view('admin.type.index', compact('types'));
}
public function type_post(Request $request){
$request->validate([
"intitule" => ['', 'string'],
"details" => ['', 'string'],
]);
$type = TypeProfessionnel::create([
"intitule" => $request->intitule,
"details" => $request->details,
"created_at" => Carbon::now(),
]);
if($type){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}
public function type_vue(Request $request){
$type = TypeProfessionnel::findOrFail($request->id);
return view('admin.type.type', compact('type'));
}
public function type_edit(Request $request){
$request->validate([
"intitule" => ['required', 'string'],
"details" => ['required', 'string'],
]);
try{
$type = TypeProfessionnel::find($request->id);
$type->intitule = $request->intitule;
$type->details = $request->details;
$type->updated_at = Carbon::now();
$val = $type->save();
if($val){
return redirect()->route('admin.type')->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function type_supprime(Request $request){
$type = TypeProfessionnel::find($request->id);
$type->delete();
return redirect()->route('admin.type')->with('success', 'Type membre supprimé avec succès');
}
public function activite(){
$activites = Activite::all();
return view('admin.activite.index', compact('activites'));
}
public function activite_post(Request $request){
$request->validate([
"intitule" => ['', 'string'],
"date_debut" => ['', 'date'],
"montant" => ['', 'string'],
]);
$activite = Activite::create([
"intitule" => $request->intitule,
"date_debut" => $request->date_debut,
"date_fin" => $request->date_fin,
"montant" => $request->montant,
"created_at" => Carbon::now(),
]);
if($activite){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}
public function activite_vue(Request $request){
$activite = Activite::findOrFail($request->id);
return view('admin.activite.activite', compact('activite'));
}
public function activite_edit(Request $request){
$request->validate([
"intitule" => ['required', 'string'],
"date_debut" => ['required', 'date'],
"montant" => ['required', 'string'],
]);
try{
$activite = Activite::find($request->id);
$activite->intitule = $request->intitule;
$activite->date_debut = $request->date_debut;
$activite->date_fin = $request->date_fin;
$activite->montant = $request->montant;
$activite->updated_at = Carbon::now();
$val = $activite->save();
if($val){
return redirect()->route('admin.activite')->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function activite_supprime(Request $request){
$activite = Activite::find($request->id);
$activite->delete();
return redirect()->route('admin.activite')->with('success', 'Type membre supprimé avec succès');
}
public function entreprise(){
$entreprises = Entreprise::all();
return view('admin.entreprise.index', compact('entreprises'));
}
public function entreprise_post(Request $request){
$request->validate([
"nom_entreprise" => ['', 'string'],
"statut_juridique" => ['', 'string'],
"domaine_activite" => ['', 'string'],
"email" => ['', 'string', 'email', 'max:255', 'unique:entreprises'],
"telephone" => ['', 'string', 'max:20', 'unique:entreprises'],
"adresse" => ['', 'string'],
]);
$entreprise = Entreprise::create([
"nom_entreprise" => $request->nom_entreprise,
"statut_juridique" => $request->statut_juridique,
"domaine_activite" => $request->domaine_activite,
"web" => $request->web,
"representant" => $request->representant,
"email" => $request->email,
"telephone" => $request->telephone,
"adresse" => $request->adresse,
"created_at" => Carbon::now(),
]);
if($entreprise){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}
public function entreprise_vue(Request $request){
$entreprise = Entreprise::findOrFail($request->id);
return view('admin.entreprise.entreprise', compact('entreprise'));
}
public function entreprise_edit(Request $request){
$request->validate([
"nom_entreprise" => ['required', 'string'],
"statut_juridique" => ['required', 'string'],
"domaine_activite" => ['required', 'string'],
"email" => ['required', 'string', 'email', 'max:255'],
"telephone" => ['required', 'string', 'max:20'],
"adresse" => ['required', 'string'],
]);
try{
$entreprise = Entreprise::find($request->id);
$entreprise->nom_entreprise = $request->nom_entreprise;
$entreprise->statut_juridique = $request->statut_juridique;
$entreprise->domaine_activite = $request->domaine_activite;
$entreprise->web = $request->web;
$entreprise->representant = $request->representant;
$entreprise->email = $request->email;
$entreprise->telephone = $request->telephone;
$entreprise->adresse = $request->adresse;
$entreprise->updated_at = Carbon::now();
$val = $entreprise->save();
if($val){
return redirect()->route('admin.entreprise')->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function entreprise_supprime(Request $request){
$entreprise = Entreprise::find($request->id);
$entreprise->delete();
return redirect()->route('admin.entreprise')->with('success', 'Entreprise supprimée avec succès');
}
//Code d'ajout
public function rubrique_encaissement(){
$resourencs = RessEnc::all();
return view('admin.rubencaissement.index', compact('resourencs'));
}
public function rubrique_encaissement_post(Request $request){
$request->validate([
"libelle" => ['', 'string'],
"montant" => ['', 'string'],
]);
$resourenc = RessEnc::create([
"libelle" => $request->libelle,
"montant" => $request->montant,
"created_at" => Carbon::now(),
]);
if($resourenc){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}
public function rubrique_encaissement_vue(Request $request){
$resourenc = RessEnc::findOrFail($request->id);
return view('admin.rubencaissement.encaissement', compact('resourenc'));
}
public function rubrique_encaissement_edit(Request $request){
$request->validate([
"libelle" => ['required', 'string'],
"montant" => ['required', 'string'],
]);
try{
$resourenc = RessEnc::find($request->id);
$resourenc->libelle = $request->libelle;
$resourenc->montant = $request->montant;
$resourenc->updated_at = Carbon::now();
$val = $resourenc->save();
if($val){
return redirect()->route('admin.rubrique.encaissement')->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function rubrique_encaissement_destroy(Request $request){
$resourenc = RessEnc::find($request->id);
$resourenc->delete();
return redirect()->route('admin.rubrique.encaissement')->with('success', 'Rubrique encaissement supprimée avec succès');
}
public function rubrique_decaissement(){
$resourdecs = RessDec::all();
return view('admin.rubdecaissement.index', compact('resourdecs'));
}
public function rubrique_decaissement_post(Request $request){
$request->validate([
"libelle" => ['', 'string'],
]);
$resourdec = RessDec::create([
"libelle" => $request->libelle,
"created_at" => Carbon::now(),
]);
if($resourdec){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}
public function rubrique_decaissement_vue(Request $request){
$resourdec = RessDec::findOrFail($request->id);
return view('admin.rubdecaissement.decaissement', compact('resourdec'));
}
public function rubrique_decaissement_edit(Request $request){
$request->validate([
"libelle" => ['required', 'string'],
"montant" => ['required', 'string'],
]);
try{
$resourdec = RessDec::find($request->id);
$resourdec->libelle = $request->libelle;
$resourdec->montant = $request->montant;
$resourdec->updated_at = Carbon::now();
$val = $resourdec->save();
if($val){
return redirect()->route('admin.rubrique.decaissement')->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function rubrique_decaissement_destroy(Request $request){
$resourdec = RessDec::find($request->id);
$resourdec->delete();
return redirect()->route('admin.rubrique.decaissement')->with('success', 'Rubrique décaissement supprimée avec succès');
}
public function facturation(){
$facturations = Facturation::all();
$activites = Activite::all();
$membres = Professionnel::orderBy('nom', 'asc')->get();
$resourencs = RessEnc::all();
return view('admin.facturation.index', compact('facturations', 'activites', 'membres', 'resourencs'));
}
public function facturation_post(Request $request){
// dd($request);
$request->validate([
"mois" => ['', 'date'],
"montant" => ['', 'string'],
"montant_rub" => ['', 'string'],
"professionnel" => ['', 'string'],
"libelle" => ['', 'string'],
"activite" => ['', 'string'],
]);
// dd($request);
$facturation = Facturation::create([
"details" => $request->details,
"mois" => $request->mois,
"montant" => $request->montant,
"montant_rub" => $request->montant_rub,
"activite_id" => $request->activite,
"ress_enc_id" => $request->libelle,
"professionnel_id" => $request->professionnel,
"created_at" => Carbon::now(),
]);
// dd($membre);
if($facturation){
return back()->with('success', 'Facturation ajoutée avec succès');
}else{
return back()->with('Une erreur a surgi');
}
}
public function facturation_destroy(Request $request){
$facturation = Facturation::find($request->id);
$facturation->delete();
return redirect()->route('admin.facturation')->with('success', 'Facturation supprimée avec succès');
}
public function facturation_encaissement(){
$facturations = Facturation::all();
$suivis = SuiviPayement::all();
$membres = Professionnel::all();
$activites = Activite::all();
$resourencs = RessEnc::all();
return view('admin.encfactu.index', compact('facturations', 'suivis', 'membres', 'activites', 'resourencs'));
}
public function suivi_paiement(){
$suivis = SuiviPayement::all();
$membres = Professionnel::orderBy('nom', 'asc')->get();
$activites = Activite::all();
$resourencs = RessEnc::all();
return view('admin.suivi.index', compact('suivis', 'membres', 'activites', 'resourencs'));
}
public function suivi_paiement_post(Request $request){
$request->validate([
"membre_id" => ['', 'string'],
"type_payement" => ['', 'string'],
"date_payement" => ['', 'date'],
]);
$verif = SuiviPayement::where('professionnel_id', $request->membre_id)->where('activite_id', $request->intitule)->where('ress_enc_id', $request->libelle)->first();
if($verif){
$verif->montant = $verif->montant + $request->montant;
$app = $verif->save();
if($app){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}else{
$suivi = SuiviPayement::create([
"professionnel_id" => $request->membre_id,
"montant" => $request->montant,
"montant_ress_enc" => $request->montant_ress_enc,
"activite_id" => $request->intitule,
"ress_enc_id" => $request->libelle,
"type_payement" => $request->type_payement,
"date_payement" => $request->date_payement,
"created_at" => Carbon::now(),
]);
if($suivi){
return back()->with('success', 'Ajout effectué avec succès');
}else{
return back()->with('error', 'Une erreur a surgi');
}
}
}
public function suivi_paiement_vue(Request $request){
/* $suivi = SuiviPayement::findOrFail($request->id);
$membre = Professionnel::all();
$activites = Activite::all();
$resourencs = RessEnc::all();
return view('admin.suivi.suivi', compact('suivi', 'membre', 'activites', 'resourencs'));*/
}
public function suivi_paiement_destroy(Request $request){
$suivi = SuiviPayement::findOrFail($request->id);
$suivi->delete();
return back()->with('success', 'Encaissement supprimé avec succès');
}
public function membre(){
$membres = Professionnel::all();
$entreprises = Entreprise::all();
$types = TypeProfessionnel::all();
return view('admin.membre.index', compact('membres', 'entreprises', 'types'));
}
public function membre_post(Request $request){
// dd($request);
$request->validate([
"prenom" => ['', 'string'],
"nom" => ['', 'string'],
"email" => ['', 'string', 'email', 'max:255', 'unique:professionnels'],
"telephone" => ['', 'string', 'max:20', 'unique:professionnels'], //required|regex:/^([0-9\s\-\+\(\)]*)$/|min:8
"intitule" => ['', 'string'],
"datenais" => ['', 'date'],
"lieunais" => ['', 'string'],
"photo" => 'image|mimes:jpg,jpeg,png,gif,svg|max:2048',
"domaine_etude" => ['', 'string'],
"niveau_etude" => ['', 'string'],
// "date_adhesion" => ['required', 'date'],
"diplome" => ['', 'string'],
// "civilite" => ['required', 'string'],
//"statut" => ['required', 'string'],
"fonction" => ['', 'string'],
"ville" => ['', 'string'],
"pays" => ['', 'string'],
"adresse" => ['', 'string'],
//"password" => ['required', 'string'],
//"statut_rh" => ['required', 'string'],
]);
$image = $request->photo;
$imageName = rand().'.'.$image->getClientOriginalExtension();
$image->move(public_path('images/membre/profil'), $imageName);
$filename = public_path('images/membre/profil') .'/'. $imageName;
$image = Image::make($filename)->fit(720,720);
$image->save();
// dd($request);
$membre = Professionnel::create([
"prenom" => $request->prenom,
"nom" => $request->nom,
"email" => $request->email,
"telephone" => $request->telephone,
"type_professionnel_id" => $request->intitule,
"datenais" => $request->datenais,
"lieunais" => $request->lieunais,
"domaine_etude" => $request->domaine_etude,
"niveau_etude" => $request->niveau_etude,
//"date_adhesion" => $request->date_adhesion,
"diplome" => $request->diplome,
//"civilite" => $request->civilite,
//"statut" => $request->statut,
"fonction" => $request->fonction,
"domaine_etude" => $request->domaine_etude,
"ville" => $request->ville,
"pays" => $request->pays,
"adresse" => $request->adresse,
"datenais" => $request->datenais,
"lieunais" => $request->lieunais,
"photo" => $imageName,
"password" => Hash::make('user123'),
"entreprise_id" => $request->entreprise,
"created_at" => Carbon::now(),
]);
// dd($membre);
if($membre){
return back()->with('success', 'RH ajouté avec succès');
}else{
return back()->with('Une erreur a surgi');
}
}
public function membre_vue(Request $request){
$types = TypeProfessionnel::all();
$entreprises = Entreprise::all();
$membre = Professionnel::findOrFail($request->id);
$suivis = SuiviPayement::where('professionnel_id', $request->id)->get();
$activites = Activite::all();
$resourencs = RessEnc::all();
return view('admin.membre.membre', compact('membre', 'entreprises', 'types', 'suivis', 'activites', 'resourencs'));
}
public function membre_edit(Request $request){
$request->validate([
"prenom" => ['', 'string'],
"nom" => ['', 'string'],
"email" => ['', 'string', 'email'],
"telephone" => ['', 'string', 'max:20'],
//"date_adhesion" => ['required', 'date'],
"diplome" => ['', 'string'],
//"civilite" => ['required', 'string'],
//"statut" => ['required', 'string'],
"fonction" => ['', 'string'],
"domaine_etude" => ['required'],
"niveau_etude" => ['required'],
"ville" => ['', 'string'],
"pays" => ['', 'string'],
"adresse" => ['', 'string'],
"datenais" => ['', 'string'],
"lieunais" => ['', 'string'],
"photo" => 'required|image|mimes:jpg,jpeg,png,gif,svg|max:2048',
"entreprise" => ['', 'string'],
"intitule" => ['required', 'string'],
]);
$image = $request->photo;
$imageName = rand().'.'.$image->getClientOriginalExtension();
$image->move(public_path('images/membre/profil'), $imageName);
/** $old_image = Professionnel::find($request->id);
if($old_image->photo == 'user.png'){
}else{
if($old_image->photo == 'user.jpg'){
}else{
unlink('../public_html/images/membre/profil/'. $old_image->photo);
}
} ***/
$filename = public_path('images/membre/profil') .'/'. $imageName;
$image = Image::make($filename)->fit(720,720);
$image->save();
try{
$membre = Professionnel::find($request->id);
$membre->nom = $request->nom;
$membre->prenom = $request->prenom;
$membre->email = $request->email;
$membre->telephone = $request->telephone;
//$membre->date_adhesion = $request->date_adhesion;
$membre->diplome = $request->diplome;
// $membre->civilite = $request->civilite;
// $membre->statut = $request->statut;
$membre->fonction = $request->fonction;
$membre->domaine_etude = $request->domaine_etude;
$membre->niveau_etude = $request->niveau_etude;
$membre->ville = $request->ville;
$membre->pays = $request->pays;
$membre->adresse = $request->adresse;
$membre->datenais = $request->datenais;
$membre->lieunais = $request->lieunais;
$membre->photo = $imageName;
$membre->entreprise_id = $request->entreprise;
$membre->type_professionnel_id = $request->intitule;
$membre->updated_at = Carbon::now();
$val = $membre->save();
if($val){
return back()->with('success', 'Modification effectuée avec succès');
}else{
return back()->with('error', 'Modification echouée');
}
}catch (Exception $exception) {
return back()->with('error', $exception->getMessage());
}
}
public function membre_etat(Request $request){
$mem = Professionnel::find($request->id);
if($mem->etat){
$mem->etat = false;
$mem->updated_at = Carbon::now();
$val = $mem->save();
if($val){
return back()->with('success', 'Désactivation effectuée avec succès');
}else{
return back()->with('error', 'Désactivation echouée');
}
}else{
$mem->etat = true;
$mem->updated_at = Carbon::now();
$val = $mem->save();
if($val){
return back()->with('success', 'Activation effectuée avec succès');
}else{
return back()->with('error', 'Activation echouée');
}
}
}
public function membre_supprime(Request $request){
$membre = Professionnel::find($request->id);
$membre->delete();
return redirect()->route('admin.membre')->with('success', 'Compte supprimé avec succès');
}
public function flux(){
$fluxes = Flux::all();
$activites = Activite::all();
$resourdecs = RessDec::all();
return view('admin.flux.index', compact('fluxes', 'activites', 'resourdecs'));
}
public function flux_post(Request $request){
// dd($request);
$request->validate([
"motif" => ['', 'string'],
"montant" => ['', 'string'],
"activite" => ['', 'string'],
"libelle" => ['', 'string'],
"date_flux" => ['', 'date'],
]);
// dd($request);
$flux = Flux::create([
"motif" => $request->motif,
"montant" => $request->montant,
"activite_id" => $request->activite,
"ress_dec_id" => $request->libelle,
"date_flux" => $request->date_flux,
"created_at" => Carbon::now(),
]);
// dd($membre);
if($flux){
return back()->with('success', 'Décaissement ajouté avec succès');
}else{
return back()->with('Une erreur a surgi');
}
}
public function flux_supprime(Request $request){
$flux = Flux::findOrFail($request->id);
$flux->delete();
return back()->with('success', 'Décaissement supprimé avec succès');
}
}
Aperçu de l'interface générée par le code :
Pouvez-vous m'aider à comprendre pourquoi le code en ligne affiche deux colonnes supplémentaires ?
Merci beaucoup pour votre support
très cordialement /-
A voir également:
- Erreur non compréhensible
- Erreur signet non défini - Forum Word
- Iptv erreur de lecture - Forum TV & Vidéo
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo

