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/TukarPointController.php

<?php

namespace App\Http\Controllers;

use App\Models\BarangTukar;
use App\Models\BarangTukarPoint;
use App\Models\Siswa;
use App\Models\TukarPoint;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class TukarPointController extends Controller
{
    public $breadcrumbs;
    public $menu = "tukar_point";

    public function index()
    {
        //
        if(!Auth()->user()->can($this->menu)){            
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }
        $breadcrumbs = $this->breadcrumbs;
        
        $title = "Tukar Point";
        $url = "tukar_point";
        $menu = $this->menu;
        
        // $datas = ApiTools::all();
        $datas = BarangTukar::paginate(10);
        // dd($datas);
        return view('pages.tukar_point.index', compact('title', 'url', 'menu', 'datas', 'breadcrumbs'));
    }

    public function show($id) {
        //
        if(!Auth()->user()->can($this->menu)){            
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }
        $breadcrumbs = $this->breadcrumbs;
        
        $title = "Detail Tukar Point";
        $url = "tukar_point";
        $menu = $this->menu;
        
        // $datas = ApiTools::all();
        $data = BarangTukar::find($id);
        // dd($datas);
        return view('pages.tukar_point.detail', compact('title', 'url', 'menu', 'data', 'breadcrumbs'));
    }

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

        $breadcrumbs = $this->breadcrumbs;
        
        $title = "Detail Tukar Point";
        $url = "tukar_point";
        $menu = $this->menu;
        
        $user = Auth::user();
        $datas = BarangTukarPoint::with('barang_tukar')->whereNull('tukar_point_id')->where('user_id', $user->id)->get();

        return view('pages.tukar_point.keranjang', compact('title', 'url', 'menu', 'datas', 'breadcrumbs'));

    }

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

        try {
            $user = Auth::user();
            $barangTukar = BarangTukarPoint::where('barang_tukar_id', $id)->whereNull('tukar_point_id')->where('user_id', $user->id)->first();

            if($barangTukar) {
                $TukarPointKeranjang = BarangTukarPoint::find($barangTukar->id);
                $TukarPointKeranjang->jumlah = $TukarPointKeranjang->jumlah + 1;
            } else {
                $TukarPointKeranjang = new BarangTukarPoint;
                $TukarPointKeranjang->jumlah = 1;
            }
            $TukarPointKeranjang->barang_tukar_id = $id;
            $TukarPointKeranjang->user_id = $user->id;
            $TukarPointKeranjang->save();

            $message = 'Barang berhasil ditambah ke keranjang!.';
            return redirect()->back()->with('success',$message);
            // return response()->json([
            //     'status' => true,
            //     'type' => 'Success',
            //     'message' => $message,
            //     // 'jadwal_id' => $jadwal->id,
            //     // 'jadwal' => $jadwal,
            // ], 200);
        } catch (\Throwable $th) {
            return response()->json([
                'status' => false,
                'message' => $th->getMessage(),
            ], 500);
        }


    }

    private function ambilHurufDepan($string) {
        // Pisahkan string menjadi array berdasarkan spasi
        $kataArray = explode(' ', $string);
        
        // Ambil huruf pertama dari setiap kata
        $hurufDepan = array_map(function($kata) {
            return substr($kata, 0, 1);
        }, $kataArray);
        
        // Gabungkan huruf-huruf menjadi string
        return implode('', $hurufDepan);
    }

    public function checkout(Request $request) {
        $user = Auth::user();
        $siswa = Siswa::where('user_id', $user->id)->first();

        $TukarPoint = TukarPoint::create([
            'user_id' => $user->id,
            'kode' => $this->ambilHurufDepan($siswa ? $siswa->nama_siswa : 'Petugas').'-'.date('YmdHis'),
            'tanggal_tukar_point' => date('Y-m-d h:i:s'),
            'status' => 'pending',
            'total_point' => $request->total,
        ]);

        $barangTukar = BarangTukarPoint::whereNull('tukar_point_id')->where('user_id', $user->id)->update([
            'tukar_point_id' => $TukarPoint->id
        ]);

        $barangTukarList = BarangTukarPoint::where('tukar_point_id', $TukarPoint->id)->get();
        foreach($barangTukarList as $a) {
            $barang = BarangTukar::where('id', $a->barang_tukar_id)->first();
            $barangTukarharga = BarangTukarPoint::where('tukar_point_id', $TukarPoint->id)->where('user_id', $user->id)->where('barang_tukar_id', $barang->id)->update([
                'point' => $barang->point
            ]);
        }

        return redirect('transaksi_barang_tukar/'.$TukarPoint->id)->with('success','Ajukan detail transaksi ini ke pelatih untuk mengambil barang yang dicheckout!');
        
    }

    public function update_keranjang($id, Request $request) {
        $barang = BarangTukarPoint::find($id);
        if($request->type == "true") {
            $barang->jumlah = $barang->jumlah + 1;
        } else {
            if($barang->jumlah > 1) {
                $barang->jumlah = $barang->jumlah - 1;
            }
        }
        $barang->save();

        // $message = 'Barang berhasil diubah ke keranjang!.';
        return redirect()->back();
    }

    public function destroy($id) {
        $barang = BarangTukarPoint::find($id);
        $barang->delete();
        $message = 'Barang berhasil dihapus di keranjang!.';
        return redirect()->back()->with('success',$message);
    }
}

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