-
Notifications
You must be signed in to change notification settings - Fork 0
/
keranjang-act.php
50 lines (50 loc) · 1.88 KB
/
keranjang-act.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
session_start();
require 'function.php';
if ($status == true && $id_role != 1 && $id_role != 2) {
header('Location: ' . BASEURL . '/auth/login');
}
if (isset($_POST['id_barang'])) {
$id_barang = htmlspecialchars($_POST['id_barang']);
$qty = 1;
//menampilkan data barang
$data = mysqli_query($conn, "SELECT * FROM barang WHERE id_barang='$id_barang'");
$b = mysqli_fetch_assoc($data);
$ids = $b['id_barang'];
$jumlah = abs((int)$b['stok']);
if ($jumlah > 0 && !empty($jumlah) && $id_barang == $ids) {
//cek diskon barang
$disbarang = mysqli_query($conn, "SELECT * FROM disbarang WHERE id_barang=$id_barang");
$disb = mysqli_fetch_assoc($disbarang);
//cek jika di keranjang sudah ada barang yang masuk
$key = array_search($b['id_barang'], array_column($_SESSION['cart'], 'id'));
if ($key !== false) {
//jika ada data yang sesuai di keranjang akan ditambahkan jumlah nya
$c_qty = $_SESSION['cart'][$key]['qty'];
if ($c_qty + 1 > $jumlah) {
setFlash('Gagal', 'Jumlah barang melebihi stok yang tersedia', 'danger');
header('Location: ' . BASEURL . '/penjualan');
exit();
}
$_SESSION['cart'][$key]['qty'] = $c_qty + 1;
//cek jika ada potongan dan cek jumlah barang lebih besar sama dengan minimum order potongan
if ($disb['qty'] && $_SESSION['cart'][$key]['qty'] == $disb['qty']) {
//Simpan diskon dengan jumlah kelipatan dikali potongan barang
$_SESSION['cart'][$key]['diskon'] = $disb['potongan'];
}
} else {
$barang = [
'id' => $b['id_barang'],
'nama' => $b['nama'],
'harga' => $b['harga_barang'],
'qty' => $qty,
'diskon' => 0,
];
$_SESSION['cart'][] = $barang;
}
header('Location: ' . BASEURL . '/penjualan');
} else {
setFlash('Gagal', 'ditambahkan', 'danger');
header('Location: ' . BASEURL . '/penjualan');
}
}