Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/demo-profile.aplikasipos.info/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/www/demo-profile.aplikasipos.info/app/Http/Controllers/WasitController.php

<?php

namespace App\Http\Controllers;

use App\Exports\atlitExport;
use App\Exports\wasitExport;
use App\Models\cabor;
use App\Models\sertifikatWasit;
use App\Models\users;
use App\Models\wasit;
use Carbon\Carbon;
use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Facades\Excel;

class WasitController extends Controller
{
    public function index()
    {
        $data['cabor'] = cabor::get();
        $data['wasit'] = wasit::with('sertifikatWasit')->orderby('cabor', 'asc')->paginate('15');
        return view('admin.wasit.index')->with($data);
    }
    public function create()
    {
        $data['cabor'] = cabor::get();
        return view('admin.wasit.add')->with($data);
    }
    public function show(String $id)
    {
        $decryptedId = Crypt::decryptString($id);
        $data['cabor'] = cabor::get();
        $data['wasit'] = wasit::with('user')->where('user_id', $decryptedId)->first();
        if (Auth()->user()->role == 4) {


            return view('users.wasit.edit')->with($data);
        } else {


            return view('admin.wasit.edit')->with($data);
        }
    }
    public function store(Request $request)
    {
        DB::beginTransaction();
        try {
            $request->validate([
                'username' => 'required',
                'email' => 'required|email|unique:users',
                'password' => 'required|min:6',
                'photo' => 'required|mimes:jpg,jpeg,png|max:2000',
            ], ['email.unique' => 'Email telah diGunakan', 'sertifikat.mimetypes' => 'Sertifikat haruslah berformat PDF.', 'sertifikat.max' =>  'File Sertifikat tidak boleh lebih dari 2mb!']);
            // tambahkan user
            $dataakun = [
                'username' => $request->username,
                'email' => $request->email,
                'password' => Hash::make($request->password),
                'role' => 4,


            ];

            if ($request->hasFile('photo')) {
                $foto_file = $request->file('photo');
                $foto_ekstensi = $foto_file->extension();
                $foto_baru = "wasit-" . date('ymdhis') . ".$foto_ekstensi";
                $foto_file->move(public_path('images/wasit'), $foto_baru);
                $dataakun['photo'] = $foto_baru;
            }
            users::create($dataakun);
            // tambahkan table bantu
            $user_id = users::latest()->first()->id;
            $request->validate([
                'cabor' => 'required',
                'nama_lengkap' => 'required',
                'NIK' => 'required',
                'jenis_kelamin' => 'required',
                'tempat_lahir' => 'required',
                'tanggal_lahir' => 'required|date|date_format:Y-m-d',
                'golongan_darah' => 'required',
                'pendidikan_terakhir' => 'required',
                'pekerjaan' => 'required',
                'no_telp' => 'required',
                'status_kawin' => 'required',
                'no_paspor' => 'nullable',
                'masa_berlaku' => 'nullable|date|date_format:Y-m-d',
                'tempat_terbit' => 'nullable',
                'alamat_domisili' => 'required',
                'asal_kota' => 'required',
                // data diri
                // data fisik
                'berat_badan' => 'required',
                'tinggi_badan' => 'required',
                'size_sepatu' => 'required',
                'size_baju' => 'required',
                'size_celana' => 'required',
                'size_topi' => 'required',
                'size_training' => 'required',
                // data fisik
                // data kualifikasi

                'level' => 'required',
                'no_sertifikat' => 'required',
                'jenis_sertifikat' => 'required',
                'keterangan' => 'required',
                'lembaga' => 'required',
                'nama_club' => 'required',
                'alamat_club' => 'required',
                'sertifikat' => 'nullable|file|mimetypes:application/pdf|max:2000'
            ], ['sertifikat.mimetypes' => 'Sertifikat haruslah berformat PDF.', 'sertifikat.max' =>  'File Sertifikat tidak boleh lebih dari 2mb!', 'photo.max' => 'Foto yang tidak boleh diatas 2mb!']);


            //Umur otomatis
            $tanggal_lahir = Carbon::parse($request->tanggal_lahir);
            $tanggal_sekarang = Carbon::now();
            $umur = $tanggal_lahir->diffInYears($tanggal_sekarang);
            //Umur otomatis

            $data = [
                'user_id' => $user_id,
                // data diri
                'cabor' => $request->cabor,
                'nama_lengkap' => $request->nama_lengkap,
                'NIK' => $request->NIK,
                'jenis_kelamin' => $request->jenis_kelamin,
                'umur' => $umur,
                'tempat_lahir' => $request->tempat_lahir,
                'tanggal_lahir' => $request->tanggal_lahir,
                'golongan_darah' => $request->golongan_darah,
                'pendidikan_terakhir' => $request->pendidikan_terakhir,
                'pekerjaan' => $request->pekerjaan,
                'pekerjaan_lainnya' => $request->pekerjaan_lainnya,
                'no_telp' => $request->no_telp,
                'status_kawin' => $request->status_kawin,
                'no_paspor' => $request->no_paspor,
                'masa_berlaku' => $request->masa_berlaku,
                'tempat_terbit' => $request->tempat_terbit,
                'alamat_domisili' => $request->alamat_domisili,
                'asal_kota' => $request->asal_kota,
                // data diri
                // data fisik
                'berat_badan' => $request->berat_badan,
                'tinggi_badan' => $request->tinggi_badan,
                'size_sepatu' => $request->size_sepatu,
                'size_baju' => $request->size_baju,
                'size_celana' => $request->size_celana,
                'size_topi' => $request->size_topi,
                'size_training' => $request->size_training,
                // data fisik
                // data kualifikasi
                'disiplin_cabor' => $request->cabor,
                'level' => $request->level,
                'no_sertifikat' => $request->no_sertifikat,
                'jenis_sertifikat' => $request->jenis_sertifikat,
                'keterangan' => $request->keterangan,
                'lembaga' => $request->lembaga,
                'nama_club' => $request->nama_club,
                'alamat_club' => $request->alamat_club,
                // data kualifikasi

            ];
            if ($request->hasFile('sertifikat')) {
                $sertifikat_file = $request->file('sertifikat');
                $sertifikat_baru = "Sertifikat-" .  $sertifikat_file->getClientOriginalName();
                $sertifikat_file->move(public_path('documents/wasit'), $sertifikat_baru);
                $data['sertifikat'] = $sertifikat_baru;
            }

            $create = wasit::create($data);
            DB::commit();
            if ($create) {
                if (auth()->check()) {
                    if (auth()->user()->role == 0 || auth()->user()->role == 1) {
                        return redirect()->route('wasits.index')->with('success', 'Data baru telah ditambahkan');
                    } else {
                        return redirect()->route('login')->with('success', 'Akun Anda berhasil ditambahkan.');
                    }
                } else {
                    return redirect()->route('login')->with('success', 'Akun Anda berhasil ditambahkan.');
                }
            } else {
                return redirect()->route('wasits.index')->with('error', 'Data gagal ditambahkan');
            }
        } catch (DecryptException $e) {
            DB::rollback();
            return redirect()->back()->with('error', 'Akun Gagal dibuat!');
        }
    }
    public function update(Request $request, String $id)
    {
        $decryptedId = Crypt::decryptString($id);
        $request->validate([
            'username' => 'required',
            'email' => 'email',
            'password' => 'nullable',
            'password_confirm' => 'nullable|same:password',
            'photo' => 'nullable|mimes:jpg,jpeg,png|max:2000',
            'cabor' => 'required',
            'nama_lengkap' => 'required',
            'NIK' => 'required',
            'jenis_kelamin' => 'required',
            'tempat_lahir' => 'required',
            'tanggal_lahir' => 'required|date|date_format:Y-m-d',
            'golongan_darah' => 'required',
            'pendidikan_terakhir' => 'required',
            'pekerjaan' => 'required',
            'no_telp' => 'required',
            'status_kawin' => 'required',
            'no_paspor' => 'nullable',
            'masa_berlaku' => 'nullable|date|date_format:Y-m-d',
            'tempat_terbit' => 'nullable',
            'alamat_domisili' => 'required',
            'asal_kota' => 'required',
            // data diri
            // data fisik
            'berat_badan' => 'required',
            'tinggi_badan' => 'required',
            'size_sepatu' => 'required',
            'size_baju' => 'required',
            'size_celana' => 'required',
            'size_topi' => 'required',
            'size_training' => 'required',
            // data fisik
            // data kualifikasi

            'level' => 'required',
            'no_sertifikat' => 'required',
            'jenis_sertifikat' => 'required',
            'keterangan' => 'required',
            'lembaga' => 'required',
            'nama_club' => 'required',
            'alamat_club' => 'required',
            'sertifikat' => 'nullable|file|mimetypes:application/pdf|max:2000'
        ], ['sertifikat.mimetypes' => 'Sertifikat haruslah berformat PDF.', 'sertifikat.max' =>  'File Sertifikat tidak boleh lebih dari 2mb!', 'photo.max' => 'Foto yang tidak boleh diatas 2mb!']);

        try {
            $dataakun = [
                'username' => $request->username,
                'email' => $request->email,

            ];
            if ($request->password != '') {
                $dataakun['password'] = Hash::make($request->password);
            }
            if ($request->hasFile('photo')) {
                $foto_file = $request->file('photo');
                $foto_ekstensi = $foto_file->extension();
                $foto_baru = "wasit-" . date('ymdhis') . ".$foto_ekstensi";
                $foto_file->move(public_path('images/wasit'), $foto_baru);
                $dataakun['photo'] = $foto_baru;
                $getfoto = wasit::where('user_id', $decryptedId)->first();
                $foto_lama = $getfoto->photo;
                File::delete(public_path('images/wasit') . "/" . $foto_lama);
            }

            users::where('id', $decryptedId)->update($dataakun);

            //Umur otomatis
            $tanggal_lahir = Carbon::parse($request->tanggal_lahir);
            $tanggal_sekarang = Carbon::now();
            $umur = $tanggal_lahir->diffInYears($tanggal_sekarang);
            //Umur otomatis

            $data = [
                // data diri
                'cabor' => $request->cabor,
                'nama_lengkap' => $request->nama_lengkap,
                'NIK' => $request->NIK,
                'jenis_kelamin' => $request->jenis_kelamin,
                'umur' => $umur,
                'tempat_lahir' => $request->tempat_lahir,
                'tanggal_lahir' => $request->tanggal_lahir,
                'golongan_darah' => $request->golongan_darah,
                'pendidikan_terakhir' => $request->pendidikan_terakhir,
                'pekerjaan' => $request->pekerjaan,
                'pekerjaan_lainnya' => $request->pekerjaan_lainnya,
                'no_telp' => $request->no_telp,
                'status_kawin' => $request->status_kawin,
                'no_paspor' => $request->no_paspor,
                'masa_berlaku' => $request->masa_berlaku,
                'tempat_terbit' => $request->tempat_terbit,
                'alamat_domisili' => $request->alamat_domisili,
                'asal_kota' => $request->asal_kota,
                'berat_badan' => $request->berat_badan,
                'tinggi_badan' => $request->tinggi_badan,
                'size_sepatu' => $request->size_sepatu,
                'size_baju' => $request->size_baju,
                'size_celana' => $request->size_celana,
                'size_topi' => $request->size_topi,
                'size_training' => $request->size_training,
                // data diri
                // data kualifikasi
                'disiplin_cabor' => $request->cabor,
                'level' => $request->level,
                'no_sertifikat' => $request->no_sertifikat,
                'jenis_sertifikat' => $request->jenis_sertifikat,
                'keterangan' => $request->keterangan,
                'lembaga' => $request->lembaga,
                'nama_club' => $request->nama_club,
                'alamat_club' => $request->alamat_club,
                // data kualifikasi
            ];
            if ($request->hasFile('sertifikat')) {
                $sertifikat_file = $request->file('sertifikat');
                $sertifikat_baru = "Sertifikat-" .  $sertifikat_file->getClientOriginalName();
                $sertifikat_file->move(public_path('documents/wasit'), $sertifikat_baru);
                $data['sertifikat'] = $sertifikat_baru;
                $get_serti = wasit::where('user_id', $decryptedId)->first();
                $sertifikat_lama = $get_serti->sertifikat;
                File::delete(public_path('documents/wasit') . "/" . $sertifikat_lama);
            }

            $update = wasit::where('user_id', $decryptedId)->update($data);
            if ($update) {
                if (Auth()->user()->role == 0 || Auth()->user()->role == 1) {


                    return redirect()->back()->with('success', 'Data Berhasil Di Ubah!');
                } else {

                    return redirect()->back()->with('success', 'Data Berhasil Di Ubah!');
                }
            } else {
                return redirect()->back()->with('error', 'Data gagal diedit');
            }
        } catch (DecryptException $e) {
            return redirect()->back()->with('error', 'Data gagal diedit');
        }
    }
    public function destroy(String $id)
    {
        try {
            $decryptedId = Crypt::decryptString($id);
            $user = users::with('wasit')->where('id', $decryptedId);
            $wasit = $user->first();

            File::delete(public_path('images/wasit') . "/" . $wasit->photo);
            File::delete(public_path('documents/wasit') . "/" . $wasit->wasit->sertifikat);
            $sertifikatwasit = sertifikatWasit::where('wasit_id', $wasit->wasit->id)->get();

            // File::delete(public_path('documents/wasit') . "/" . $foto->sertifikat);
            foreach ($sertifikatwasit as $item) {
                $sertifikatPath = public_path('documents/wasit') . "/" . $item->sertifikat;

                if (file_exists($sertifikatPath)) {
                    File::delete($sertifikatPath);
                }
            }
            $user->delete();
            return redirect()->route('wasits.index')->with('delete', 'Data berhasil dihapus!');
        } catch (DecryptException $e) {
            return redirect()->back()->with('error', 'Invalid ID');
        }
    }
    public function export()
    {
        $data = Wasit::select(
            'nama_lengkap',
            'cabor',
            'users.email',
            DB::raw('CONCAT(":", NIK) as NIK'),
            'jenis_kelamin',
            'umur',
            'tempat_lahir',
            'tanggal_lahir',
            'golongan_darah',
            'pendidikan_terakhir',
            'pekerjaan',
            'pekerjaan_lainnya',
            'no_telp',
            'status_kawin',
            'no_paspor',
            'masa_berlaku',
            'tempat_terbit',
            'alamat_domisili',
            'asal_kota',
            'berat_badan',
            'size_sepatu',
            'size_baju',
            'size_celana',
            'size_topi',
            'size_training',
            'level',
            'no_sertifikat',
            'keterangan',
            'lembaga',
            'nama_club',
            'alamat_club',


        )->leftJoin('users', 'user_id', '=', 'users.id') // Menggabungkan dengan tabel 'users'
            ->get();

        // Proses data, ubah "jenis_kelamin" menjadi "laki-laki" jika kondisi terpenuhi.

        $data->each(function ($item) {
            if ($item->jenis_kelamin == 0) {
                $item->jenis_kelamin = 'laki-laki';
            } else {
                $item->jenis_kelamin = 'perempuan';
            }
            if ($item->status_kawin == 0) {
                $item->status_kawin = 'Kawin';
            } else {
                $item->status_kawin = 'Belum Kawin';
            }
        });

        // Export data ke file Excel
        return Excel::download(new wasitExport($data), 'DataWasit.xlsx');
    }
    public function filterWasit(Request $request)
    {
        $cabor = $request->cabor;
        $nama = $request->nama;
        $data['cabor2'] = $cabor;
        $data['request'] = $request;
        $data['cabor'] = cabor::get();
        $wasit = wasit::query();
        if ($cabor != '') {

            $wasit->where('cabor', 'like', "%" . $cabor . "%");
        }
        if ($nama != '') {
            $wasit->where('nama_lengkap', 'like', "%" . $nama . "%");
        }
        $data['wasit'] = $wasit->paginate(15);

        return view('admin.wasit.filter')->with($data);
    }
    public function exportWasit(Request $request)
    {
        $cabor = $request->cabor;
        $nama = $request->nama;
        $data = wasit::where('cabor', 'like', "%" . $cabor . "%")->where('nama_lengkap', 'like', "%" . $nama . "%")->select(
            'nama_lengkap',
            'cabor',
            'users.email',
            DB::raw('CONCAT(":", NIK) as NIK'),
            'jenis_kelamin',
            'umur',
            'tempat_lahir',
            'tanggal_lahir',
            'golongan_darah',
            'pendidikan_terakhir',
            'pekerjaan',
            'pekerjaan_lainnya',
            'no_telp',
            'status_kawin',
            'no_paspor',
            'masa_berlaku',
            'tempat_terbit',
            'alamat_domisili',
            'asal_kota',
            'berat_badan',
            'size_sepatu',
            'size_baju',
            'size_celana',
            'size_topi',
            'size_training',
            'level',
            'no_sertifikat',
            'keterangan',
            'lembaga',
            'nama_club',
            'alamat_club',


        )->leftJoin('users', 'user_id', '=', 'users.id')
            ->get();



        $data->each(function ($item) {
            if ($item->jenis_kelamin == 0) {
                $item->jenis_kelamin = 'laki-laki';
            } else {
                $item->jenis_kelamin = 'perempuan';
            }
            if ($item->status_kawin == 0) {
                $item->status_kawin = 'Kawin';
            } else {
                $item->status_kawin = 'Belum Kawin';
            }
        });

        // Export data ke file Excel
        return Excel::download(new wasitExport($data), 'DataWasit.xlsx');
    }
}

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