MIF_E31210385/app/Http/Controllers/UsersController.php

967 lines
35 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Str;
use App\Models\User;
use App\Models\Guru;
use App\Models\Siswa;
use App\Models\Roles;
use App\Models\Kelas;
use App\Enums\GlobalEnum;
use App\Models\LogActivites;
use DataTables;
use Carbon\Carbon;
class UsersController extends Controller
{
public function index(Request $request)
{
if ($request->ajax()) {
$data = User::orderBy('created_at', 'desc');
// Convert the Eloquent Collection to a regular PHP array
$data->each(function ($item, $key) {
$item->rowIndex = $key + 1;
});
return Datatables::eloquent($data)
->addIndexColumn()
->addColumn('title-post', function($row) {
return '
<div class="d-flex align-items-center">
<div class="symbol symbol-25px symbol-circle">
<div class="symbol-label" style="background-image:url(' . gravatar_team($row->email) . ')"></div>
</div>
<div class="ms-3"><span>' . $row->name . '</span></div>
</div>
';
})
->addColumn('status', function($row){
if ($row->status == GlobalEnum::isActive) {
return '<span class="mb-1 badge font-medium badge-success py-2 px-3 fs-7">Active</span>';
} elseif($row->status == GlobalEnum::isInactive) {
return '<span class="mb-1 badge font-medium badge-primary py-2 px-3 fs-7">Non Active</span>';
} elseif($row->status == GlobalEnum::isDeactive) {
return '<span class="mb-1 badge font-medium badge-danger py-2 px-3 fs-7">Deactivated</span>';
} else {
return '<span class="mb-1 badge font-medium badge-warning py-2 px-3 fs-7">Not Verified</span>';
}
})
->rawColumns(['title-post','status'])
->filter(function ($query) use ($request) {
if ($request->has('search')) {
$search = $request->get('search')['value'];
if(!empty($search)) {
$query->where('name', 'LIKE', "%$search%");
$query->orWhere('email', 'LIKE', "%$search%");
} else {
$query->get();
}
}
})
->make(true);
}
$data = [
'subtitle' => 'Users',
'button' => true,
'module' => [
'url' => route('users.create'),
'name' => 'Create New'
]
];
return view('admin.app.users.index', compact('data'));
}
public function create()
{
$data = [
'subtitle' => 'Create New'
];
$roles = Roles::whereIn('id', [1])->get();
return view('admin.app.users.add', compact('data', 'roles'));
}
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email',
'status' => 'required',
'level' => 'required',
]);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first())->withInput();
}
$input = $request->all();
$foto_namaBaru = null;
$userEmailToken = md5(Str::random(25));
$post = new User([
'name' => $input['name'],
'username' => Str::before($input['email'], '@') . rand(100, 999),
'email' => $input['email'],
'password' => empty($input['password']) ? bcrypt('default123') : bcrypt($input['password']),
'status' => $input['status'],
'level' => $input['level'],
'thumbnail' => empty($foto_namaBaru) ? '' : $foto_namaBaru,
]);
$check = User::where('email', $input['email'])->count();
if ($check == 0) {
if ($post->save()) {
return redirect()->route('users')->with('success', 'You have successfully added data');
} else {
return redirect()->route('users')->with('error', 'An error occurred in the query email');
}
} else {
return redirect()->route('users')->with('error', 'Email already exists');
}
}
public function show($id)
{
$data = [
'subtitle' => User::where('id', $id)->first()->email,
'records' => User::where('id', $id)->first(),
'logs' => User::where('id', $id)->first()
];
return view('admin.app.users.detail', compact('data'));
}
public function edit($id)
{
$data = [
'subtitle' => User::where('id', $id)->first()->email,
'records' => User::where('id', $id)->first()
];
$roles = Roles::whereIn('id', [1])->get();
return view('admin.app.users.edit', compact('data', 'id', 'roles'));
}
public function update(Request $request, $id)
{
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email',
'level' => 'required',
'status' => 'required',
'image' => 'image|mimes:jpg,jpeg,png,svg|max:7048',
], [
'image.mimes' => 'Tipe file yang diunggah harus jpg, jpeg, png, atau svg.',
]);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first())->withInput();
}
// Cari data berdasarkan ID
$user = User::find($id);
// Jika data ditemukan
if ($user) {
// Jika ada file baru yang diunggah, hapus file thumbnail yang lama
if ($request->hasFile('image') && $request->file('image')->isValid()) {
if ($user->thumbnail) {
Storage::delete($user->thumbnail);
}
}
// Update data dengan data baru dari form yang telah dibersihkan
$user->name = $request->input('name');
$user->email = $request->input('email');
!empty($request->input('password')) ? $user->password = bcrypt($request->input('password')) : $user->password;
$user->level = $request->input('level');
$user->status = $request->input('status');
$user->username = Str::before($user->email, '@') . rand(100, 999);
// Jika ada file baru yang diunggah, simpan file baru di storage
if ($request->hasFile('image') && $request->file('image')->isValid()) {
$foto_namaBaru = $request->file('image')->store('public/images');
$user->thumbnail = $foto_namaBaru;
}
// Simpan perubahan pada database
$user->save();
return redirect()->route('users')->with('success', 'You have successfully updated data');
} else {
return redirect()->route('users')->with('error', 'Data not found');
}
}
public function destroy($id)
{
$user = User::find($id);
// Jika data ditemukan
if ($user) {
// Cek apakah ada file di kolom "is_thumbnail"
if ($user->thumbnail) {
// Hapus file thumbnail dari storage
Storage::delete($user->is_thumbnail);
}
// Hapus data dari database
$user->delete();
return redirect()->route('users')->with('success', 'You are successfully deleted records');
} else {
return redirect()->route('users')->with('error', 'Data not found');
}
}
public function siswa(Request $request)
{
if ($request->ajax()) {
$data = Siswa::select('*');
// Convert the Eloquent Collection to a regular PHP array
$data->each(function ($item, $key) {
$item->rowIndex = $key + 1;
});
return Datatables::eloquent($data)
->addIndexColumn()
->addColumn('title-post', function($row) {
return $row->nama;
})
->addColumn('wali', function($row) {
return $row->wali->name ?? '-';
})
->addColumn('nis', function($row) {
return $row->nis ?? '-';
})
->addColumn('agama', function($row) {
if($row->agama == 1) {
return 'Islam';
} elseif($row->agama == 2) {
return 'Kristen';
} elseif($row->agama == 3) {
return 'Buddha';
} elseif($row->agama == 4) {
return 'Konghucu';
}
})
->addColumn('daftar', function($row){
return Carbon::parse($row->created_at)->format('d F Y');
})
->addColumn('status_siswa', function($row){
if ($row->status == 1) {
return '<span class="mb-1 badge font-medium bg-success text-white py-2 px-3 fs-7">Siswa Aktif</span>';
} else {
return '<span class="mb-1 badge font-medium bg-primary text-white py-2 px-3 fs-7">Calon Siswa</span>';
}
})
->rawColumns(['title-post','nis','daftar','agama', 'status_siswa', 'wali'])
->filter(function ($query) use ($request) {
if ($request->has('search')) {
$search = $request->get('search')['value'];
if(!empty($search)) {
$query->where('nama', 'LIKE', "%$search%");
} else {
$query->get();
}
}
})
->make(true);
}
$data = [
'subtitle' => 'Siswa',
'button' => true,
'module' => [
'url' => route('siswa.create'),
'name' => 'Tambah Baru'
]
];
return view('admin.app.users.siswa.index', compact('data'));
}
public function createSiswa()
{
$data = [
'subtitle' => 'Create New'
];
return view('admin.app.users.siswa.add', compact('data'));
}
public function storeSiswa(Request $request)
{
$validator = Validator::make($request->all(), [
'id_wali' => 'required',
'id_kelas' => 'required',
'name' => 'required',
'nis' => 'required',
'agama' => 'required',
'agama_ayah' => 'required',
'kota_siswa' => 'required',
'alamat' => 'required',
'nama_ibu' => 'required',
'telepon' => 'required',
'pekerjaan_ibu' => 'required',
'pekerjaan_ayah' => 'required',
'tempat_lahir' => 'required',
'nama_ayah' => 'required',
'tanggal_lahir' => 'required|date',
'telepon_ortu' => 'required',
'agama_ibu' => 'required',
'status' => 'required',
'image' => 'image|mimes:jpg,jpeg,png,svg|max:7048',
], [
'image.mimes' => 'Tipe file yang diunggah harus jpg, jpeg, png, atau svg.',
]);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first())->withInput();
}
$input = $request->all();
$foto_namaBaru = null;
if ($request->hasFile('image') && $request->file('image')->isValid()) {
$foto_namaBaru = $request->file('image')->store('public/images');
}
$checkSiswa = Siswa::where('nama', $input['name'])->orWhere('id_wali', $input['id_wali'])->count();
if($checkSiswa == 0) {
$post = new Siswa([
'id' => Str::uuid(),
'id_wali' => $input['id_wali'],
'id_kelas' => $input['id_kelas'],
'nama' => $input['name'],
'nis' => $input['nis'],
'agama' => $input['agama'],
'agama_ayah' => $input['agama_ayah'],
'kota_siswa' => $input['kota_siswa'],
'alamat' => $input['alamat'],
'nama_ibu' => $input['nama_ibu'],
'telepon' => $input['telepon'],
'pekerjaan_ibu' => $input['pekerjaan_ibu'],
'pekerjaan_ayah' => $input['pekerjaan_ayah'],
'tempat_lahir' => $input['tempat_lahir'],
'nama_ayah' => $input['nama_ayah'],
'tanggal_lahir' => $input['tanggal_lahir'],
'telepon_ortu' => $input['telepon_ortu'],
'agama_ibu' => $input['agama_ibu'],
'status' => $input['status'],
]);
if($post->save()) {
return redirect()->to(app_url('siswa'))->with('success', 'Data created successfully');
} else {
return redirect()->back()->with('error', 'Failed to create data');
}
} else {
return redirect()->back()->with('error', 'Data already exists');
}
}
public function editSiswa($id)
{
$data = [
'subtitle' => 'Edit Siswa'
];
$detail = Siswa::where('id', $id)->first();
return view('admin.app.users.siswa.edit', compact('data', 'id', 'detail'));
}
public function updateSiswa(Request $request, $id)
{
$validator = Validator::make($request->all(), [
'id_wali' => 'required',
'name' => 'required',
'nis' => 'required',
'agama' => 'required',
'agama_ayah' => 'required',
'kota_siswa' => 'required',
'alamat' => 'required',
'nama_ibu' => 'required',
'telepon' => 'required',
'pekerjaan_ibu' => 'required',
'pekerjaan_ayah' => 'required',
'tempat_lahir' => 'required',
'nama_ayah' => 'required',
'tanggal_lahir' => 'required|date',
'telepon_ortu' => 'required',
'agama_ibu' => 'required',
'status' => 'required',
'image' => 'image|mimes:jpg,jpeg,png,svg|max:7048',
], [
'image.mimes' => 'Tipe file yang diunggah harus jpg, jpeg, png, atau svg.',
]);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first())->withInput();
}
// Cari data berdasarkan ID
$siswa = Siswa::where('id', $id)->first();
// Jika data ditemukan
if ($siswa) {
$siswa->id_wali = $request->input('id_wali');
$siswa->id_kelas = $request->input('id_kelas');
$siswa->nis = $request->input('nis');
$siswa->nama = $request->input('name');
$siswa->agama = $request->input('agama');
$siswa->agama_ayah = $request->input('agama_ayah');
$siswa->kota_siswa = $request->input('kota_siswa');
$siswa->alamat = $request->input('alamat');
$siswa->nama_ibu = $request->input('nama_ibu');
$siswa->telepon = $request->input('telepon');
$siswa->pekerjaan_ibu = $request->input('pekerjaan_ibu');
$siswa->pekerjaan_ayah = $request->input('pekerjaan_ayah');
$siswa->tempat_lahir = $request->input('tempat_lahir');
$siswa->nama_ayah = $request->input('nama_ayah');
$siswa->tanggal_lahir = $request->input('tanggal_lahir');
$siswa->telepon_ortu = $request->input('telepon_ortu');
$siswa->agama_ibu = $request->input('agama_ibu');
$siswa->status = $request->input('status');
if($siswa->save())
{
return redirect()->to(app_url('siswa'))->with('success', 'Data updated successfully');
} else {
return redirect()->back()->with('error', 'Failed to update data');
}
} else {
return redirect()->route('siswa')->with('error', 'Data not found');
}
}
public function destroySiswa($id)
{
$siswa = Siswa::find($id);
// Jika data ditemukan
if ($siswa) {
$siswa->delete();
return redirect()->route('siswa')->with('success', 'You are successfully deleted records');
} else {
return redirect()->route('siswa')->with('error', 'Data not found');
}
}
public function guru(Request $request)
{
if ($request->ajax()) {
$data = Guru::select('*');
// Convert the Eloquent Collection to a regular PHP array
$data->each(function ($item, $key) {
$item->rowIndex = $key + 1;
});
return Datatables::eloquent($data)
->addIndexColumn()
->addColumn('title-post', function($row) {
return $row->user->name;
})
->addColumn('nip', function($row) {
return $row->nip;
})
->addColumn('email', function($row) {
return $row->user->email;
})
->addColumn('agama', function($row) {
if($row->agama == 1) {
return 'Islam';
} elseif($row->agama == 2) {
return 'Kristen';
} elseif($row->agama == 3) {
return 'Buddha';
} elseif($row->agama == 4) {
return 'Konghucu';
}
})
->addColumn('status', function($row){
if ($row->status == GlobalEnum::isActive) {
return '<span class="mb-1 badge font-medium bg-success py-2 px-3 fs-7 text-white">Active</span>';
} elseif($row->status == GlobalEnum::isInactive) {
return '<span class="mb-1 badge font-medium bg-primary py-2 px-3 fs-7 text-white">Non Active</span>';
} elseif($row->status == GlobalEnum::isDeactive) {
return '<span class="mb-1 badge font-medium bg-danger py-2 px-3 fs-7 text-white">Deactivated</span>';
} else {
return '<span class="mb-1 badge font-medium bg-warning py-2 px-3 fs-7 text-white">Not Verified</span>';
}
})
->rawColumns(['title-post', 'status', 'nip', 'agama', 'email'])
->filter(function ($query) use ($request) {
if ($request->has('search')) {
$search = $request->get('search')['value'];
if(!empty($search)) {
$query->where('nip', 'LIKE', "%$search%");
} else {
$query->get();
}
}
})
->make(true);
}
$data = [
'subtitle' => 'Guru',
'button' => true,
'module' => [
'url' => route('guru.create'),
'name' => 'Tambah baru'
]
];
return view('admin.app.users.guru.index', compact('data'));
}
public function createGuru()
{
$data = [
'subtitle' => 'Tambah Data'
];
return view('admin.app.users.guru.add', compact('data'));
}
public function storeGuru(Request $request)
{
$validator = Validator::make($request->all(), [
'nip' => 'required',
'alamat' => 'required',
'telepon' => 'required',
'agama' => 'required',
'name' => 'required',
'email' => 'required|email',
'password' => 'required',
'status' => 'required',
]);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first())->withInput();
}
$input = $request->all();
$foto_namaBaru = null;
if ($request->hasFile('image') && $request->file('image')->isValid()) {
$foto_namaBaru = $request->file('image')->store('public/images');
}
$post = new User([
'name' => $input['name'],
'username' => Str::before($input['email'], '@') . rand(100, 999),
'email' => $input['email'],
'password' => bcrypt($input['password']),
'status' => $input['status'],
'level' => GlobalEnum::isKonselor,
'thumbnail' => empty($foto_namaBaru) ? '' : $foto_namaBaru,
]);
$check = User::where('email', $input['email'])->count();
if ($check == 0) {
if ($post->save()) {
$detail = User::where('email', $input['email'])->first();
$postDetail = new Guru([
'id' => Str::uuid(),
'id_user' => $detail->id,
'nip' => $input['nip'],
'agama' => $input['agama'],
'alamat' => $input['alamat'],
'telepon' => $input['telepon'],
'status' => 1,
]);
$postDetail->save();
return redirect()->to(app_url('guru'))->with('success', 'User created successfully');
} else {
return redirect()->back()->with('error', 'User not created');
}
} else {
return redirect()->back()->with('error', 'User already exists');
}
}
public function editGuru($id)
{
$data = [
'subtitle' => 'Edit Guru',
];
$detail = Guru::where('id_user', $id)->first();
return view('admin.app.users.guru.edit', compact('data', 'id', 'detail'));
}
public function updateGuru(Request $request, $id)
{
$validator = Validator::make($request->all(), [
'nip' => 'required',
'alamat' => 'required',
'telepon' => 'required',
'agama' => 'required',
'name' => 'required',
'email' => 'required|email',
'status' => 'required',
]);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first())->withInput();
}
// Cari data berdasarkan ID
$user = User::find($id);
$detail = Guru::where('id_user', $id)->first();
// Jika data ditemukan
if ($user) {
// Jika ada file baru yang diunggah, hapus file thumbnail yang lama
if ($request->hasFile('image') && $request->file('image')->isValid()) {
if ($user->thumbnail) {
Storage::delete($user->thumbnail);
}
}
// Update data dengan data baru dari form yang telah dibersihkan
$user->name = $request->input('name');
$user->email = $request->input('email');
!empty($request->input('password')) ? $user->password = bcrypt($request->input('password')) : $user->password;
$user->status = $request->input('status');
$user->username = Str::before($user->email, '@') . rand(100, 999);
$detail->nip = $request->input('nip');
$detail->alamat = $request->input('alamat');
$detail->agama = $request->input('agama');
$detail->telepon = $request->input('telepon');
// Jika ada file baru yang diunggah, simpan file baru di storage
if ($request->hasFile('image') && $request->file('image')->isValid()) {
$foto_namaBaru = $request->file('image')->store('public/images');
$user->thumbnail = $foto_namaBaru;
}
// Simpan perubahan pada database
$user->save();
$detail->save();
return redirect()->to(app_url('guru'))->with('success', 'Data updated successfully');
} else {
return redirect()->back()->with('error', 'Data not found');
}
}
public function destroyGuru($id)
{
$user = User::find($id);
$detail = Guru::where('id_user', $id)->first();
// Jika data ditemukan
if ($user) {
// Cek apakah ada file di kolom "is_thumbnail"
if ($user->thumbnail) {
// Hapus file thumbnail dari storage
Storage::delete($user->is_thumbnail);
}
// Hapus data dari database
$user->delete();
$detail->delete();
return redirect()->to(app_url('guru'))->with('success', 'Data updated successfully');
} else {
return redirect()->back()->with('error', 'Data not found');
}
}
public function kelas(Request $request)
{
if ($request->ajax()) {
$data = Kelas::select('*');
// Convert the Eloquent Collection to a regular PHP array
$data->each(function ($item, $key) {
$item->rowIndex = $key + 1;
});
return Datatables::of($data)
->addIndexColumn()
->make(true);
}
$data = [
'subtitle' => 'Kelas',
'button' => true,
'module' => [
'url' => route('kelas.create'),
'name' => 'Tambah Kelas'
]
];
return view('admin.app.users.kelas.index', compact('data'));
}
public function createKelas()
{
$data = [
'subtitle' => 'Tambah Kelas',
];
return view('admin.app.users.kelas.add', compact('data'));
}
public function storeKelas(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required',
]);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first())->withInput();
}
$checkKelas = Kelas::where('name', $request->name)->count();
if($checkKelas < 1) {
$postAccount = new Kelas([
'name' => $request->name,
]);
if($postAccount->save()) {
return redirect()->route('kelas')->with('success', 'Kelas baru berhasil ditambahkan');
} else {
return redirect()->back()->with('error', 'Kelas baru gagal ditambahkan');
}
} else {
return redirect()->back()->with('error', 'Kelas sudah ada');
}
}
public function editKelas($id)
{
$data = [
'subtitle' => 'Edit Kelas',
];
$kelas = Kelas::find($id);
return view('admin.app.users.kelas.edit', compact('data', 'kelas'));
}
public function updateKelas(Request $request, $id)
{
$validator = Validator::make($request->all(), [
'name' => 'required',
]);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first())->withInput();
}
$checkKelas = Kelas::find($id);
if($checkKelas) {
$account = Kelas::find($id);
$account->name = $request->name;
if($account->save()) {
return redirect()->route('kelas')->with('success', 'Kelas baru berhasil diperbarui');
} else {
return redirect()->back()->with('error', 'Kelas baru gagal diperbarui');
}
} else {
return redirect()->back()->with('error', 'Kelas tidak ditemukan');
}
}
public function destroyKelas($id)
{
$kelas = Kelas::find($id);
$kelas->delete();
return redirect()->route('kelas')->with('success', 'Kelas berhasil di hapus');
}
public function wali(Request $request)
{
if ($request->ajax()) {
$data = User::select('*')->where('level', 5)->orderBy('created_at', 'desc');
// Convert the Eloquent Collection to a regular PHP array
$data->each(function ($item, $key) {
$item->rowIndex = $key + 1;
});
return Datatables::eloquent($data)
->addIndexColumn()
->addColumn('title-post', function($row) {
return '
<div class="d-flex align-items-center">
<div class="symbol symbol-25px symbol-circle">
<div class="symbol-label" style="background-image:url(' . gravatar_team($row->email) . ')"></div>
</div>
<div class="ms-3"><span>' . $row->name . '</span></div>
</div>
';
})
->addColumn('status', function($row){
if ($row->status == GlobalEnum::isActive) {
return '<span class="mb-1 badge font-medium badge-success py-2 px-3 fs-7">Active</span>';
} elseif($row->status == GlobalEnum::isInactive) {
return '<span class="mb-1 badge font-medium badge-primary py-2 px-3 fs-7">Non Active</span>';
} elseif($row->status == GlobalEnum::isDeactive) {
return '<span class="mb-1 badge font-medium badge-danger py-2 px-3 fs-7">Deactivated</span>';
} else {
return '<span class="mb-1 badge font-medium badge-warning py-2 px-3 fs-7">Not Verified</span>';
}
})
->rawColumns(['title-post','status'])
->filter(function ($query) use ($request) {
if ($request->has('search')) {
$search = $request->get('search')['value'];
if(!empty($search)) {
$query->where('name', 'LIKE', "%$search%");
$query->orWhere('email', 'LIKE', "%$search%");
$query->where('level', 5);
} else {
$query->where('level', 5);
}
}
})
->make(true);
}
$data = [
'subtitle' => 'Wali Murid',
'button' => true,
'module' => [
'url' => route('wali-murid.create'),
'name' => 'Tambah baru'
]
];
return view('admin.app.users.walimurid.index', compact('data'));
}
public function createWali()
{
$data = [
'subtitle' => 'Tambah baru'
];
$roles = Roles::whereIn('id', [1])->get();
return view('admin.app.users.walimurid.add', compact('data', 'roles'));
}
public function storeWali(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email',
'status' => 'required',
]);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first())->withInput();
}
$input = $request->all();
$foto_namaBaru = null;
$userEmailToken = md5(Str::random(25));
$post = new User([
'name' => $input['name'],
'username' => Str::before($input['email'], '@') . rand(100, 999),
'email' => $input['email'],
'password' => empty($input['password']) ? bcrypt('default123') : bcrypt($input['password']),
'status' => $input['status'],
'level' => 5,
'thumbnail' => empty($foto_namaBaru) ? '' : $foto_namaBaru,
]);
$check = User::where('email', $input['email'])->count();
if ($check == 0) {
if ($post->save()) {
return redirect()->to(app_url('wali-murid'))->with('success', 'You have successfully added data');
} else {
return redirect()->back()->with('error', 'An error occurred in the query email');
}
} else {
return redirect()->to(app_url('wali-murid'))->with('error', 'Email already exists');
}
}
public function editWali($id)
{
$data = [
'subtitle' => User::where('id', $id)->first()->email,
'records' => User::where('id', $id)->first()
];
$roles = Roles::whereIn('id', [1])->get();
return view('admin.app.users.walimurid.edit', compact('data', 'id', 'roles'));
}
public function updateWali(Request $request, $id)
{
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email',
'status' => 'required',
'image' => 'image|mimes:jpg,jpeg,png,svg|max:7048',
], [
'image.mimes' => 'Tipe file yang diunggah harus jpg, jpeg, png, atau svg.',
]);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first())->withInput();
}
// Cari data berdasarkan ID
$user = User::find($id);
// Jika data ditemukan
if ($user) {
// Jika ada file baru yang diunggah, hapus file thumbnail yang lama
if ($request->hasFile('image') && $request->file('image')->isValid()) {
if ($user->thumbnail) {
Storage::delete($user->thumbnail);
}
}
// Update data dengan data baru dari form yang telah dibersihkan
$user->name = $request->input('name');
$user->email = $request->input('email');
!empty($request->input('password')) ? $user->password = bcrypt($request->input('password')) : $user->password;
$user->status = $request->input('status');
$user->username = Str::before($user->email, '@') . rand(100, 999);
// Jika ada file baru yang diunggah, simpan file baru di storage
if ($request->hasFile('image') && $request->file('image')->isValid()) {
$foto_namaBaru = $request->file('image')->store('public/images');
$user->thumbnail = $foto_namaBaru;
}
// Simpan perubahan pada database
$user->save();
return redirect()->to(app_url('wali-murid'))->with('success', 'You have successfully updated data');
} else {
return redirect()->back()->with('error', 'Data not found');
}
}
public function destroyWali($id)
{
$user = User::find($id);
// Jika data ditemukan
if ($user) {
// Cek apakah ada file di kolom "is_thumbnail"
if ($user->thumbnail) {
// Hapus file thumbnail dari storage
Storage::delete($user->is_thumbnail);
}
// Hapus data dari database
$user->delete();
return redirect()->to(app_url('wali-murid'))->with('success', 'You are successfully deleted records');
} else {
return redirect()->back()->with('error', 'Data not found');
}
}
}