Untitled
unknown
plain_text
a year ago
4.9 kB
3
Indexable
<?php namespace App\Controllers; use App\Controllers\BaseController; use App\Models\ModelPembelian; class Pembelian extends BaseController { public function __construct() { $this->ModelPembelian = new ModelPembelian(); } public function index() { $data = [ 'judul' => 'Pembelian', 'produk' => $this->ModelPembelian->AllProduk(), 'cart_items' => session()->get('cart_items') ?? [] , ]; return view('v_pembelian', $data); } public function getProdukDetails($kode_produk) { if ($this->request->isAJAX()) { $produk = $this->ModelPembelian->getProdukById($kode_produk); return $this->response->setJSON($produk); } } // public function updateStock() // { // $kode_produk = $this->request->getPost('kode_produk'); // $qty = $this->request->getPost('qty'); // // Validasi input // if (empty($kode_produk) || empty($qty)) { // session()->setFlashdata('error', 'Kode produk dan jumlah tidak boleh kosong'); // return redirect()->to(base_url('Pembelian')); // } // // Update stok produk // $result = $this->ModelPembelian->updateStok($kode_produk, $qty); // if ($result) { // // Set pesan sukses // session()->setFlashdata('pesan', 'Stok produk berhasil diperbarui'); // } else { // // Set pesan error // session()->setFlashdata('error', 'Gagal memperbarui stok produk'); // } // // Redirect kembali ke halaman pembelian // return redirect()->to(base_url('Pembelian')); // } public function addToCart() { $kode_produk = $this->request->getPost('kode_produk'); $qty = $this->request->getPost('qty'); $produk = $this->ModelPembelian->getProdukById($kode_produk); if ($produk) { $cart_items = session()->get('cart_items') ?? []; // Cek apakah produk sudah ada di cart $found = false; foreach ($cart_items as &$item) { if ($item['kode_produk'] == $kode_produk) { $item['qty'] += $qty; $item['total_harga'] = $item['qty'] * $item['harga_jual']; $found = true; break; } } unset($item); if (!$found) { $cart_items[] = [ 'kode_produk' => $kode_produk, 'nama_produk' => $produk['nama_produk'], 'nama_kategori' => $produk['nama_kategori'], 'nama_satuan' => $produk['nama_satuan'], 'harga_jual' => $produk['harga_jual'], 'qty' => $qty, 'total_harga' => $qty * $produk['harga_jual'] ]; } session()->set('cart_items', $cart_items); session()->setFlashdata('pesan', 'Produk berhasil ditambahkan ke keranjang'); } return redirect()->to(base_url('Pembelian')); } public function removeItem($kode_produk) { $cart_items = session()->get('cart_items') ?? []; foreach ($cart_items as $key => $item) { if ($item['kode_produk'] == $kode_produk) { unset($cart_items[$key]); break; } } session()->set('cart_items', array_values($cart_items)); session()->setFlashdata('pesan', 'Produk berhasil dihapus dari keranjang'); return redirect()->to(base_url('Pembelian')); } public function savePembelian() { $cart = \Config\Services::cart(); $produk = $cart->contents(); // Simpan ke tbl_beli $dataBeli = [ 'tgl_beli' => date('Y-m-d'), 'jam' => date('H:i:s'), 'id_user' => session()->get('id_user'), ]; $this->ModelPembelian->InsertBeli($dataBeli); $id_beli = $this->ModelPembelian->getInsertID(); $cart_items = session()->get('cart_items') ?? []; foreach ($cart_items as $item) { $dataRinciBeli = [ 'id_beli' => $id_beli, 'kode_produk' => $item['id'], 'qty' => $item['qty'], ]; $this->ModelPembelian->InsertRinciBeli($dataRinciBeli); $this->ModelPembelian->updateStok($item['kode_produk'], $item['qty']); } // Kosongkan cart setelah pembelian berhasil disimpan session()->remove('cart_items'); session()->setFlashdata('pesan', 'Pembelian berhasil disimpan dan stok diperbarui'); return redirect()->to(base_url('Pembelian')); } }
Editor is loading...
Leave a Comment