Anons79 Mini Shell

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

<?php

namespace App\Http\Controllers;

use App\Helpers\Helper;
use App\Models\Siswa;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Routing\UrlGenerator;


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

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

    public function __construct(UrlGenerator $urlGenerator)
    {
        $this->breadcrumbs = [
            ['title' => 'Home', 'url' => $urlGenerator->route('admin.dashboard')],
            ['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 = Siswa::with('kelurahan.kecamatan.kabupaten')->orderBy('created_at','DESC')->get();
        return view('admin.pages.siswa.index', compact('title', 'url', 'menu', 'datas', 'breadcrumbs'));
    }
    
    /**
     * Display the specified resource.
     */
    public function show($id)
    {
        if(!Auth()->user()->can('view '.$this->menu)){            
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }
        $siswa = Siswa::with(['sekolah.siswas'=>function($w){
            $w->select('siswas.*',DB::raw("TIMESTAMPDIFF(day, DATE(tanggal_lahir), CURDATE()) as age_date"),DB::raw("(
                6371 * 2 
                * ASIN(SQRT(POWER(SIN((siswas.lintang - s.lintang) * pi()/180 / 2), 2)
                + COS(siswas.lintang * pi()/180 )
                * COS(s.lintang * pi()/180)
                * POWER(SIN((siswas.bujur - s.bujur) * pi()/180 / 2), 2) ))
            ) as distance"))
            ->join('sekolah_siswas as ss','ss.siswa_id','=','siswas.id')
            ->join('sekolahs as s','ss.sekolah_id','=','s.id')
            ->where('jalur_pendaftaran',DB::raw('s.jalur_pendaftaran'))
            ->where('status','diverifikasi')
            ->with('media')->whereHas('media',function($query){
                $query->where('collection_name','kartu_keluargas');
            })->orderBy('pivot_nomor_pilihan','ASC')
            ->orderBy('distance','ASC')
            ->orderBy('age_date','DESC')
            ->orderBy('created_at','ASC')
            ->groupBy('siswas.id');
        }])->findOrFail($id);
        // dd($siswa->toArray());
        $breadcrumbs = $this->breadcrumbs;
        
        $title = $this->title;
        $url = $this->url;
        $menu = $this->menu;
        
        return view('admin.pages.siswa.detail', compact('title', 'url', 'menu', 'siswa', 'breadcrumbs'));
    }

    /**
     * Show the form for editing the specified resource.
     */
    
    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');
        }

        DB::beginTransaction();
        try {
            $status = "diproses";
            if ($request->terima) {
                $status = "diverifikasi";
            }else if($request->tolak){
                $status = "ditolak";
            }
            $no_pendaftaran = Helper::generateNoPendaftaran();
            $siswa->update([
                'no_pendaftaran' => $no_pendaftaran,
                'status' => $status,
            ]);

            DB::commit();
            return redirect()->route('siswa.index')->with('success','Data Berhasil Disimpan');
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollback();
            Log::error($th);
            return back()->with('error','Gagal : ' . $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->delete();
            DB::commit();
            return redirect()->route('siswa.index')->with('success','Berhasil menghapus siswa');
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollback();
            Log::error($th);
            return redirect()->route('siswa.index')->with('error','Gagal menghapus siswa : ' . $th->getMessage());
        }
    }
}

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