diff --git a/app/Http/Controllers/EquipmentController.php b/app/Http/Controllers/EquipmentController.php new file mode 100644 index 0000000..871e02e --- /dev/null +++ b/app/Http/Controllers/EquipmentController.php @@ -0,0 +1,95 @@ +user() != null && auth()->user()->fireStationID != null ){ + $equipment = DB::table('equipment')->where("fireStationID", '=', auth()->user()->fireStationID) + ->whereNull('deleted_at')->get(); + return view("equipment", ["equipment" => $equipment]); + } else{ + return view('equipment'); + } + + } + + public function addForm(){ + if(auth()->user() != null && auth()->user()->fireStationID != null ){ + return view('equipmentAdd'); + + } else return view("login"); + } + + public function editForm($id) + { + if(auth()->user() != null && auth()->user()->fireStationID != null ) + { + + $equipment = DB::table('equipment')->where("id", $id)->first(); + + return view('equipmentEdit', ["equipment" => $equipment]); + } + else + return view("login"); + + } + + public function store(){ + $this->validate(request(), [ + + 'name' => 'required', + 'amount' => 'required|numeric', + ], + [ + 'required' => ':attribute jest wymagany(a).', + 'numeric' => ':attribute powinna zawierać tylko cyfry.', + ]); + + + $request = request(); + $equipment = equipment::create([ + 'fireStationID' => auth()->user()->fireStationID, + 'name' => $request-> name, + 'amount' => $request-> amount, + 'parameter' => $request-> parameter, + ]); + + return redirect()->to('/sprzet'); + } + + public function update(){ + $this->validate(request(), [ + + 'name' => 'required', + 'amount' => 'required|numeric', + ], + [ + 'required' => ':attribute jest wymagany(a).', + 'numeric' => ':attribute powinna zawierać tylko cyfry.' + ]); + + + $request = request(); + $equipment = equipment::find( $request->equipmentID); + $equipment-> name = $request-> name; + $equipment-> amount = $request-> amount; + $equipment-> parameter = $request-> parameter; + $equipment->save(); + + return redirect()->to('/sprzet'); + } + + public function destroy($id) + { + equipment::where('id',$id)->delete(); + + return redirect()->to('/sprzet'); + } +} diff --git a/app/Http/Controllers/VehiclesController.php b/app/Http/Controllers/VehiclesController.php index 7bbdf9d..276a5c8 100644 --- a/app/Http/Controllers/VehiclesController.php +++ b/app/Http/Controllers/VehiclesController.php @@ -9,8 +9,11 @@ use Carbon\Carbon; // formatowanie daty function formatDate($date) { - $fdate = Carbon::parse($date); - return $fdate; + if ($date == null) + return $date; + else + $fdate = Carbon::parse($date); + return $fdate; } class VehiclesController extends Controller @@ -19,7 +22,7 @@ class VehiclesController extends Controller if(auth()->user() != null && auth()->user()->fireStationID != null ){ $vehicles = DB::table('vehicles')->where("fireStationID", '=', auth()->user()->fireStationID) - ->get(); + ->whereNull('deleted_at')->get(); return view("vehicles", ["vehicles" => $vehicles]); } else{ return view('vehicles'); @@ -30,7 +33,6 @@ class VehiclesController extends Controller public function addForm(){ if(auth()->user() != null && auth()->user()->fireStationID != null ){ return view('vehiclesAdd'); - } else return view("login"); } @@ -38,32 +40,25 @@ class VehiclesController extends Controller { if(auth()->user() != null && auth()->user()->fireStationID != null ) { - //$userFireStation = auth()->user()->fireStationID; - //$fireFighterFireStation = DB::table('users')->where("id", $id)->value('fireStationID'); - //$fireStationCreatorId = DB::table('fireStations')->where("id", $userFireStation)->value('creatorID'); - - $vehicle = DB::table('vehicles')->where("id", $id)->first(); + $vehicle = DB::table('vehicles')->where("id", $id)->first(); return view('vehiclesEdit', ["vehicle" => $vehicle]); - } + } else - return "Brak dostepu"; - + return "Brak dostepu"; } - - public function store(){ $this->validate(request(), [ 'name' => 'required', - 'productionYear' => 'digits:4', - 'foamAgent' => 'numeric', - 'enginePower' => 'numeric', - 'crewNumber' => 'numeric', - 'mass' => 'numeric', - 'chassisPoductionYear' => 'numeric', - //dokończyć! Wypytać Adriana które mają być required + 'codename' => 'required', + 'productionYear' => 'digits:4|nullable', + 'foamAgent' => 'numeric|nullable', + 'enginePower' => 'numeric|nullable', + 'crewNumber' => 'numeric|nullable', + 'mass' => 'numeric|nullable', + 'chassisPoductionYear' => 'numeric|nullable', ], [ 'required' => ':attribute jest wymagany(e).', @@ -105,13 +100,13 @@ class VehiclesController extends Controller $this->validate(request(), [ 'name' => 'required', - 'productionYear' => 'digits:4', - 'foamAgent' => 'numeric', - 'enginePower' => 'numeric', - 'crewNumber' => 'numeric', - 'mass' => 'numeric', - 'chassisPoductionYear' => 'numeric', - //dokończyć! Wypytać Adriana które mają być required + 'codename' => 'required', + 'productionYear' => 'digits:4|nullable', + 'foamAgent' => 'numeric|nullable', + 'enginePower' => 'numeric|nullable', + 'crewNumber' => 'numeric|nullable', + 'mass' => 'numeric|nullable', + 'chassisPoductionYear' => 'numeric|nullable', ], [ 'required' => ':attribute jest wymagany(e).', @@ -144,6 +139,12 @@ class VehiclesController extends Controller $vehicle-> fireEnginePumpDescription = $request-> fireEnginePumpDescription; $vehicle->save(); - return VehiclesController::create(); + return redirect()->to('/pojazdy');; + } + + public function destroy($id) + { + vehicle::where('id',$id)->delete(); + return redirect()->to('/pojazdy'); } } diff --git a/app/Http/Controllers/fireStationController.php b/app/Http/Controllers/fireStationController.php index a97e451..cc5b8d2 100644 --- a/app/Http/Controllers/fireStationController.php +++ b/app/Http/Controllers/fireStationController.php @@ -15,14 +15,27 @@ class fireStationController extends Controller return view('unit', ["fireStation" => $fireStation]); } else{ $voivodeships = DB::table('wojewodztwa')->pluck("name","id"); - return view('unit',compact('voivodeships')); - //return view('unit'); + return view('unit',compact('voivodeships')); } } + + public function editForm() + { + if(auth()->user() != null && auth()->user()->fireStationID != null ) + { + $id = auth()->user()->fireStationID; + $fireStation = DB::table('firestations')->where("id", $id)->first(); + $voivodeships = DB::table('wojewodztwa')->pluck("name","id"); + return view('fireStationEdit', ["fireStation" => $fireStation], compact('voivodeships')); + } + else + return "Brak dostępu"; + } + public function store() { $this->validate(request(),[ - 'unitName' => 'required|min:3|max:45', + 'fireStationName' => 'required|min:3|max:45', 'number' => 'required|numeric', 'voivodeship' => 'required', 'county' => 'required', @@ -57,7 +70,7 @@ class fireStationController extends Controller $community = DB::table('gminy')->select('name')->where('id', $request -> community)->first(); $jednostka = fireStation::create([ - 'name' => $request -> unitName, + 'name' => $request -> fireStationName, 'number' => $request -> number, 'voivodeship' => $voivodeship -> name, 'county' => $county -> name, @@ -81,4 +94,60 @@ class fireStationController extends Controller return redirect()->to('/jednostka'); } + public function update(){ + $this->validate(request(),[ + 'fireStationName' => 'required|min:3|max:45', + 'number' => 'required|numeric', + 'voivodeship' => 'required', + 'county' => 'required', + 'community' => 'required', + 'postOffice' => 'required|min:3|max:45', + 'zipCode' => 'required|digits:5', + 'latitude' => ['required', 'regex:/^[-]?(([0-8]?[0-9])\.(\d+))|(90(\.0+)?)$/'], + 'longitude' => ['required', 'regex:/^[-]?((((1[0-7][0-9])|([0-9]?[0-9]))\.(\d+))|180(\.0+)?)$/'], + 'address' => 'required|min:3|max:45', + 'KRS' => 'required|digits:10', + 'NIP' => 'required|digits:10', + 'phoneNumber' => 'required|digits:9', + 'email' => 'required|email|unique:fireStations,email,'.auth()->user()->fireStationID, //wymagaj unikalnego adresu email ale pozwól na zachowanie starego adresu + ], + [ + 'required' => ':attribute jest wymagany(e).', + 'min' => ':attribute musi mieć przynajmniej :min znaki.', + 'max' => ':attribute musi mieć nie więcej niż :max znaków.', + 'numeric' => ':attribute może zawierać tylko cyfry.', + 'digits' => ':attribute musi składać się z :digits cyfr.', + 'unique' =>':attribute jest już zajęty.', + 'email' => 'Niepoprawny adres e-mail.', + 'latitude.regex' =>':attribute ma zakres od -90.0 do 90.0', + 'longitude.regex' =>':attribute ma zakres od -180.0 do 180.0' + ]); + + + $request = request(); + + $voivodeship = DB::table('wojewodztwa')->select('name')->where('id', $request -> voivodeship)->first(); + $county = DB::table('powiaty')->select('name')->where('id', $request -> county)->first(); + $community = DB::table('gminy')->select('name')->where('id', $request -> community)->first(); + + $fireStation = fireStation::find($request->fireStationID); + $fireStation-> name = $request-> fireStationName; + $fireStation-> number = $request-> number; + $fireStation-> voivodeship = $voivodeship-> name; + $fireStation-> county = $county-> name; + $fireStation-> community = $community-> name; + $fireStation-> postOffice = $request-> postOffice; + $fireStation-> zipCode = $request-> zipCode; + $fireStation-> address = $request-> address; + $fireStation-> latitude = $request-> latitude; + $fireStation-> longitude = $request-> longitude; + $fireStation-> KRS = $request-> KRS; + $fireStation-> NIP = $request-> NIP; + $fireStation-> phoneNumber = $request-> phoneNumber; + $fireStation-> email = $request-> email; + $fireStation-> changingID = auth()->user()->id; + $fireStation->save(); + + return redirect()->to('/jednostka');; + } } diff --git a/app/equipment.php b/app/equipment.php new file mode 100644 index 0000000..3f01808 --- /dev/null +++ b/app/equipment.php @@ -0,0 +1,18 @@ +integer('fireStationID'); $table->string('name', 45); $table->string('codename', 45); - $table->string('brand',45); - $table->string('registrationNumber', 15); - $table->integer('productionYear'); - $table->date('examExpirationDate'); //Data ważności przegladu - $table->date('insuranceExpirationDate'); - $table->string('driveType',45); //układ napędowy - $table->string('chassisType',45); //typ podwozia - $table->string('bodyProducer',45); //producent nadwozia - $table->integer('crewNumber'); - $table->integer('foamAgent'); //Ilość środka pianotwórczego w litrach - $table->integer('enginePower'); //Moc silnika w kW - $table->integer('mass'); //Masa całkowita pojazdu - $table->string('chassisNumber'); - $table->string('engineNumber'); - $table->string('fuelType',45); - $table->integer('chassisPoductionYear'); - $table->date('entryIntoServiceDate'); - $table->string('fireEnginePumpDescription');// Opis autopompy + $table->string('brand',45)->nullable(); + $table->string('registrationNumber', 15)->nullable(); + $table->integer('productionYear')->nullable(); + $table->date('examExpirationDate')->nullable(); //Data ważności przegladu + $table->date('insuranceExpirationDate')->nullable(); + $table->string('driveType',45)->nullable(); //układ napędowy + $table->string('chassisType',45)->nullable(); //typ podwozia + $table->string('bodyProducer',45)->nullable(); //producent nadwozia + $table->integer('crewNumber')->nullable(); + $table->integer('foamAgent')->nullable(); //Ilość środka pianotwórczego w litrach + $table->integer('enginePower')->nullable(); //Moc silnika w kW + $table->integer('mass')->nullable(); //Masa całkowita pojazdu + $table->string('chassisNumber')->nullable(); + $table->string('engineNumber')->nullable(); + $table->string('fuelType',45)->nullable(); + $table->integer('chassisPoductionYear')->nullable(); + $table->date('entryIntoServiceDate')->nullable(); + $table->string('fireEnginePumpDescription')->nullable();// Opis autopompy + $table->softDeletes(); $table->timestamps(); }); } diff --git a/database/migrations/2019_12_05_185219_create_equipment_table.php b/database/migrations/2019_12_05_185219_create_equipment_table.php new file mode 100644 index 0000000..46ee0d0 --- /dev/null +++ b/database/migrations/2019_12_05_185219_create_equipment_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->integer('fireStationID'); + $table->string('name', 45); + $table->integer('amount'); + $table->string('parameter', 45)->nullable(); + $table->softDeletes(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('equipment'); + } +} diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php index 2369461..63ecebe 100644 --- a/resources/lang/en/validation.php +++ b/resources/lang/en/validation.php @@ -161,6 +161,7 @@ return [ 'unitName' => 'nazwa jednostki', 'longitude' => 'długość geograficzna', 'latitude' => 'szerokość geograficzna', + 'amount' => 'ilość' ], diff --git a/resources/views/depot.blade.php b/resources/views/depot.blade.php index 82fb773..2b675af 100644 --- a/resources/views/depot.blade.php +++ b/resources/views/depot.blade.php @@ -3,14 +3,16 @@ @section('left-menu') @parent @stop @section('center-area') @parent Strona w budowie -

