IMMREX7

aku nok ndi : /home/spdtg/www/schoolmis/app/Http/Controllers/School/Exam/
File Up :
aku nok ndi : /home/spdtg/www/schoolmis/app/Http/Controllers/School/Exam/ExamImportController.php

<?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 - 2025 IMMREX7