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