Zawarte będą tutaj informację o umundurowaniu oraz sprzęcie jaki jest na wyposarzeniu strażnicy oraz informacje gdzie umundurowanie się znajduje(druhowie mundury koszarowe oraz galowe mają w w domach, informacja ta pozwoli na sprawdzenie np jakie są braki w umundurowaniu)

+

Zawarte będą tutaj informacje o umundurowaniu oraz sprzęcie jaki jest na wyposażeniu strażnicy oraz informacje gdzie umundurowanie się znajduje(druhowie mundury koszarowe oraz galowe mają w w domach, informacja ta pozwoli na sprawdzenie np jakie są braki w umundurowaniu).

+ + @stop \ No newline at end of file diff --git a/resources/views/equipment.blade.php b/resources/views/equipment.blade.php new file mode 100644 index 0000000..3fdb490 --- /dev/null +++ b/resources/views/equipment.blade.php @@ -0,0 +1,47 @@ +@extends('layout.app') + +@section('left-menu') + @parent + +@stop + +@section('center-area') + @parent + + @if( auth()->check()) + @if( auth()->user()->fireStationID == NULL) + Jednostka nie istnieje + @else +

+ + + + + + @foreach($equipment as $item) + + + + + + + + + @endforeach +
NazwaIlośćParam. charakterystyczny
{{ $item->name }}{{ $item->amount }}{{ $item->parameter }} + {{ csrf_field() }} + @method('DELETE') + +
+

