<?php
namespace App\Http\Controllers;
use App\Helpers\WaHelpers;
use App\Models\Jadwal;
use App\Models\Petugas;
use App\Models\Siswa;
use App\Models\TargetCapaian;
use App\Models\TesTryoutCatOnline;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class TryOutController extends Controller
{
/**
* Display a listing of the resource.s
*/
protected $title = 'Try Out Cat Online';
protected $url = 'tryout';
public function index()
{
//
$data['title'] = $this->title;
$data['url'] = $this->url;
if (Auth::user()->hasRole('Admin'))
{
if(isset($_GET['siswa_id'])) {
$data['menu'] = "jadwal kegiatan";
// $jadwalKegiatan = JadwalHarian::with('jenisKegiatan')->where('user_id', $_GET['siswa_id'])->get();
$data['jadwal'] = Jadwal::where('user_id', $_GET['siswa_id'])->whereNotNull("tes_tryout_cat_online_id")->get();
return view('pages.tryout.index', $data);
} else {
$data['siswa'] = User::role('Siswa')->get();
$data['menu'] = "siswa";
return view('pages.tryout.index', $data);
}
// Tindakan untuk pengguna dengan role 'Orang Tua'
} else {
if (Auth::user()->hasRole('Petugas')) {
$data['menu'] = "jadwal kegiatan";
$petugas = Petugas::where('user_id', Auth::user()->id)->first();
$data['jadwal'] = Jadwal::where('petugas_id', $petugas->id)->get();
} else {
$data['menu'] = "jadwal kegiatan";
$siswa = Siswa::where('user_id', Auth::user()->id)->first();
if($siswa->status != 'aktif') {
return redirect()->back()->with('error', 'Halaman ini tidak dapat diakses karena data anda masih belum dikonfirmasi!.');
}
$data['jadwal'] = Jadwal::where('user_id', Auth::user()->id)->WhereNotNull("tes_tryout_cat_online_id")->get();
}
return view('pages.tryout.index', $data);
}
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
$siswa = Siswa::where('user_id', Auth::user()->id)->first();
if($siswa->status != 'aktif') {
return redirect()->back()->with('error', 'Halaman ini tidak dapat diakses karena data anda masih belum dikonfirmasi!.');
}
$data['title'] = $this->title;
$data['url'] = $this->url;
$data['pengawas'] = Petugas::get();
$data['test'] = TesTryoutCatOnline::get();
return view('pages.tryout.create', $data);
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$request->validate([
'test' => 'required',
'location' => 'required',
'all_day' => 'required',
'tanggal' => 'required',
'start' => 'required',
'end' => 'required',
'petugas_id' => 'required',
]);
$test = TesTryoutCatOnline::find($request->test);
$jadwal = Jadwal::create([
'user_id' => Auth::user()->id,
'kegiatan' => $test->nama,
'location' => $request->location,
'all_day' => $request->all_day,
'start' => $request->tanggal." ".$request->start,
'ends' => $request->tanggal." ".$request->end,
'petugas_id' => $request->petugas_id,
'notes' => $request->notes,
'target' => 0,
'tes_tryout_cat_online_id' => $test->id
]);
TargetCapaian::create([
'jadwal_id' => $jadwal->id,
'tanggal' => $request->tanggal,
'waktu_awal' => $request->start,
'waktu_akhir' => $request->end,
'capaian' => 0,
'score' => 0,
]);
$siswa = Siswa::where('user_id', Auth::user()->id)->first();
$pesan = "Siswa anda bernama ".$siswa->nama_siswa." menambah kegiatan Try Out Cat Online bernama ".$request->kegiatan. "berlokasi di ".$request->location." tanggal "."LALA"." mulai dari ".$request->start." sampai ".$request->ends.".";
WaHelpers::sendWa($siswa->no_hp_orang_tua , $pesan);
$petugas = Petugas::find($request->petugas_id);
$pesan = "Seorang siswa bernama ".$siswa->nama_siswa." dengan nomor identitas ".$siswa->no_identitas." memilih anda sebagai pengawas dalam kegiatan ".$request->kegiatan. "berlokasi di ".$request->location." tanggal "."LALA"."mulai dari ".$request->start." sampai ".$request->ends.".";
WaHelpers::sendWa($petugas->no_hp , $pesan);
return redirect($this->url)->with('success', 'Jadwal Test Try Out berhasil ditambahkan.');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
$data['title'] = $this->title;
$data['url'] = $this->url;
$data['jadwal'] = Jadwal::find($id);
// $data['menu'] = "jadwal kegiatan";
// dd($data['jadwal']->target);
return view('pages.tryout.show', $data);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
$siswa = Siswa::where('user_id', Auth::user()->id)->first();
if($siswa->status != 'aktif') {
return redirect()->back()->with('error', 'Halaman ini tidak dapat diakses karena data anda masih belum dikonfirmasi!.');
}
$data['title'] = $this->title;
$data['url'] = $this->url;
$data['pengawas'] = Petugas::get();
$data['test'] = TesTryoutCatOnline::get();
$data['jadwal'] = Jadwal::find($id);
return view('pages.tryout.edit', $data);
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
if(isset($_GET['nilai'])) {
TargetCapaian::where('id', $_GET['target'])->update([
'capaian' => 1,
]);
$jadwal = Jadwal::find($id);
$target = TargetCapaian::find($_GET['target']);
$siswa = Siswa::where('user_id', Auth::user()->id)->first();
$pesan = "Siswa anda bernama ".$siswa->nama_siswa." untuk kegiatan bernama ".$jadwal->kegiatan. "berlokasi di ".$jadwal->location." pada tanggal ".date('d, F Y', strtotime($target->tanggal))." targetnya telah tercapai.";
WaHelpers::sendWa($siswa->no_hp_orang_tua , $pesan);
$petugas = Petugas::find($jadwal->petugas_id);
$pesan = "Seorang siswa bernama ".$siswa->nama_siswa." dengan nomor identitas ".$siswa->no_identitas." memilih anda sebagai pengawas dalam kegiatan ".$jadwal->kegiatan. "berlokasi di ".$jadwal->location." pada tanggal ".date('d, F Y', strtotime($target->tanggal))." targetnya telah tercapai.";
WaHelpers::sendWa($petugas->no_hp , $pesan);
return redirect()->back()->with('success', 'Target anda telah tercapai pada Jadwal kegiatan ini!');
} else {
$request->validate([
'test' => 'required',
'location' => 'required',
'all_day' => 'required',
'tanggal' => 'required',
'start' => 'required',
'end' => 'required',
'petugas_id' => 'required',
]);
$test = TesTryoutCatOnline::find($request->test);
$jadwal = Jadwal::where('id', $id)->update([
'user_id' => Auth::user()->id,
'kegiatan' => $test->nama,
'location' => $request->location,
'all_day' => $request->all_day,
'start' => $request->tanggal." ".$request->start,
'ends' => $request->tanggal." ".$request->end,
'petugas_id' => $request->petugas_id,
'notes' => $request->notes,
'target' => 0,
'tes_tryout_cat_online_id' => $test->id
]);
TargetCapaian::where('jadwal_id', $id)->update([
'tanggal' => $request->tanggal,
'waktu_awal' => $request->start,
'waktu_akhir' => $request->end,
'capaian' => 0,
]);
$jadwal = Jadwal::find($id);
$siswa = Siswa::where('user_id', Auth::user()->id)->first();
$pesan = "Siswa anda bernama ".$siswa->nama_siswa." melakukan perubahan kegiatan bernama ".$jadwal->kegiatan." menjadi ".$request->kegiatan. "berlokasi di ".$request->location." mulai dari ".$request->start." sampai ".$request->ends.".";
WaHelpers::sendWa($siswa->no_hp_orang_tua , $pesan);
if($request->petugas_id != $jadwal->petugas_id) {
$petugasLama = Petugas::find($jadwal->petugas_id);
$petugasBaru = Petugas::find($request->petugas_id);
$pesan = "Seorang siswa bernama ".$siswa->nama_siswa." dengan nomor identitas ".$siswa->no_identitas." mengganti pengawas yang awalnya adalah ".$petugasLama->nama_petugas." menjadi ".$petugasBaru->nama_petugas." sebagai pengawas dalam kegiatan ".$request->kegiatan. "berlokasi di ".$request->location." mulai dari ".$request->start." sampai ".$request->ends.".";
WaHelpers::sendWa($petugasLama->no_hp , $pesan);
$pesan = "Seorang siswa bernama ".$siswa->nama_siswa." dengan nomor identitas ".$siswa->no_identitas." memilih anda sebagai pengawas dalam kegiatan ".$request->kegiatan. "berlokasi di ".$request->location." mulai dari ".$request->start." sampai ".$request->ends.".";
WaHelpers::sendWa($petugasBaru->no_hp , $pesan);
}
return redirect($this->url)->with('success', 'Jadwal kegiatan berhasil diubah.');
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
$jadwal = Jadwal::find($id);
$siswa = Siswa::where('user_id', Auth::user()->id)->first();
$pesan = "Siswa anda bernama ".$siswa->nama_siswa." Menghapus kegiatan yang bernama ".$jadwal->kegiatan. "berlokasi di ".$jadwal->location." mulai dari ".$jadwal->start." sampai ".$jadwal->ends.".";
WaHelpers::sendWa($siswa->no_hp_orang_tua , $pesan);
$petugas = Petugas::find($jadwal->petugas_id);
$pesan = "Seorang siswa bernama ".$siswa->nama_siswa." yang anda awasi telah menghapus kegiatan yang bernama ".$jadwal->kegiatan. "berlokasi di ".$jadwal->location." mulai dari ".$jadwal->start." sampai ".$jadwal->ends.".";
WaHelpers::sendWa($petugas->no_hp , $pesan);
TargetCapaian::where('jadwal_id', $id)->delete();
$jadwal->delete();
return redirect($this->url)->with('success', 'Jadwal kegiatan berhasil dihapus.');
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]