IMMREX7

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

<?php

namespace App\Http\Controllers\School;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Auth;
use DB;
use Storage;
use Session;
use ZipArchive;
use Carbon\Carbon;

class VirtualViewController extends SchoolController {

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request) {
        $today_date = Carbon::today()->format('Y-m-d');
        if ($request->has('fromDate') && $request->fromDate != null) {
            $from_date = Carbon::createFromFormat('d-m-Y', $request->fromDate)->format('Y-m-d');
        }
        if ($request->has('toDate') && $request->toDate != null) {
            $to_date = Carbon::createFromFormat('d-m-Y', $request->toDate)->format('Y-m-d');
        }
        
        $classes = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();

        $virtualCard = \App\CardView::select('virtual_card_view.*','employees.firstName','employees.middleName','employees.lastName')->leftJoin('employees', 'virtual_card_view.idEmployee', '=', 'employees.idEmployee')->where('virtual_card_view.idSchool', '=', Auth::guard('school')->user()->idSchool)
                         ->where('virtual_card_view.idFinancialYear', '=', Session::get('idFinancialYear'))->get();                
        return view('schools.virtualcard.view', compact('classes','virtualCard'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create() {
        $desiredMemoryLimit = '512M';
        ini_set('memory_limit', $desiredMemoryLimit);
        $virtualCard = \App\CardView::select('virtual_card_view.photo','idStudent')->leftJoin('employees', 'virtual_card_view.idEmployee', '=', 'employees.idEmployee')->where('virtual_card_view.idSchool', '=', Auth::guard('school')->user()->idSchool)
                         ->where('virtual_card_view.idFinancialYear', '=', Session::get('idFinancialYear'))->get()->pluck('photo','idStudent')->toArray();
        try {
            $zip = new ZipArchive;
            $zipFileName = 'idcard_' . now()->format('Ymd_His') . '.zip';
            $zipFilePath = storage_path('app/public/schools/'.Auth::guard('school')->user()->idSchool.'/'.$zipFileName);
           
            if ($zip->open($zipFilePath, ZipArchive::CREATE | ZipArchive::OVERWRITE) === TRUE) {
                foreach($virtualCard as $key => $value){
                    $student = \App\AdmEntry::select('ecNo')->where('idStudent', '=', $key)->first();
                    $file = storage_path('app/public/schools/'.Auth::guard('school')->user()->idSchool.'/students/'.$value);
                    $fileName = $student->ecNo.'-'.$value;
                    $fullFilePath = $file;
                    $zip->addFile($fullFilePath, $fileName);
                }
                $zip->close();
                if (file_exists($zipFilePath)) {
                    // Stream the file for download
                    return response()->download($zipFilePath, $zipFileName)->deleteFileAfterSend(true);
                } else {
                    return back()->with('error', 'Failed to create the zip file.');
                }
            } else {
                return back()->with('error', 'Could not open the zip archive for creation.');
            }
        } catch (Exception $e) {
            return back()->with('error', 'An error occurred during zip creation: ' . $e->getMessage());
        }

    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request) {
       
    }

    /**
     * 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) {
        $virtualCard = \App\CardView::select('virtual_card_view.*','employees.firstName','employees.middleName','employees.lastName')->leftJoin('employees', 'virtual_card_view.idEmployee', '=', 'employees.idEmployee')->where('virtual_card_view.idSchool', '=', Auth::guard('school')->user()->idSchool)
        ->where('virtual_card_view.idFinancialYear', '=', Session::get('idFinancialYear'))->where('id',$id)->first();    
        $classes = \App\ClassM::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
                        ->where('idClass', $virtualCard->idClass)
                        ->orderBy('idClass')->get()->pluck('className', 'idClass')->toArray();
        $section = \App\Section::where('idSchool', '=', Auth::guard('school')->user()->idSchool)
        ->where('idClass', $virtualCard->idClass)
        ->orderBy('idSection')->get()->pluck('sectionName', 'idSection')->toArray();
        $state = DB::table('states')->where('stateName', $virtualCard->state)->first();
        return view('schools.virtualcard.virtual-card-edit',compact('classes','virtualCard','section','state'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id) {
        $isVerified = \App\CardView::where('id',$id)->first();   
        $school = \App\School::where('idSchool', '=', $isVerified->idSchool)->first();
        $isVerified->studentName = $request->studentName;
        $isVerified->blood_group = $request->blood_group;
        $isVerified->student_dob = $request->student_dob;
        $isVerified->gender = $request->gender;
        $isVerified->parentName = $request->parentName;
        $isVerified->motherName = $request->motherName;
        $isVerified->address = $request->address;
        $isVerified->pincode = $request->pincode;
        $isVerified->state = DB::table('states')->where('idState', $request->state)->first()->stateName;
        $isVerified->city = $request->city;
        $isVerified->contact_alternative = $request->contact_alternative;
        $isVerified->contactNo = $request->contactNo;
        $isVerified->update();
        
        if ($request->hasFile('photo')) {
            $photo = 'virtualcard_' . $isVerified->id.'_'.time(). '.' . $request->file('photo')->getClientOriginalExtension();
            $request->file('photo')->storeAs('public/schools/' . $school->idSchool . '/students/', $photo);
            $isVerified->photo = $photo;
            $isVerified->update();
        }

        if(isset($request->idSection)){
            $isVerified->sectionName = \App\Section::select('sectionName','idSection')->where('idSection',$request->idSection)->first()->sectionName;
            $isVerified->idSection = $request->idSection;
            $isVerified->update();
        } 
        flash('Student has been saved successfully !!');
        return redirect('school/virtual-view');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id) {
        $virtualCard = \App\CardView::findOrfail($id);
        $virtualCard->delete();
        return response()->json(['success' => "SUCCESS"], 200, ['app-status' => 'success']);
    }

}

Copyright © 2021 - 2025 IMMREX7