+ + @endif + @else + Brak autoryzacji + @endif + +@stop \ No newline at end of file diff --git a/resources/views/equipmentAdd.blade.php b/resources/views/equipmentAdd.blade.php new file mode 100644 index 0000000..fb79b7e --- /dev/null +++ b/resources/views/equipmentAdd.blade.php @@ -0,0 +1,36 @@ +@extends('layout.app') + +@section('left-menu') + @parent + +@stop + +@section('center-area') + @parent +
+ {{ csrf_field() }} +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+ @include('inc.formerrors') +
+@stop diff --git a/resources/views/equipmentEdit.blade.php b/resources/views/equipmentEdit.blade.php new file mode 100644 index 0000000..123f5ba --- /dev/null +++ b/resources/views/equipmentEdit.blade.php @@ -0,0 +1,38 @@ +@extends('layout.app') + +@section('left-menu') + @parent + +@stop + +@section('center-area') + @parent +
+ {{ csrf_field() }} + + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+ @include('inc.formerrors') +
+@stop \ No newline at end of file diff --git a/resources/views/fireStationEdit.blade.php b/resources/views/fireStationEdit.blade.php new file mode 100644 index 0000000..1359aca --- /dev/null +++ b/resources/views/fireStationEdit.blade.php @@ -0,0 +1,165 @@ +@extends('layout.app') + +@section('center-area') +@parent + + + Edycja jednostki straży pożarnej + + + + + + +

