2023-04-17 11:22:49 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
|
|
|
|
use App\Models\Attender;
|
|
|
|
|
use App\Models\Event;
|
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
|
use SimpleSoftwareIO\QrCode\Facades\QrCode;
|
|
|
|
|
use Illuminate\Support\Facades\Mail;
|
|
|
|
|
use Illuminate\Http\File;
|
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
use Illuminate\Mail\Message;
|
|
|
|
|
|
|
|
|
|
class HomeController extends Controller
|
|
|
|
|
{
|
|
|
|
|
public function index(){
|
|
|
|
|
$events = Event::orderBy('event_date', 'desc')->paginate(3);
|
|
|
|
|
return view('welcome', [
|
|
|
|
|
'events' => $events
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function apply($id){
|
2023-04-20 10:12:09 +00:00
|
|
|
$event = Event::find($id);
|
2023-04-17 11:22:49 +00:00
|
|
|
return view('signup', [
|
2023-04-20 10:12:09 +00:00
|
|
|
'event' => $event
|
2023-04-17 11:22:49 +00:00
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function submit(Request $request){
|
|
|
|
|
$data = $request->only(['name', 'surname', 'email', 'file', 'organization', 'is_attending', 'consent_form']);
|
|
|
|
|
$data['attended'] = 0;
|
|
|
|
|
$data['is_attending'] = (bool)$data['is_attending'];
|
2023-04-24 12:37:25 +00:00
|
|
|
$data['consent_form'] = (bool)$data['consent_form'] ?? false;
|
2023-04-17 11:22:49 +00:00
|
|
|
|
|
|
|
|
$attender = Attender::create($data);
|
|
|
|
|
|
2023-04-24 12:16:00 +00:00
|
|
|
if($data['is_attending']){
|
|
|
|
|
$attender->events()->attach($request->event_id);
|
2023-04-20 10:30:41 +00:00
|
|
|
$attendance = DB::table('event_attenders')
|
|
|
|
|
->where('event_id', $request->event_id)
|
|
|
|
|
->where('attender_id', $attender->id)
|
|
|
|
|
->first();
|
2023-04-17 11:22:49 +00:00
|
|
|
|
2023-04-20 10:30:41 +00:00
|
|
|
$file_name = uniqid() . '.png';
|
|
|
|
|
$qrCodePath = public_path('qr/' . $file_name);
|
|
|
|
|
QrCode::format('png')->size(512)->margin(10)->generate($attendance->id, $qrCodePath);
|
2023-04-17 11:22:49 +00:00
|
|
|
|
2023-04-20 10:30:41 +00:00
|
|
|
$imagedata = file_get_contents($qrCodePath);
|
|
|
|
|
$base64 = base64_encode($imagedata);
|
2023-04-17 11:22:49 +00:00
|
|
|
|
2023-04-20 10:30:41 +00:00
|
|
|
Mail::send('emails.qr', ['base64' => $base64, 'attender' => $attender, 'file_name' => $file_name], function (Message $message) use ($attender, $file_name, $base64) {
|
|
|
|
|
$message->to($attender->email)->subject($attender->name . " " . $attender->surname);
|
|
|
|
|
});
|
|
|
|
|
}
|
2023-04-24 12:39:26 +00:00
|
|
|
return view('success',[
|
|
|
|
|
'is_attending' => $data['is_attending']
|
|
|
|
|
]);
|
2023-04-17 11:22:49 +00:00
|
|
|
}
|
2023-04-20 10:12:09 +00:00
|
|
|
|
|
|
|
|
public function shownUp(Request $request){
|
|
|
|
|
$id = $request->id;
|
|
|
|
|
$attendance = DB::table('event_attenders')->find($id);
|
|
|
|
|
$attender = Attender::find($attendance->attender_id);
|
|
|
|
|
$attender->attended = true;
|
|
|
|
|
$attender->save();
|
2023-04-24 12:16:00 +00:00
|
|
|
return response()->json(['success' => true, 'data' => $attender]);
|
2023-04-20 10:12:09 +00:00
|
|
|
}
|
2023-04-17 11:22:49 +00:00
|
|
|
}
|