<?php
namespace App\Http\Controllers;
use App\Models\Pesanan; use App\Models\Post; use App\Models\PesananDetail; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use App\Http\Controllers\Controller; use App\Http\Requests\StorePesananRequest; use App\Http\Requests\UpdatePesananRequest;
class PesananController extends Controller { /** * Display a listing of the resource. */ public function __construct() { $this->middleware('auth'); }
public function index() { $post = post::where('id', $id)->first(); return view('pesan.index', compact('barang')); }
/** * Show the form for creating a new resource. */ public function create() { // }
/** * Store a newly created resource in storage. */ public function store(StorePesananRequest $request) { // }
/** * Display the specified resource. */ public function show(Pesanan $pesanan) { // }
/** * Show the form for editing the specified resource. */ public function edit(Pesanan $pesanan) { // }
/** * Update the specified resource in storage. */ public function update(UpdatePesananRequest $request, Pesanan $pesanan) { // }
/** * Remove the specified resource from storage. */ public function destroy(Pesanan $pesanan) { // }
public function pesan(Request $request, $id) { // dd($request); $post = Post::where('id', $id)->first();
// cek validasi pesanan melebihi stok // if($request->jumlah_pesan > $post->stok) // { // return redirect("/post")->with('No', 'Stok Kurang Dari Pesanan Anda'); // } // cek validasi pesanan $cek_pesanan = Pesanan::where('user_id', Auth::user()->id)->where('status',0)->first(); // simpan ke pesanan if(empty($cek_pesanan)) { $pesanan = new Pesanan; $pesanan->user_id = Auth::user()->id; $pesanan->status = 0; $pesanan->jumlah_harga = 0; $pesanan->save(); }
$pesanan_baru = Pesanan::where('user_id', Auth::user()->id)->where('status',0)->first();
// cek pesanan_detail $cek_pesanan_detail = PesananDetail::where('post_id', $post->id)->where('pesanan_id', $pesanan_baru->id)->first(); if(empty($cek_pesanan_detail)) { $pesanan_detail = new PesananDetail; $pesanan_detail->post_id = $post->id; $pesanan_detail->pesanan_id = $pesanan_baru->id; $pesanan_detail->jumlah = $request->jumlah_pesan; $pesanan_detail->jumlah_harga = $post->harga*$request->jumlah_pesan; $pesanan_detail->save(); }else { $pesanan_detail = PesananDetail::where('post_id', $post->id)->where('pesanan_id', $pesanan_baru->id)->first(); $pesanan_detail->jumlah = $pesanan_detail->jumlah+$request->jumlah_pesan;
// harga sekarang setelah update $harga_pesanan_detail_baru = $post->harga*$request->jumlah_pesan; $pesanan_detail->jumlah_harga = $pesanan_detail->jumlah_harga+$harga_pesanan_detail_baru; $pesanan_detail->update(); } // jumlah total $pesanan = Pesanan::where('user_id', Auth::user()->id)->where('status',0)->first(); $pesanan->jumlah_harga = $pesanan->jumlah_harga+$post->harga*$request->jumlah_pesan; $pesanan->update();
return redirect('home'); }
public function check_out() { $pesanan = Pesanan::where('user_id', Auth::user()->id)->where('status',0)->first(); if(!empty($pesanan)) { $pesanan_details = PesananDetail::where('pesanan_id', $pesanan->id)->get(); }
return view('checkout.check_out', compact('pesanan','pesanan_details')); }
public function delete($id) { $pesanan_detail = PesananDetail::where('id', $id)->first();
$pesanan = Pesanan::where('id', $pesanan_detail->pesanan_id)->first(); $pesanan->jumlah_harga = $pesanan->jumlah_harga-$pesanan_detail->jumlah_harga; $pesanan->update();
$pesanan_detail->delete(); // Allert::error('Pesanan Sukses Dihapus', 'Hapus'); return redirect('check-out'); } public function konfirmasi() { $pesanan = Pesanan::where('user_id', Auth::user()->id)->where('status',0)->first(); $pesanan->status = 1; $pesanan->update();
return redirect('check-out'); } } |