Edytuj jednostkę

+
+ {{ csrf_field() }} + +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + + +
+ +
+ @include('inc.formerrors') +
+ + +@stop diff --git a/resources/views/inc/addFireStation.blade.php b/resources/views/inc/addFireStation.blade.php index ce73335..1d04f60 100644 --- a/resources/views/inc/addFireStation.blade.php +++ b/resources/views/inc/addFireStation.blade.php @@ -4,7 +4,7 @@ @parent - Laravel Dependent Dropdown Tutorial With Example + Dodawanie jednostki straży pożarnej @@ -16,7 +16,7 @@ {{ csrf_field() }}
- +
diff --git a/resources/views/unit.blade.php b/resources/views/unit.blade.php index 4e13225..f3db799 100644 --- a/resources/views/unit.blade.php +++ b/resources/views/unit.blade.php @@ -4,7 +4,7 @@ @parent @stop diff --git a/resources/views/vehicles.blade.php b/resources/views/vehicles.blade.php index ca4d1c8..e8743a7 100644 --- a/resources/views/vehicles.blade.php +++ b/resources/views/vehicles.blade.php @@ -36,6 +36,7 @@ $lp = $lp + 1 @endphp +
{{ $lp }} {{ $vehicle->name }} {{ $vehicle->brand }} @@ -46,6 +47,11 @@ {{ $vehicle->examExpirationDate }} {{ $vehicle->insuranceExpirationDate }} + + {{ csrf_field() }} + @method('DELETE') + +
@endforeach diff --git a/routes/web.php b/routes/web.php index e431555..fcc0fab 100644 --- a/routes/web.php +++ b/routes/web.php @@ -54,6 +54,8 @@ Route::post('/strazacy/edit', 'fireFightersController@update'); Route::get('/jednostka', 'fireStationController@create'); Route::post('/jednostka', 'fireStationController@store'); +Route::get('/jednostka/edit', 'fireStationController@editForm'); +Route::post('/jednostka/edit', 'fireStationController@update'); Route::get('/jednostka/getcounties/{id}','DataController@getCounties'); Route::get('/jednostka/getcommunities/{id}','DataController@getCommunities'); @@ -63,7 +65,14 @@ Route::get('/pojazdy/add', 'VehiclesController@addForm'); Route::post('/pojazdy', 'VehiclesController@store'); Route::get('/pojazdy/edit/{id}', 'VehiclesController@editForm'); Route::post('/pojazdy/edit', 'VehiclesController@update'); +Route::resource('vehicles', 'VehiclesController'); +Route::get('/sprzet', 'EquipmentController@create'); +Route::get('/sprzet/add', 'EquipmentController@addForm'); +Route::post('/sprzet', 'EquipmentController@store'); +Route::get('/sprzet/edit/{id}', 'EquipmentController@editForm'); +Route::post('/sprzet/edit', 'EquipmentController@update'); +Route::resource('equipment', 'EquipmentController'); Route::get('register/verify/{confirmationCode}', [ 'as' => 'confirmation_path',