Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/reswara.samarinda.app/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/public_html/reswara.samarinda.app/app/Http/Controllers/SiswaController.php

<?php

namespace App\Http\Controllers;

use App\Helpers\Helper;
use App\Helpers\RoleHelper;
use App\Helpers\WaHelpers;
use App\Mail\KonfirmasiEmail;
use App\Models\Pendaftaran;
use App\Models\Siswa;
use App\Models\User;
use Illuminate\Container\Attributes\Auth;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
use Illuminate\Routing\UrlGenerator;
use Illuminate\Support\Facades\Auth as FacadesAuth;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Request as FacadesRequest;

class SiswaController extends Controller
{
    /**
     * Display a listing of the resource.
     */

     public $breadcrumbs;
     public $title = "Siswa";
     public $url = "siswa";
     public $menu = "siswa";

    public function __construct(UrlGenerator $urlGenerator)
    {
        $this->breadcrumbs = [
            ['title' => 'Home', 'url' => $urlGenerator->route('dashboard')],
            ['title' => 'Pengaturan Aplikasi', 'url' => "#"],
            ['title' => $this->title, 'url' => $urlGenerator->route($this->url.'.index')],
        ];
    }

    public function verifikasi() {
        $breadcrumbs = $this->breadcrumbs;

        $title = $this->title;
        $url = $this->url;
        $menu = $this->menu;

        $datas = User::role('Siswa')->get();
        
        return view('pages.siswa.verifikasi', compact('title', 'url', 'menu', 'datas', 'breadcrumbs'));
    }

