<?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]