IMMREX7
<?php
namespace App\Http\Controllers\School\Exam;
use Illuminate\Http\Request;
use App\Http\Controllers\School\SchoolController;
use DB;
use Auth;
use Session;
class ExamImportController extends SchoolController {
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index() {
$imports = DB::table('excel_templates')->join('exam_types', 'excel_templates.idExamType', '=', 'exam_types.idExamType')
->select('excel_templates.*', 'exam_types.typeName')
->where('excel_templates.idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idExcel', 'desc')->get();
$types = ['' => '--Select--'] + \App\ExamType::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idExamType', 'desc')->get()->pluck('typeName', 'idExamType')->toArray();
$classes = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idClass')->get()->pluck('className', 'className')->toArray();
$section = DB::table('sections')->join('classes', 'sections.idClass', '=', 'classes.idClass')
->select('sections.idSection', 'classes.idClass',DB::raw('CONCAT(classes.className," - ",sections.sectionName) as sectionsName'))
->where('sections.idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('classes.idClass', 'asc')->get()->pluck('sectionsName', 'sectionsName')->toArray();;
return view('schools.exams.exam_import', compact('imports', 'classes', 'types','section'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create() {
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request) {
$rules = [
'idExamType' => 'required',
'idSection' => 'required',
'fileName' => 'required'
];
if(is_array($request->classes)){
if (count($request->classes) == 0) {
$rules += ['idClass' => 'required'];
}
}else if($request->classes == null){
$rules += ['idClass' => 'required'];
}
$messages = [
'idClass.required' => 'Class must be selected',
];
$this->validate($request, $rules, $messages);
$template = new \App\ExcelTemplate();
$template->idSchool = Auth::guard('school')->user()->idSchool;
$template->idFinancialYear = Session::get('idFinancialYear');
$className='';
foreach ($request->idClass as $value) {
if ($className == '') {
$className=$value;
}else
$className=$className.' , '.$value;
}
$template->idClass = $className;
$template->fileName = $request->fileName;
$template->idExamType = $request->idExamType;
$sectionName='';
foreach ($request->idSection as $value) {
if ($sectionName == ''){
$sectionName=$value;
}else
$sectionName=$sectionName.' , '.$value;
}
$template->idSection = $sectionName;
DB::beginTransaction();
$template->save();
if ($request->has('image')) {
$file =$request->file('image');
$nw = 'excel_' . $template['idExcel'] . '.' . $file->getClientOriginalExtension();
$file->storeAs('public/schools/' . Auth::guard('school')->user()->idSchool . '/excels/', $nw);
$template->imageFile = $nw;
$template->update();
}
DB::commit();
flash('Excel has been saved successfully.');
if ($request->ajax()) {
return response()->json(['success' => "SUCCESS"], 200, ['app-status' => 'success']);
}
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id) {
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id) {
$imports = DB::table('excel_templates')->join('exam_types', 'excel_templates.idExamType', '=', 'exam_types.idExamType')
->select('excel_templates.*', 'exam_types.typeName')
->where('excel_templates.idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idExcel', 'desc')->get();
$types = ['' => '--Select--'] + \App\ExamType::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idExamType', 'desc')->get()->pluck('typeName', 'idExamType')->toArray();
$classes = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('idClass')->get()->pluck('className', 'className')->toArray();
$section = DB::table('sections')->join('classes', 'sections.idClass', '=', 'classes.idClass')
->select('sections.idSection', 'classes.idClass',DB::raw('CONCAT(classes.className," - ",sections.sectionName) as sectionsName'))
->where('sections.idSchool', '=', Auth::guard('school')->user()->idSchool)
->orderBy('classes.idClass', 'asc')->get()->pluck('sectionsName', 'sectionsName')->toArray();
$template = \App\ExcelTemplate::where('idExcel','=',$id)->first();
return view('schools.exams.exam_import', compact('imports', 'classes', 'types','section','template'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id) {
$template = \App\ExcelTemplate::findOrfail($id);
$template->fill($request->all());
$template->update();
return redirect('school/exam/import');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id) {
$template = \App\ExcelTemplate::findOrfail($id);
$template->delete();
return response()->json(['success' => "SUCCESS"], 200, ['app-status' => 'success']);
}
public function viewExcelDoc($id) {
$template = \App\ExcelTemplate::findOrFail($id);
$path = storage_path('app/public/schools/' . $template->idSchool . '/excels/' . $template->imageFile);
return response()->download($path);
}
}
Copyright © 2021 -