    public function verifikasiStore(Request $request) {

        if(isset($request->verifikasi)) {
            $pesan = "Siswa bernama ".$request->nama_siswa." dengan nomor identitas ".$request->no_identitas." ini adalah nomor OTP anda untuk melanjutkan registrasi : ".$request->randomNumber;
            WaHelpers::sendWa($request->no_hp_siswa, $pesan);

            return response()->json([
                'data' => $request->randomNumber,
            ]);
        }
        
        if($request->page == "verifikasi") {
            $validatedData = $request->validate([
                // 'email' => 'required|unique:users,email',
                'nama_siswa' => 'required',
                'no_identitas' => 'required|unique:siswas,no_identitas',
                'jenis_kelamin' => 'required',
                'tempat_lahir' => 'required',
                'tanggal_lahir' => 'required',
                'alamat_siswa' => 'required',
                'no_hp_siswa' => 'different:no_hp_orang_tua|unique:siswas,no_hp_siswa',
                'agama' => 'required',
                'asal_sekolah' => 'required',
                'jurusan_sekolah' => 'required',
                'tingkatan_sekolah' => 'required',
                'tahun_lulus_sekolah' => 'required',
    
                'nama_orang_tua' => 'required',
                'alamat_orang_tua' => 'required',
                'no_hp_orang_tua'  => 'required|different:no_hp_siswa|unique:siswas,no_hp_orang_tua',
                'foto_siswa'  => 'required',
                'foto_orang_tua'  => 'required',
    
                // 'no_telp_rumah' => 'required',
                // 'grup_pengguna' => 'required',
                // 'jabatan' => 'required',
                'cabang' => 'required',
                'tahun_ajaran' => 'required',
                'gelombang' => 'required',
    
                // 'password' => 'required',
                // 'c_password' => 'required|same:password',
            ], [
                // 'email.required' => 'Email wajib diisi!',
                // 'email.unique' => 'Email sudah pernah digunakan!',
                // 'nama_siswa.required' => 'Nama Siswa wajib diisi!',
                'no_identitas.required' => 'No identitas wajib diisi!',
                'no_identitas.unique' => 'No Identitas sudah pernah digunakan!',
    
                'jenis_kelamin.required' => 'Jenis Kelamin wajib diisi!',
                'tempat_lahir.required' => 'Tempat Lahir Wajib diisi!',
                'tanggal_lahir.required' => 'Tanggal Lahir Wajib diisi!',
                'alamat_siswa.required' => 'Alamat wajib diisi!',
                // 'no_telp_rumah' => 'No Telp Rumah Wajib diisi!',
                'no_hp_siswa.required' => 'No Hp Siswa Wajib diisi!',
                'no_hp_siswa.unique' => 'No.Whatsapp Siswa sudah pernah digunakan!',
                'no_hp_siswa.different' => 'No.Whatsapp Siswa tidak boleh sama dengan No Hp Orang tua!',
    
                'agama.required' => 'Agama wajib diisi!',
                'asal_sekolah.required' => 'Asal Sekolah wajib diisi!',
                'jurusan_sekolah.required' => 'Jurusan Sekolah wajib diisi!',
                'tingkatan_sekolah.required' => 'Tingkatan Sekolah wajib diisi!',
                'tahun_lulus_sekolah.required' => 'Tahun Lulus Sekolah Wajib diisi!',
                'nama_orang_tua.required' => 'Nama Orang Tua wajib diisi!',
                'alamat_orang_tua.required' => 'Alamat orang tua wajib diisi!',
                'no_hp_orang_tua.required'  => 'No Hp Orang tua wajib diisi!',
                'no_hp_orang_tua.unique'  => 'No Hp Orang tua sudah pernah digunakan!',
                'no_hp_orang_tua.different'  => 'No Hp Orang tua tidak boleh sama dengan No.Whatsapp Siswa!',
                'foto_siswa.required'  => 'Foto Siswa wajib diupload!',
                'foto_orang_tua.required'  => 'Foto Orang Tua wajib diupload!',
    
                // 'grup_pengguna.required' => 'Grup Pengguna wajib diisi!',
                // 'jabatan.required' => 'Jabatan wajib diisi!',
                // 'cabang.required' => 'Cabang wajib diisi!',
                // 'tahun_ajaran.required' => 'Tahun Ajaran wajib diisi!',
                // 'gelombang.required' => 'Gelombang wajib diisi!',
    
            ]);

        } else {
            $validatedData = [];
            $siswa = Siswa::find($request->siswa_id);
            if($request->no_hp_siswa == $siswa->no_hp_siswa) {
                $validatedData['no_hp_siswa'] = 'required';
            } else {
                $validatedData['no_hp_siswa'] = 'required|different:no_hp_orang_tua|unique:siswas,no_hp_siswa';
            }
    
            if($request->no_hp_orang_tua == $siswa->no_hp_orang_tua) {
                $validatedData['no_hp_orang_tua'] = 'required';
            } else {
                $validatedData['no_hp_orang_tua'] = 'required|different:no_hp_orang_tua|unique:siswas,no_hp_siswa';
            }
    
            if($request->email == $siswa->user->email) {
                $validatedData['email'] = 'required';
            } else {
                $validatedData['email'] = 'required|unique:users,email';
            }

            $request->validate($validatedData, [
                // 'email.required' => 'Email wajib diisi!',
                // 'email.unique' => 'Email sudah pernah digunakan!',
                // 'nama_siswa.required' => 'Nama Siswa wajib diisi!',
                'no_identitas.required' => 'No identitas wajib diisi!',
                'no_identitas.unique' => 'No Identitas sudah pernah digunakan!',

                'jenis_kelamin.required' => 'Jenis Kelamin wajib diisi!',
                'tempat_lahir.required' => 'Tempat Lahir Wajib diisi!',
                'tanggal_lahir.required' => 'Tanggal Lahir Wajib diisi!',
                'alamat_siswa.required' => 'Alamat wajib diisi!',
                // 'no_telp_rumah' => 'No Telp Rumah Wajib diisi!',
                'no_hp_siswa.required' => 'No Hp Siswa Wajib diisi!',
                'no_hp_siswa.unique' => 'No.Whatsapp Siswa sudah pernah digunakan!',
                'no_hp_siswa.different' => 'No.Whatsapp Siswa tidak boleh sama dengan No Hp Orang tua!',

                'agama.required' => 'Agama wajib diisi!',
                'asal_sekolah.required' => 'Asal Sekolah wajib diisi!',
                'jurusan_sekolah.required' => 'Jurusan Sekolah wajib diisi!',
                'tingkatan_sekolah.required' => 'Tingkatan Sekolah wajib diisi!',
                'tahun_lulus_sekolah.required' => 'Tahun Lulus Sekolah Wajib diisi!',
                'nama_orang_tua.required' => 'Nama Orang Tua wajib diisi!',
                'alamat_orang_tua.required' => 'Alamat orang tua wajib diisi!',
                'no_hp_orang_tua.required'  => 'No Hp Orang tua wajib diisi!',
                'no_hp_orang_tua.unique'  => 'No Hp Orang tua sudah pernah digunakan!',
                'no_hp_orang_tua.different'  => 'No Hp Orang tua tidak boleh sama dengan No.Whatsapp Siswa!',
                'foto_siswa.required'  => 'Foto Siswa wajib diupload!',
                'foto_orang_tua.required'  => 'Foto Orang Tua wajib diupload!',

                // 'grup_pengguna.required' => 'Grup Pengguna wajib diisi!',
                // 'jabatan.required' => 'Jabatan wajib diisi!',
                // 'cabang.required' => 'Cabang wajib diisi!',
                // 'tahun_ajaran.required' => 'Tahun Ajaran wajib diisi!',
                // 'gelombang.required' => 'Gelombang wajib diisi!',

            ]);
        }

        if(isset($request->randomNumber)) {
            $pesan = "Siswa bernama ".$request->nama_siswa." dengan nomor identitas ".$request->no_identitas." ini adalah nomor OTP anda untuk melanjutkan registrasi : ".$request->randomNumber;
            WaHelpers::sendWa($request->no_hp_siswa, $pesan);

            // return response()->json([
            //     'data' => 1111,
            //     'validate' => $request->no_hp_siswa,
            // ]);

            $data = [
                'name' => 'Untuk '.$request->nama_siswa,
                'body' => $pesan,
            ];

            Mail::to($request->email)->send(new KonfirmasiEmail($data));

            return response()->json([
                'data' => $request->randomNumber,
                'validate' => $request->no_hp_siswa,
            ]);
        }

        DB::beginTransaction();
        try {
            $siswa = Siswa::where('user_id', FacadesAuth::user()->id)->update([
                'no_identitas' => $request->no_identitas ?? null,
                'jenis_kelamin' => $request->jenis_kelamin ?? null,
                'tempat_lahir' => $request->tempat_lahir ?? null,
                'tanggal_lahir' => $request->tanggal_lahir ?? null,
                'alamat_siswa' => $request->alamat_siswa ?? null,
                'no_telp_rumah' => $request->no_telp_rumah ?? null,
                'no_hp_siswa' => $request->no_hp_siswa ?? null,
                'agama' => $request->agama ?? null,
                'asal_sekolah' => $request->asal_sekolah,
                'jurusan_sekolah' => $request->jurusan_sekolah,
                'tingkatan_sekolah' => $request->tingkatan_sekolah,
                'tahun_lulus_sekolah' => $request->tahun_lulus_sekolah,
                'nama_orang_tua' => $request->nama_orang_tua,
                'alamat_orang_tua' => $request->alamat_orang_tua,
                'no_hp_orang_tua'  => $request->no_hp_orang_tua,
                'foto_siswa' => $request->foto_siswa ? 'storage/'.$request->foto_siswa->store('foto_siswa', 'public') : null,
                'foto_orang_tua' => 'storage/'.$request->foto_orang_tua->store('foto_orang_tua', 'public'),
                'cabang' => $request->cabang,
                'tahun_ajaran' => $request->tahun_ajaran,
                'gelombang' => $request->gelombang,
            ]);


            DB::commit();

            $request->session()->regenerate();

            $pesan = "Siswa bernama ".$request->nama_siswa." dengan nomor identitas ".$request->no_identitas." telah melengkapi data pengguna!!";
            WaHelpers::sendWa($request->no_hp_siswa, $pesan);

            Helper::notifikasi($pesan, FacadesAuth::user()->id, 'Siswa');


            return redirect()->route('dashboard')->with('success', "Berhasil Mendaftar");
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollback();
            return back()->with('error','Gagal menambahkan user : ' . $th->getMessage())->withInput();
        }

    }

