200 lines
6.6 KiB
PHP
200 lines
6.6 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()->accessLevel() == 50 ){ //prezes,naczelnik
|
|
$trainings = DB::table('trainings')->where("fireStationID", '=', auth()->user()->fireStationID)->orWhere("fireStationID", '=', 0)
|
|
->whereNull('deleted_at')
|
|
->paginate(10);
|
|
|
|
|
|
|
|
$fireFighters = array();
|
|
$howMuch = array();
|
|
foreach($trainings as $training) {
|
|
$id = $training->id;
|
|
$howMuch[$id] = DB::table('trainingsFirefighters')->where('trainingID', '=', $id)->count();
|
|
$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", "howMuch"));
|
|
} else{
|
|
return redirect()->to('/strazacy');
|
|
}
|
|
}
|
|
|
|
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()->accessLevel() == 50 ){ //prezes,naczelnik
|
|
$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 redirect()->to('/strazacy');
|
|
}
|
|
}
|
|
|
|
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]);
|
|
}
|
|
|
|
public function createAllTrainingsPDF(){
|
|
if (auth()->user() != null && auth()->user()->fireStationID != null) {
|
|
$request = request();
|
|
$test = new documentCreators();
|
|
$test->createAllTrainingsPDF($request->fireStationID);
|
|
}
|
|
}
|
|
|
|
public function createSingleTrainingPDF(){
|
|
if (auth()->user() != null && auth()->user()->fireStationID != null) {
|
|
$request = request();
|
|
$test = new documentCreators();
|
|
$test->createSingleTrainingPDF($request->trainingID);
|
|
}
|
|
}
|
|
}
|