eOSP2/app/Http/Controllers/VehiclesController.php

201 lines
7.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\vehicle;
use DB;
use Carbon\Carbon; // formatowanie daty
function formatDate($date)
{
if ($date == null)
return $date;
else
$fdate = Carbon::parse($date);
return $fdate;
}
class VehiclesController extends Controller
{
public function create(){
if(auth()->user() != null && auth()->user()->fireStationID != null ){
$vehicles = DB::table('vehicles')->where("fireStationID", '=', auth()->user()->fireStationID)
->whereNull('deleted_at')->paginate(10);
return view("vehicles", ["vehicles" => $vehicles]);
} else{
return view('vehicles');
}
}
public function addForm(){
if(auth()->user() != null && auth()->user()->fireStationID != null ){
return view('vehiclesAdd');
} else return view("login");
}
public function editForm($id)
{
if(auth()->user() != null && auth()->user()->fireStationID != null )
{
$vehicle = DB::table('vehicles')->where("id", $id)->first();
return view('vehiclesEdit', ["vehicle" => $vehicle]);
}
else
return "Brak dostepu";
}
public function store(){
$this->validate(request(), [
'vehicleName' => 'required|max:45',
'codename' => 'required|max:45',
'brand' => 'max:45',
'registrationNumber' => 'max:15',
'productionYear' => 'digits:4|nullable',
'driveType' => 'max:45',
'chassisType' => 'max:45',
'bodyProducer' => 'max:45',
'crewNumber' => 'numeric|nullable|digits_between:1,2',
'foamAgent' => 'numeric|nullable|digits_between:1,10',
'enginePower' => 'numeric|nullable|digits_between:1,10',
'mass' => 'numeric|nullable|digits_between:1,10',
'chassisNumber' => 'max:45',
'engineNumber' => 'max:45',
'fuelType' => 'max:45',
'chassisPoductionYear' => 'digits:4|nullable',
'fireEnginePumpDescription' => 'max:250',
],
[
'name' => 'nazwa',
'required' => ':attribute jest wymagany(e).',
'numeric' => ':attribute może zawierać tylko cyfry.',
'digits' => ':attribute musi składać się z :digits cyfr.',
'max' => ':attribute musi mieć nie więcej niż :max znaków.',
'digits_between' => ':attribute jest za duży(a)'
]);
$request = request();
$vehicle = vehicle::create([
'fireStationID' => auth()->user()->fireStationID,
'name' => $request-> vehicleName,
'codename' => $request-> codename,
'brand' => $request-> brand,
'registrationNumber' => $request-> registrationNumber,
'productionYear' => $request-> productionYear,
'examExpirationDate' => formatDate($request-> examExpirationDate),
'insuranceExpirationDate' => formatDate($request-> insuranceExpirationDate),
'driveType' => $request-> driveType,
'chassisType' => $request-> chassisType,
'bodyProducer' => $request-> bodyProducer,
'crewNumber' => $request-> crewNumber,
'foamAgent' => $request-> foamAgent,
'enginePower' => $request-> enginePower,
'mass' => $request-> mass,
'chassisNumber' => $request-> chassisNumber,
'engineNumber' => $request-> engineNumber,
'fuelType' => $request-> fuelType,
'chassisPoductionYear' => $request-> chassisPoductionYear,
'entryIntoServiceDate' => formatDate($request-> entryIntoServiceDate),
'fireEnginePumpDescription' => $request-> fireEnginePumpDescription,
'status' => $request-> status
]);
return redirect()->to('/pojazdy');
}
public function update(){
$this->validate(request(), [
'vehicleName' => 'required|max:45',
'codename' => 'required|max:45',
'brand' => 'max:45',
'registrationNumber' => 'max:15',
'productionYear' => 'digits:4|nullable',
'driveType' => 'max:45',
'chassisType' => 'max:45',
'bodyProducer' => 'max:45',
'crewNumber' => 'numeric|nullable|digits_between:1,2',
'foamAgent' => 'numeric|nullable|digits_between:1,10',
'enginePower' => 'numeric|nullable|digits_between:1,10',
'mass' => 'numeric|nullable|digits_between:1,10',
'chassisNumber' => 'max:45',
'engineNumber' => 'max:45',
'fuelType' => 'max:45',
'chassisPoductionYear' => 'digits:4|nullable',
'fireEnginePumpDescription' => 'max:250',
],
[
'name' => 'nazwa',
'required' => ':attribute jest wymagany(e).',
'numeric' => ':attribute może zawierać tylko cyfry.',
'digits' => ':attribute musi składać się z :digits cyfr.',
'max' => ':attribute musi mieć nie więcej niż :max znaków.',
'digits_between' => ':attribute jest za duży(a)'
]);
$request = request();
$vehicle = vehicle::find( $request->vehicleID);
$vehicle-> name = $request-> vehicleName;
$vehicle-> codename = $request-> codename;
$vehicle-> brand = $request-> brand;
$vehicle-> registrationNumber = $request-> registrationNumber;
$vehicle-> productionYear = $request-> productionYear;
$vehicle-> examExpirationDate = formatDate($request-> examExpirationDate);
$vehicle-> insuranceExpirationDate = formatDate($request-> insuranceExpirationDate);
$vehicle-> driveType = $request-> driveType;
$vehicle-> chassisType = $request-> chassisType;
$vehicle-> bodyProducer = $request-> bodyProducer;
$vehicle-> crewNumber = $request-> crewNumber;
$vehicle-> foamAgent = $request-> foamAgent;
$vehicle-> enginePower = $request-> enginePower;
$vehicle-> mass = $request-> mass;
$vehicle-> chassisNumber = $request-> chassisNumber;
$vehicle-> engineNumber = $request-> engineNumber;
$vehicle-> fuelType = $request-> fuelType;
$vehicle-> chassisPoductionYear = $request-> chassisPoductionYear;
$vehicle-> entryIntoServiceDate = formatDate($request-> entryIntoServiceDate);
$vehicle-> fireEnginePumpDescription = $request-> fireEnginePumpDescription;
$vehicle-> status = $request-> status;
$vehicle->save();
return redirect()->to('/pojazdy');;
}
public function destroy($id)
{
vehicle::where('id',$id)->delete();
return response()->json([
'success' => 'Record deleted successfully!'
]);
}
public function activate()
{
$request = request();
$vehicle = vehicle::find( $request-> vehicleID);
$vehicle-> status = 1;
$vehicle->save();
return redirect()->to('/pojazdy');
}
public function deactivate()
{
$request = request();
$vehicle = vehicle::find( $request-> vehicleID);
$vehicle-> status = 0;
$vehicle->save();
return redirect()->to('/pojazdy');
}
}