    public function index()
    {
        if(!Auth()->user()->can('view '.$this->menu)){
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }
        $breadcrumbs = $this->breadcrumbs;

        $title = $this->title;
        $url = $this->url;
        $menu = $this->menu;

        $datas = User::role('Siswa')->get();
        return view('pages.siswa.index', compact('title', 'url', 'menu', 'datas', 'breadcrumbs'));
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create()
    {
        if(!Auth()->user()->can('create '.$this->menu)){
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }
        $breadcrumbs = $this->breadcrumbs;

        $title = $this->title;
        $url = $this->url;
        $menu = $this->menu;

        $datas = User::all();
        return view('pages.siswa.create', compact('title', 'url', 'menu', 'datas', 'breadcrumbs'));

    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request)
    {
        if(!Auth()->user()->can('create '.$this->menu)){
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }

        if ($request->password != $request->c_password) {
    		return back()->with('error', 'Mohon Periksa Kembali Password Yang Anda Masukkan')->withInput();
        }

        $request->validate([
    		'email' => 'required|unique:users,email',
            'nama_siswa' => 'required',
            'no_identitas' => 'required',
            'jenis_kelamin' => 'required',
            'tempat_lahir' => 'required',
            'tanggal_lahir' => 'required',
            'alamat_siswa' => 'required',
            'no_telp_rumah' => 'required',
            'no_hp_siswa' => 'required',
            'agama' => 'required',
            'asal_sekolah' => 'required',
            'jurusan_sekolah' => 'required',
            'tingkatan_sekolah' => 'required',
            'tahun_lulus_sekolah' => 'required',
    		'password' => 'required',
    		'c_password' => 'required|same:password',
            'nama_orang_tua' => 'required',
            'alamat_orang_tua' => 'required',
            'no_hp_orang_tua'  => 'required',
            'foto_siswa'  => 'required',
        ]);

        DB::beginTransaction();
        try {
            $user = User::create([
                'nama' => $request->nama_siswa,
                'email' => $request->email,
                'password' => bcrypt($request->password),
            ]);

            $user->assignRole('Siswa');

            $siswa = Siswa::create([
                'user_id' => $user->id,
                'no_identitas' => $request->no_identitas,
                'nama_siswa' => $request->nama_siswa,
                'jenis_kelamin' => $request->jenis_kelamin,
                'tempat_lahir' => $request->tempat_lahir,
                'tanggal_lahir' => $request->tanggal_lahir,
                'alamat_siswa' => $request->alamat_siswa,
                'no_telp_rumah' => $request->no_telp_rumah,
                'no_hp_siswa' => $request->no_hp_siswa,
                'agama' => $request->agama,
                'asal_sekolah' => $request->asal_sekolah,
                'jurusan_sekolah' => $request->jurusan_sekolah,
                'tingkatan_sekolah' => $request->tingkatan_sekolah,
                'tahun_lulus_sekolah' => $request->tahun_lulus_sekolah,
                'nama_orang_tua' => $request->nama_orang_tua,
                'alamat_orang_tua' => $request->alamat_orang_tua,
                'no_hp_orang_tua'  => $request->no_hp_orang_tua,
                'foto_siswa' => 'storage/'.$request->foto_siswa->store('foto_siswa', 'public'),
            ]);

            DB::commit();
            return redirect()->route('siswa.index')->with('success','Berhasil menambahkan '.$this->title);
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollback();
            Log::error($th);
            return back()->with('error','Gagal menambahkan '.$this->title.' : ' . $th->getMessage())->withInput();
        }
    }

    /**
     * Display the specified resource.
     */
    public function show(Siswa $siswa)
    {

    }

    public function profil() {
        if(Auth()->user()->siswa) {
            $data['title'] = $this->title;
            $data['url'] = $this->url;
            $data['menu'] = $this->menu;
            // $data['siswa'] = Siswa::where('user_id', $id)->first();
            $data['pendaftaran'] = Pendaftaran::where('siswa_id', Auth()->user()->siswa->id)->first();
            $data['user'] = Auth()->user();
            if($data['pendaftaran']) {
                return view('pages.profil.show', $data);
                // return view('auth.profil', $data);
            } else {
                return back()->with('error', 'Selesaikan Registrasi dulu!');
            }
        } else {
            return back()->with('error', 'Anda bukan Siswa!');

        }


    }

    public function updateProfil(Request $request)
    {
        $id = base64_decode($request->id);
        $user = User::find($id);

        if(!$user) {
            return response()->json([
                'status' => false,
                'message' => "Tidak Tersedia!",
            ]);
        }

        // $request->validate([
        //     'nama' => 'required',
    	// 	'username' => 'required|unique:users,username,'.$user->id,
        //     'email' => 'required|unique:users,email,'.$user->id,
        //     'no_telp' => 'required',
        //     'negara' => 'required',
        //     'pendidikan_terakhir' => 'required',
    	// 	'password' => 'nullable|string',
        // ]);

        DB::beginTransaction();
        try {
            // if($request->password){
            //     if ($request->password != $request->c_password) {
            //         return back()->with('error', 'Mohon Periksa Kembali Password Yang Anda Masukkan')->withInput();
            //     }
                
            //     $user->update([
            //         'password' => bcrypt($request->password),
            //     ]);
            // }

            // $user->update([
            //     'nama' => $request->nama,
            //     'username' => $request->username,
            //     'email' => $request->email,
            //     'no_telp' => $request->no_telp,
            //     'negara' => $request->negara,
            //     'pendidikan_terakhir' => $request->pendidikan_terakhir,
            // ]);

            $siswa = Siswa::where('user_id', $user->id)->first();

            $siswa->user->update([
                'nama' => $request->nama_siswa,
                'email' => $request->email,
            ]);

            // $siswa->update([
            //     'no_identitas' => $request->no_identitas,
            //     'nama_siswa' => $request->nama_siswa,
            //     'jenis_kelamin' => $request->jenis_kelamin,
            //     'tempat_lahir' => $request->tempat_lahir,
            //     'tanggal_lahir' => $request->tanggal_lahir,
            //     'alamat_siswa' => $request->alamat_siswa,
            //     'no_telp_rumah' => $request->no_telp_rumah,
            //     'no_hp_siswa' => $request->no_hp_siswa,
            //     'agama' => $request->agama,
            //     'asal_sekolah' => $request->asal_sekolah,
            //     'jurusan_sekolah' => $request->jurusan_sekolah,
            //     'tingkatan_sekolah' => $request->tingkatan_sekolah,
            //     'tahun_lulus_sekolah' => $request->tahun_lulus_sekolah,
            //     'nama_orang_tua' => $request->nama_orang_tua,
            //     'alamat_orang_tua' => $request->alamat_orang_tua,
            //     'no_hp_orang_tua'  => $request->no_hp_orang_tua,
            // ]);

            $siswa->update([
                'no_identitas' => $request->no_identitas,
                // 'jenis_kelamin' => $request->jenis_kelamin,
                'tempat_lahir' => $request->tempat_lahir,
                'tanggal_lahir' => $request->tanggal_lahir,
                'alamat_siswa' => $request->alamat_siswa,
                'no_telp_rumah' => $request->no_telp_rumah,
                'no_hp_siswa' => $request->no_hp_siswa,
                // 'agama' => $request->agama,
                'asal_sekolah' => $request->asal_sekolah,
                'jurusan_sekolah' => $request->jurusan_sekolah,
                // 'tingkatan_sekolah' => $request->tingkatan_sekolah,
                'tahun_lulus_sekolah' => $request->tahun_lulus_sekolah,
                'nama_orang_tua' => $request->nama_orang_tua,
                'alamat_orang_tua' => $request->alamat_orang_tua,
                'no_hp_orang_tua'  => $request->no_hp_orang_tua,
                // 'foto_siswa' => 'storage/'.$request->foto_siswa->store('foto_siswa', 'public'),
                // 'foto_orang_tua' => 'storage/'.$request->foto_orang_tua->store('foto_orang_tua', 'public'),
            ]);

            if($request->foto_siswa) {
                $siswa->update([
                    'foto_siswa' => 'storage/'.$request->foto_siswa->store('foto_siswa', 'public'),
                ]);
            }

            if($request->foto_orang_tua) {
                $siswa->update([
                    'foto_orang_tua' => 'storage/'.$request->foto_orang_tua->store('foto_orang_tua', 'public'),
                ]);
            }

            DB::commit();


            if(isset($request->mobile)) {
                return redirect('sakura')->with('notif','Berhasil mengubah user dan mohon menutup laman ini dengan menekan tombol back dipojok kiri atas!');
            } else {
                return redirect()->route('dashboard')->with('success','Berhasil mengubah user');
            }
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollback();
            Log::error($th);
            return back()->with('error','Gagal mengubah profil : ' . $th->getMessage())->withInput();
        }
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(Siswa $siswa)
    {
        if(!Auth()->user()->can('edit '.$this->menu)){
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }
        $breadcrumbs = $this->breadcrumbs;

        $title = $this->title;
        $url = $this->url;
        $menu = $this->menu;

        return view('pages.siswa.edit', compact('title', 'url', 'menu', 'siswa', 'breadcrumbs'));
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, Siswa $siswa)
    {
        if(!Auth()->user()->can('edit '.$this->menu)){
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }

        // $request->validate([
    	// 	'email' => 'required|unique:users,email,'.$siswa->id,
        //     'nama_siswa' => 'required',
        //     'no_identitas' => 'required',
        //     'jenis_kelamin' => 'required',
        //     'tempat_lahir' => 'required',
        //     'tanggal_lahir' => 'required',
        //     'alamat_siswa' => 'required',
        //     'no_telp_rumah' => 'required',
        //     'no_hp_siswa' => 'required',
        //     'agama' => 'required',
        //     'asal_sekolah' => 'required',
        //     'jurusan_sekolah' => 'required',
        //     'tingkatan_sekolah' => 'required',
        //     'tahun_lulus_sekolah' => 'required',
        //     'nama_orang_tua' => 'required',
        //     'alamat_orang_tua' => 'required',
        //     'no_hp_orang_tua'  => 'required',
        // ]);

        $validatedData =
            [
                'nama_siswa' => 'required',
                // 'no_identitas' => 'required|unique:siswas,no_identitas',
                'jenis_kelamin' => 'required',
                'tempat_lahir' => 'required',
                'tanggal_lahir' => 'required',
                'alamat_siswa' => 'required',

                'agama' => 'required',
                'asal_sekolah' => 'required',
                'jurusan_sekolah' => 'required',
                'tingkatan_sekolah' => 'required',
                'tahun_lulus_sekolah' => 'required',
    
                'nama_orang_tua' => 'required',
                'alamat_orang_tua' => 'required',
                // 'foto_siswa'  => 'required',
                // 'foto_orang_tua'  => 'required',
    
                // 'no_telp_rumah' => 'required',
                // 'grup_pengguna' => 'required',
                // 'jabatan' => 'required',
                // 'cabang' => 'required',
                // 'tahun_ajaran' => 'required',
                // 'gelombang' => 'required',
    
                // 'password' => 'required',
                // 'c_password' => 'required|same:password',
            ];
        
        if($request->no_hp_siswa == $siswa->no_hp_siswa) {
            $validatedData['no_hp_siswa'] = 'required';
        } else {
            $validatedData['no_hp_siswa'] = 'required|different:no_hp_orang_tua|unique:siswas,no_hp_siswa';
        }

        if($request->no_hp_orang_tua == $siswa->no_hp_orang_tua) {
            $validatedData['no_hp_orang_tua'] = 'required';
        } else {
            $validatedData['no_hp_orang_tua'] = 'required|different:no_hp_orang_tua|unique:siswas,no_hp_siswa';
        }

        if($request->email == $siswa->user->email) {
            $validatedData['email'] = 'required';
        } else {
            $validatedData['email'] = 'required|unique:users,email';
        }

        
        if($request->no_identitas == $siswa->no_identitas) {
            $validatedData['no_identitas'] = 'required';
        } else {
            $validatedData['no_identitas'] = 'required|unique:siswas,no_identitas';
        }
        
        $request->validate($validatedData, [
            'email.required' => 'Email wajib diisi!',
            'email.unique' => 'Email sudah pernah digunakan!',
            'nama_siswa.required' => 'Nama Siswa wajib diisi!',
            'no_identitas.required' => 'No identitas wajib diisi!',
            'no_identitas.unique' => 'No Identitas sudah pernah digunakan!',

            'jenis_kelamin.required' => 'Jenis Kelamin wajib diisi!',
            'tempat_lahir.required' => 'Tempat Lahir Wajib diisi!',
            'tanggal_lahir.required' => 'Tanggal Lahir Wajib diisi!',
            'alamat_siswa.required' => 'Alamat wajib diisi!',
            // 'no_telp_rumah' => 'No Telp Rumah Wajib diisi!',
            'no_hp_siswa.required' => 'No Hp Siswa Wajib diisi!',
            'no_hp_siswa.unique' => 'No.Whatsapp Siswa sudah pernah digunakan!',
            'no_hp_siswa.different' => 'No.Whatsapp Siswa tidak boleh sama dengan No Hp Orang tua!',

            'agama.required' => 'Agama wajib diisi!',
            'asal_sekolah.required' => 'Asal Sekolah wajib diisi!',
            'jurusan_sekolah.required' => 'Jurusan Sekolah wajib diisi!',
            'tingkatan_sekolah.required' => 'Tingkatan Sekolah wajib diisi!',
            'tahun_lulus_sekolah.required' => 'Tahun Lulus Sekolah Wajib diisi!',
            'nama_orang_tua.required' => 'Nama Orang Tua wajib diisi!',
            'alamat_orang_tua.required' => 'Alamat orang tua wajib diisi!',
            'no_hp_orang_tua.required'  => 'No Hp Orang tua wajib diisi!',
            'no_hp_orang_tua.unique'  => 'No Hp Orang tua sudah pernah digunakan!',
            'no_hp_orang_tua.different'  => 'No Hp Orang tua tidak boleh sama dengan No.Whatsapp Siswa!',
            'foto_siswa.required'  => 'Foto Siswa wajib diupload!',
            'foto_orang_tua.required'  => 'Foto Orang Tua wajib diupload!',

            // 'grup_pengguna.required' => 'Grup Pengguna wajib diisi!',
            // 'jabatan.required' => 'Jabatan wajib diisi!',
            // 'cabang.required' => 'Cabang wajib diisi!',
            // 'tahun_ajaran.required' => 'Tahun Ajaran wajib diisi!',
            // 'gelombang.required' => 'Gelombang wajib diisi!',

        ]);

        DB::beginTransaction();
        try {
            // if($request->password){
            //     if ($request->password != $request->c_password) {
            //         return back()->with('error', 'Mohon Periksa Kembali Password Yang Anda Masukkan')->withInput();
            //     }

            //     $siswa->user->update([
            //         'password' => bcrypt($request->password),
            //     ]);
            // }

            $siswa->user->update([
                'nama' => $request->nama_siswa,
                'email' => $request->email,
            ]);

            // $siswa->update([
            //     'no_identitas' => $request->no_identitas,
            //     'nama_siswa' => $request->nama_siswa,
            //     'jenis_kelamin' => $request->jenis_kelamin,
            //     'tempat_lahir' => $request->tempat_lahir,
            //     'tanggal_lahir' => $request->tanggal_lahir,
            //     'alamat_siswa' => $request->alamat_siswa,
            //     'no_telp_rumah' => $request->no_telp_rumah,
            //     'no_hp_siswa' => $request->no_hp_siswa,
            //     'agama' => $request->agama,
            //     'asal_sekolah' => $request->asal_sekolah,
            //     'jurusan_sekolah' => $request->jurusan_sekolah,
            //     'tingkatan_sekolah' => $request->tingkatan_sekolah,
            //     'tahun_lulus_sekolah' => $request->tahun_lulus_sekolah,
            //     'nama_orang_tua' => $request->nama_orang_tua,
            //     'alamat_orang_tua' => $request->alamat_orang_tua,
            //     'no_hp_orang_tua'  => $request->no_hp_orang_tua,
            // ]);

            $siswa->update([
                'no_identitas' => $request->no_identitas,
                'jenis_kelamin' => $request->jenis_kelamin,
                'tempat_lahir' => $request->tempat_lahir,
                'tanggal_lahir' => $request->tanggal_lahir,
                'alamat_siswa' => $request->alamat_siswa,
                'no_telp_rumah' => $request->no_telp_rumah,
                'no_hp_siswa' => $request->no_hp_siswa,
                'agama' => $request->agama,
                'asal_sekolah' => $request->asal_sekolah,
                'jurusan_sekolah' => $request->jurusan_sekolah,
                'tingkatan_sekolah' => $request->tingkatan_sekolah,
                'tahun_lulus_sekolah' => $request->tahun_lulus_sekolah,
                'nama_orang_tua' => $request->nama_orang_tua,
                'alamat_orang_tua' => $request->alamat_orang_tua,
                'no_hp_orang_tua'  => $request->no_hp_orang_tua,
                // 'foto_siswa' => 'storage/'.$request->foto_siswa->store('foto_siswa', 'public'),
                // 'foto_orang_tua' => 'storage/'.$request->foto_orang_tua->store('foto_orang_tua', 'public'),
            ]);

            if($request->foto_siswa) {
                $siswa->update([
                    'foto_siswa' => 'storage/'.$request->foto_siswa->store('foto_siswa', 'public'),
                ]);
            }

            if($request->foto_orang_tua) {
                $siswa->update([
                    'foto_orang_tua' => 'storage/'.$request->foto_orang_tua->store('foto_orang_tua', 'public'),
                ]);
            }


            DB::commit();
            return redirect()->route('siswa.index')->with('success','Berhasil mengubah ' . $this->title);
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollback();
            Log::error($th);
            return back()->with('error','Gagal mengubah '.$this->title.' : ' . $th->getMessage())->withInput();
        }
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(Siswa $siswa)
    {
        if(!Auth()->user()->can('delete '.$this->menu)){
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }

        DB::beginTransaction();
        try {
            $siswa->user->syncRoles([]);
            $user = $siswa->user;
            $siswa->delete();
            $user->delete();
            DB::commit();
            return redirect()->route('siswa.index')->with('success','Berhasil menghapus ' . $this->title);
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollback();
            Log::error($th);
            return redirect()->route('siswa.index')->with('error','Gagal menghapus '.$this->title.' : ' . $th->getMessage());
        }
    }
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]