KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64
User : www-data ( 33)
PHP Version : 8.2.12
Disable Function : NONE
Directory :  /var/www/namascar_app/panel.namascar.app/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/namascar_app/panel.namascar.app/app/Http/Controllers/VehicleController.php
<?php

namespace App\Http\Controllers;

use App\Models\DeliveryCharges;
use App\Models\Incentive;
use App\Models\Maintenance;
use App\Models\RentalVehicleType;
use App\Models\Settings;
use App\Models\VehicleRental;
use App\Models\VehicleType;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Validator;

class VehicleController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }
    public function vehicleType(Request $request)
    {
        if ($request->has('search') && $request->search != '' && $request->selected_search == 'libelle') {
            $search = $request->input('search');
            $types = DB::table('tj_type_vehicule')
                ->where('tj_type_vehicule.libelle', 'LIKE', '%' . $search . '%')
                ->where('tj_type_vehicule.deleted_at', '=', NULL)
                ->paginate(10);
        } elseif ($request->has('search') && $request->search != '' && $request->selected_search == 'prix') {
            $search = $request->input('search');
            $types = DB::table('tj_type_vehicule')
                ->where('tj_type_vehicule.prix', 'LIKE', '%' . $search . '%')
                ->where('tj_type_vehicule.deleted_at', '=', NULL)
                ->paginate(10);
        } else {
            $types = VehicleType::paginate(10);
        }
        return view("vehicle.index")->with("types", $types);
    }
    public function creates()
    {
        $vehicle = VehicleType::all();
        $Settings = Settings::all();
        foreach ($Settings as $data)
            $delivery_distance = $data->delivery_distance;
        return view('vehicle.creates', compact('vehicle'))->with('delivery_distance', $delivery_distance);
    }
    public function store(Request $request)
    {
        if ($request->id > 0) {
            $image_validation = "mimes:jpeg,jpg,png";
        } else {
            $image_validation = "required|mimes:jpeg,jpg,png";
        }
        $validator = Validator::make($request->all(), $rules = [
            'libelle' => 'required',
            'image' => $image_validation,
            'delivery_charge_per_km' => 'required',
            'minimum_delivery_charge' => 'required',
            'minimum_delivery_charge_within_km' => 'required',
            'tour_booking_charge' => 'required',
            'rental_booking_charge' => 'required',
        ], $messages = [
            'libelle.required' => 'The Vehicle Type field is required!',
            'image.required' => 'The Image field is required!',
            'delivery_charge_per_km.required' => 'Delivery Charges per Miles is required!',
            'minimum_delivery_charge.required' => 'Minimum Delivery Charges is required!',
            'minimum_delivery_charge_within_km.required' => 'Minimum Delivery Charges Within Miles is required!',
            'tour_booking_charge.required' => 'Minimum Tour Booking Charges is required!',
            'rental_booking_charge.required' => 'Minimum Rental Booking Charges is required!',
        ]);
        if ($validator->fails()) {
            return redirect()->back()
                ->withErrors($validator)->with(['message' => $messages])
                ->withInput();
        }
        $vehicle = new VehicleType;
        $vehicle->libelle = $request->input('libelle');
        $vehicle->status = !empty($request->input('status')) ? 'Yes' : 'No';
        if ($request->hasfile('image')) {
            $file = $request->file('image');
            $extenstion = $file->getClientOriginalExtension();
            $time = time() . '.' . $extenstion;
            $filename = 'image_vehicleType' . $time;
            $selectedfilename = 'selected_image_vehicleType' . $time;
            $file->move(public_path('assets/images/type_vehicle'), $filename);
            $vehicle->image = $filename;
        }
        $vehicle->creer = date('Y-m-d H:i:s');
        $vehicle->modifier = date('Y-m-d H:i:s');
        $vehicle->updated_at = date('Y-m-d H:i:s');
        $vehicle->save();
        $vedicleType_id = $vehicle->id;
        $delivery = new DeliveryCharges;
        $delivery->delivery_charges_per_km = $request->input('delivery_charge_per_km');
        $delivery->driver_charge_per_km = $request->input('driver_charge_per_km');
        $delivery->minimum_delivery_charges = $request->input('minimum_delivery_charge');
        $delivery->minimum_delivery_charges_within_km = $request->input('minimum_delivery_charge_within_km');
        $delivery->tour_booking_charge = $request->input('tour_booking_charge');
        $delivery->rental_booking_charge = $request->input('rental_booking_charge');
        $delivery->id_vehicle_type = $vedicleType_id;
        $delivery->created = date('Y-m-d H:i:s');
        $delivery->modifier = date('Y-m-d H:i:s');
        $delivery->save();
        return redirect('vehicle/index');
    }
    public function vehicleTypeEdit($id)
    {
        $incentives1 = Incentive::where('id_vehicle_type', $id)->where('rating', 1)->first();
        $incentives2 = Incentive::where('id_vehicle_type', $id)->where('rating', 2)->first();
        $incentives3 = Incentive::where('id_vehicle_type', $id)->where('rating', 3)->first();
        $incentives4 = Incentive::where('id_vehicle_type', $id)->where('rating', 4)->first();
        $incentives5 = Incentive::where('id_vehicle_type', $id)->where('rating', 5)->first();
        

        $m_incentives1 = Maintenance::where('id_vehicle_type', $id)->where('rating', 1)->first();
        $m_incentives2 = Maintenance::where('id_vehicle_type', $id)->where('rating', 2)->first();
        $m_incentives3 = Maintenance::where('id_vehicle_type', $id)->where('rating', 3)->first();
        $m_incentives4 = Maintenance::where('id_vehicle_type', $id)->where('rating', 4)->first();
        $m_incentives5 = Maintenance::where('id_vehicle_type', $id)->where('rating', 5)->first();
       

        $type = VehicleType::find($id);
        $delivery_charges = DeliveryCharges::where('id_vehicle_type', $id)->first();
        $Settings = Settings::all();
        foreach ($Settings as $data)
            $delivery_distance = $data->delivery_distance;
        return view("vehicle.edits")
            ->with("incentives1", $incentives1)
            ->with("incentives2", $incentives2)
            ->with("incentives3", $incentives3)
            ->with("incentives4", $incentives4)
            ->with("incentives5", $incentives5)
            ->with("m_incentives1", $m_incentives1)
            ->with("m_incentives2", $m_incentives2)
            ->with("m_incentives3", $m_incentives3)
            ->with("m_incentives4", $m_incentives4)
            ->with("m_incentives5", $m_incentives5)
            ->with("type", $type)->with('delivery_charges', $delivery_charges)->with('delivery_distance', $delivery_distance);
    }
    public function vehicleTypeUpdate(Request $request, $id)
    {
       
        if ($request->id > 0) {
            $image_validation = "mimes:jpeg,jpg,png";
        } else {
            $image_validation = "required|mimes:jpeg,jpg,png";
        }
        $validator = Validator::make($request->all(), $rules = [
            'libelle' => 'required',
            'image' => $image_validation,
            'delivery_charge_per_km' => 'required',
            'minimum_delivery_charge' => 'required',
            'minimum_delivery_charge_within_km' => 'required',
            'tour_booking_charge' => 'required',
            'rental_booking_charge' => 'required',
        ], $messages = [
            'libelle.required' => 'The Vehicle Type field is required!',
            'image.required' => 'The Image field is required!',
            'delivery_charge_per_km.required' => 'Delivery Charges per Miles is required!',
            'minimum_delivery_charge.required' => 'Minimum Delivery Charges is required!',
            'minimum_delivery_charge_within_km.required' => 'Minimum Delivery Charges Within Miles is required!',
            'rental_booking_charge.required' => 'Minimum Tour Booking Charges is required!',
            'tour_booking_charge.required' => 'Minimum Rental Booking Charges is required!',
        ]);
        if ($validator->fails()) {
            return redirect()->back()
                ->withErrors($validator)->with(['message' => $messages])
                ->withInput();
        }
        $Libelle = $request->input('libelle');
        $status = !empty($request->input('status')) ? 'Yes' : 'No';
        $modifier = $request->updated_at = date('Y-m-d H:i:s');
        $updated_at = $request->updated_at = date('Y-m-d H:i:s');
        $vehicle = VehicleType::find($id);
        if ($vehicle) {
            $vehicle->Libelle = $Libelle;
            $vehicle->status = $status;
            $vehicle->modifier = $modifier;
            $vehicle->updated_at = $updated_at;
            if ($request->hasfile('image')) {
                $destination = public_path('assets/images/type_vehicle/' . $vehicle->image);
                if (File::exists($destination)) {
                    File::delete($destination);
                }
                $file = $request->file('image');
                $extenstion = $file->getClientOriginalExtension();
                $time = time() . '.' . $extenstion;
                $filename = 'image_vehicleType' . $time;
                $selectedfilename = 'selected_image_vehicleType' . $time;
                $file->move(public_path('assets/images/type_vehicle'), $filename);
                $vehicle->selected_image = $selectedfilename;
                $vehicle->image = $filename;
            }
            $vehicle->save();

            $delivery_charge_per_km = $request->input('delivery_charge_per_km');
            $driver_charge_per_km = $request->input('driver_charge_per_km');
            $minimum_delivery_charge = $request->input('minimum_delivery_charge');
            $minimum_delivery_charge_within_km = $request->input('minimum_delivery_charge_within_km');

            $tour_booking_charge = $request->input('tour_booking_charge');
            $rental_booking_charge = $request->input('rental_booking_charge');

            $delivery = DeliveryCharges::where('id_vehicle_type', $id)->first();
            if ($delivery) {
                $delivery->delivery_charges_per_km = $delivery_charge_per_km;
                $delivery->driver_charge_per_km = $driver_charge_per_km;
                $delivery->minimum_delivery_charges = $minimum_delivery_charge;
                $delivery->minimum_delivery_charges_within_km = $minimum_delivery_charge_within_km;
                $delivery->tour_booking_charge = $tour_booking_charge;
                $delivery->rental_booking_charge = $rental_booking_charge;
                $delivery->modifier = date('Y-m-d H:i:s');
            } else {
                $delivery = new DeliveryCharges;
                $delivery->delivery_charges_per_km = $delivery_charge_per_km;
                $delivery->driver_charge_per_km = $driver_charge_per_km;
                $delivery->minimum_delivery_charges = $minimum_delivery_charge;
                $delivery->minimum_delivery_charges_within_km = $minimum_delivery_charge_within_km;
                $delivery->tour_booking_charge = $tour_booking_charge;
                $delivery->rental_booking_charge = $rental_booking_charge;
                $delivery->id_vehicle_type = $id;
                $delivery->created = date('Y-m-d H:i:s');
                $delivery->modifier = date('Y-m-d H:i:s');
            }
            $delivery->save();

            $incentive = new Incentive;
            foreach ($request->rating as $index => $rating) {
                
                $m_inctAr = array(
                    'id_vehicle_type' => $id,
                    'rating' => $rating
                );
                $inctAr = array(
                    'id_vehicle_type' => $id,
                    'rating' => $rating,
                    'percentage' => $request->percentage[$index],
                    'value' => $request->value[$index],
                    'rental_value' => $request->rental_value[$index],
                    'rental_percentage' => $request->rental_percentage[$index]
                );
                
                $incentive->updateOrCreate($m_inctAr, $inctAr);
            }

            $m_incentive = new Maintenance();
            foreach ($request->m_rating as $index => $rating) {
               
                $m_inctAr = array(
                    'id_vehicle_type' => $id,
                    'rating' => $rating
                );
                $inctAr = array(
                    'id_vehicle_type' => $id,
                    'rating' => $rating,
                    'percentage' => $request->m_percentage[$index],
                    'value' => $request->m_value[$index],
                    'rental_m_value' => $request->rental_m_value[$index],
                    'rental_m_percentage' => $request->rental_m_percentage[$index]
                );
                $m_incentive->updateOrCreate($m_inctAr, $inctAr);
            }
            return redirect('vehicle/index');
        }
    }
    public function deleteVehicle($id)
    {
        if ($id != "") {
            $id = json_decode($id);
            if (is_array($id)) {
                for ($i = 0; $i < count($id); $i++) {
                    $user = VehicleType::find($id[$i]);
                    $user->delete();
                }
            } else {
                $user = VehicleType::find($id);
                $user->delete();
            }
        }
        return redirect()->back();
    }
    public function vehicleList(Request $request)
    {
        if ($request->has('search') && $request->search != '' && $request->selected_search == 'vehicle_type') {
            $search = $request->input('search');
            $vehicles = DB::table('tj_vehicule_rental')
                ->join('tj_type_vehicule', 'tj_type_vehicule.id', '=', 'tj_vehicule_rental.id_type_vehicule_rental')
                ->select('tj_vehicule_rental.*', 'tj_type_vehicule.libelle')
                ->where('tj_type_vehicule.libelle', 'LIKE', '%' . $search . '%')
                ->where('tj_vehicule_rental.deleted_at', '=', NULL)
                ->paginate(10);
            $types = VehicleType::all('libelle', 'id');
        } else if ($request->has('search') && $request->search != '' && $request->selected_search == 'number') {
            $search = $request->input('search');
            $vehicles = DB::table('tj_vehicule_rental')
                ->join('tj_type_vehicule', 'tj_type_vehicule.id', '=', 'tj_vehicule_rental.id_type_vehicule_rental')
                ->select('tj_vehicule_rental.*', 'tj_type_vehicule.libelle')
                ->where('tj_vehicule_rental.nombre', 'LIKE', '%' . $search . '%')
                ->where('tj_vehicule_rental.deleted_at', '=', NULL)
                ->paginate(10);
            $types = VehicleType::all('libelle', 'id');
        } else {
            $vehicles = DB::table('tj_vehicule_rental')
                ->join('tj_type_vehicule', 'tj_type_vehicule.id', '=', 'tj_vehicule_rental.id_type_vehicule_rental')
                ->select('tj_vehicule_rental.*', 'tj_type_vehicule.libelle')
                ->where('tj_vehicule_rental.deleted_at', '=', NULL)
                ->paginate(10);
            $types = RentalVehicleType::all('libelle', 'id');
        }
        return view("vehicle.vehicle")->with("vehicles", $vehicles)->with('types', $types);
    }
    public function create(Request $request)
    {
        if ($request->id > 0) {
            $image_validation = "mimes:jpeg,jpg,png";
        } else {
            $image_validation = "required|mimes:jpeg,jpg,png";
        }
        $validator = Validator::make($request->all(), $rules = [
            'nombre' => 'required',
            'prix' => 'required',
            'nb_place' => 'required',
            'id_type_vehicule_rental' => 'required',
            'image' => $image_validation,
        ], $messages = [
            'nombre.required' => 'The Number of Vehicle field is required!',
            'prix.required' => 'The price field is required!',
            'nb_place.required' => 'The Number of Place field is required!',
            'id_type_vehicule_rental.required' => 'The Vehicle Type is required!',
            'image.required' => 'The Image field is required!',
        ]);
        if ($validator->fails()) {
            return redirect()->back()
                ->withErrors($validator)->with(['message' => $messages])
                ->withInput();
        }
        $rental = new VehicleRental;
        $rental->id_type_vehicule_rental = $request->input('id_type_vehicule_rental');
        $rental->prix = $request->input('prix');
        $rental->nombre = $request->input('nombre');
        $rental->nb_place = $request->input('nb_place');
        $rental->statut = $request->input('statut');
        if ($request->hasfile('image')) {
            $file = $request->file('image');
            $extenstion = $file->getClientOriginalExtension();
            $time = time() . '.' . $extenstion;
            $filename = 'image_vehicleType' . $time;
            $selectedfilename = 'selected_image_vehicleType' . $time;
            $file->move(public_path('assets/images/vehicule'), $filename);
            $rental->image = $filename;
        }
        $rental->creer = date('Y-m-d H:i:s');
        $rental->modifier = date('Y-m-d H:i:s');
        $rental->save();
        return redirect('vehicle/vehicle');
    }
    public function vehiclecreates()
    {
        $rental = VehicleRental::all();
        $vehicle = RentalVehicleType::all();
        return view('vehicle.vehicle_create', compact('rental', 'vehicle'));
    }
    public function edit($id)
    {
        $types = RentalVehicleType::all();
        $vehicle = VehicleRental::where('id', $id)->first();
        return view('vehicle.vehicle_edit', compact('vehicle', 'types'));
    }
    public function update(Request $request, $id)
    {
        if ($request->id > 0) {
            $image_validation = "mimes:jpeg,jpg,png";
        } else {
            $image_validation = "required|mimes:jpeg,jpg,png";
        }
        $validator = Validator::make($request->all(), $rules = [
            'nombre' => 'required',
            'prix' => 'required',
            'nb_place' => 'required',
            'id_type_vehicule_rental' => 'required',
            'image' => $image_validation,
        ], $messages = [
            'nombre.required' => 'The Number of Vehicle field is required!',
            'prix.required' => 'The price field is required!',
            'nb_place.required' => 'The Number of Place field is required!',
            'id_type_vehicule_rental.required' => 'The Vehicle Type is required!',
            'image.required' => 'The Image field is required!',
        ]);
        if ($validator->fails()) {
            return redirect()->back()
                ->withErrors($validator)->with(['message' => $messages])
                ->withInput();
        }
        $type = $request->input('type');
        $prix = $request->input('prix');
        $nb_place = $request->input('nb_place');
        $nombre = $request->input('nombre');
        $modifier = $request->modifier = date('Y-m-d H:i:s');
        $vehicle = VehicleRental::find($id);
        if ($vehicle) {
            $vehicle->id_type_vehicule_rental = $type;
            $vehicle->prix = $prix;
            $vehicle->nb_place = $nb_place;
            $vehicle->nombre = $nombre;
            $vehicle->modifier = $modifier;
            if ($request->hasfile('image')) {
                $destination = public_path('assets/images/vehicule/' . $vehicle->image);
                if (File::exists($destination)) {
                    File::delete($destination);
                }
                $file = $request->file('image');
                $extenstion = $file->getClientOriginalExtension();
                $time = time() . '.' . $extenstion;
                $filename = 'image_vehicle_Rental' . $time;
                $file->move(public_path('assets/images/vehicule'), $filename);
                $vehicle->image = $filename;
            }
            $vehicle->save();
            return redirect('vehicle/vehicle');
        }
    }
    public function delete($id)
    {
        if ($id != "") {
            $id = json_decode($id);
            if (is_array($id)) {
                for ($i = 0; $i < count($id); $i++) {
                    $user = VehicleRental::find($id[$i]);
                    $user->delete();
                }
            } else {
                $user = VehicleRental::find($id);
                $user->delete();
            }
        }
        return redirect()->back();
    }
    public function toggalSwitch(Request $request)
    {
        $ischeck = $request->input('ischeck');
        $id = $request->input('id');
        $vehicle = VehicleRental::find($id);
        if ($ischeck == "true") {
            $vehicle->statut = 'yes';
        } else {
            $vehicle->statut = 'no';
        }
        $vehicle->save();
    }
    public function vehicleTypeSwitch(Request $request)
    {
        $ischeck = $request->input('ischeck');
        $id = $request->input('id');
        $vehicle = VehicleType::find($id);
        if ($ischeck == "true") {
            $vehicle->status = 'Yes';
        } else {
            $vehicle->status = 'No';
        }
        $vehicle->save();
    }
}

Anon7 - 2021