1
0
forked from s421507/eOSP2
eOSP2/app/Http/Controllers/trainingsController.php

180 lines
5.8 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\equipment;
use App\trainings;
use App\trainingsFirefighters;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Validator;
class trainingsController extends Controller
{
public function create(){
if(auth()->user() != null && auth()->user()->fireStationID != null ){
$trainings = DB::table('trainings')->where("fireStationID", '=', auth()->user()->fireStationID)
->whereNull('deleted_at')
->paginate(10);
$fireFighters = array();
foreach($trainings as $training) {
$id = $training->id;
$fireFighters[$id] = DB::table('users')->where("fireStationID", "=", auth()->user()->fireStationID)
->leftJoin('trainingsFirefighters', function ($join) use ($id) {
$join->on('users.id', '=', 'trainingsFirefighters.firefighterID');
$join->where('trainingsFirefighters.trainingID', '=', $id);
})
->select('trainingsFirefighters.*', 'users.name', 'users.surname', 'users.id as userID')
->get();
}
return View::make("trainings")->with(compact( "trainings", "fireFighters"));
} else{
return view('trainings');
}
}
public function store(){
$this->validate(request(), [
'name' => 'required|max:45',
],
[
'required' => 'Nazwa jest wymagana.',
'max' => 'Nazwa musi mieć nie więcej niż :max znaków.',
]);
$request = request();
$equipment = trainings::create([
'fireStationID' => auth()->user()->fireStationID,
'trainingName' => $request-> name,
]);
return redirect()->to('/szkolenia');
}
public function addForm(){
}
public function addTrainingsFireFighters($id){
if(auth()->user() != null && auth()->user()->fireStationID != null ){
$fireFighters = DB::table('users')->where("fireStationID", "=", auth()->user()->fireStationID )
->leftJoin('trainingsFirefighters', function ($join) use($id){
$join->on('users.id', '=', 'trainingsFirefighters.firefighterID');
$join->where('trainingsFirefighters.trainingID', '=', $id);
})
->select('trainingsFirefighters.*', 'users.name', 'users.surname', 'users.id as userID')
->paginate(10);
$training = DB::table('trainings')->where("id", '=', $id)
->whereNull('deleted_at')->first();
return View::make("trainingsAddFireFighters")->with(compact( "training", "fireFighters"));
} else{
return view('trainings');
}
}
public function ajaxRequest(Request $request){
$validator = Validator::make($request->all(), [
'firefighterID' => 'required',
'trainingID' => 'required',
'dateOfComplete' => 'required|date',
'dateOfExpiry' => 'required|date',
],
[
'required' => ':attribute jest wymagany(a).',
'dateOfComplete.required' => 'Data wystawienia szkolenia/badania jest wymagana.',
'dateOfExpiry.required' => 'Data ważności szkolenia/badania jest wymagana.'
]);
// WALIDACJA
if ($validator->fails()) {
if($request->ajax())
{
return response()->json(array(
'success' => false,
'message' => 'There are incorect values in the form!',
'errors' => $validator->getMessageBag()->toArray()
), 422);
}
$this->throwValidationException(
$request, $validator
);
// WYKONANIE ZAPYTAŃ PO POPRAWNEJ WALIDACJI
} else{
$trainingFirefighter = trainingsFirefighters::where([
['firefighterID', '=', $request->firefighterID],
['trainingID', '=', $request-> trainingID]
])->first();
if($trainingFirefighter == null){
// CREATE
$trainings = trainingsFirefighters::create([
'firefighterID' => $request-> firefighterID,
'trainingID' => $request-> trainingID,
'dateOfComplete' => $request-> dateOfComplete,
'dateOfExpiry' => $request-> dateOfExpiry,
'lifetime' => 1,
]);
}else{
// UPDATE
$trainingFirefighter->update([
'dateOfComplete' => $request-> dateOfComplete,
'dateOfExpiry' => $request-> dateOfExpiry,
]);
}
}
}
public function deleteFireFighterTrainings(Request $request){
$validator = Validator::make($request->all(), [
'firefighterID' => 'required',
'trainingID' => 'required',
]);
trainingsFirefighters::where([
['fireFighterID', '=', $request->firefighterID],
['trainingID', '=', $request->trainingID],
])->delete();
}
public function update(){
}
public function destroy($id)
{
trainings::find($id)->delete($id);
return response()->json([
'success' => 'Record deleted successfully!'
]);
}
public function trainingsRename(Request $request){
$validator = Validator::make($request->all(), [
'trainingID' => 'required',
'trainingName' => 'required',
]);
trainings::where('id', '=', $request->trainingID)
->update(['trainingName' => $request->trainingName]);
}
}