<?php
// Cek jika sesi 'resto' ada
if (!isset($_SESSION['resto'])) {
// Jika sesi 'resto' tidak ada, set nilai dengan data yang dikirim melalui POST
$_SESSION['resto'] = isset($_POST['namaresto']) ? $_POST['namaresto'] : '';
}
// Ambil nilai dari sesi 'resto' (baik itu nilai lama atau yang baru diset)
$namaresto = $_SESSION['resto'];
// Jika ada data dari POST, perbarui nilai sesi
if (isset($_POST['namaresto'])) {
$_SESSION['resto'] = $_POST['namaresto'];
}
?>
<div class="row" style="height: 500px; overflow:auto;">
<?php
include 'koneksi.php';
require 'function.php';
if (isset($_POST['submit'])) {
// Koneksi ke database ($kon harus sudah terinisialisasi sebelumnya)
// Menggunakan prepared statement untuk menghindari SQL injection
$query = "UPDATE produk SET nama=?, stok=?, harga=?, recomended=?, gambar=? WHERE id_produk=?";
// Persiapkan statement
$stmt = mysqli_prepare($kon, $query);
// Bind parameter ke statement
mysqli_stmt_bind_param($stmt, "ssisss", $nama, $stok, $harga, $recomended, $url, $id);
// Ambil nilai dari form dan filter jika diperlukan
$id = pilter($kon, $_POST['id_produk']); // Filter dengan pilter() (asumsi ini adalah fungsi untuk filtering)
$nama = pilter($kon, $_POST['nama']);
$harga = pilter($kon, $_POST['harga']);
$recomended = pilter($kon, $_POST['recomended']);
$stok = pilter($kon, $_POST['stok']);
$url = $_POST['urlgambar']; // Tanpa filter karena akan digunakan langsung dalam prepared statement
mysqli_stmt_execute($stmt);
// Tutup statement
mysqli_stmt_close($stmt);
}
#error_reporting(0);
#jika form sort tidak di submit semua null
if (!isset($_POST['sort'])) {
$_POST['sort'] = null;
$kond = null;
}
#tangkap hasil short
if (pilter($kon, $_POST['sort']) == 'recomended') {
$kond = " where recomended ='recomended' ";
} else if (pilter($kon, $_POST['sort']) == 'all') {
$kond = null;
} else if (pilter($kon, $_POST['sort']) == 'makanan') {
$kond = " where kategori ='makanan' ";
} else if (pilter($kon, $_POST['sort']) == 'minuman') {
$kond = " where kategori ='minuman' ";
} else if (pilter($kon, $_POST['sort']) == 'produk') {
$kond = " where kategori ='produk' ";
} else if (pilter($kon, $_POST['sort']) == 'jasa') {
$kond = " where kategori ='jasa' ";
}
#ambil keyword untuk pencarian
#jika form di ketik dan di masukan value
if (isset($_POST['keyword'])) {
#tidak bisa berjalan jika tidak membuat sesion_start disini.
session_start();
$namaresto = $_SESSION['resto'];
$sql = "select * from produk WHERE nama LIKE '%" . pilter($kon, $_POST['keyword']) . "%' AND resto = '$namaresto' order by id_produk desc";
#tapi jika keyword ='' kosong .tampilkan semua
if (pilter($kon, $_POST['keyword']) == '') {
$sql = "select * from produk WHERE resto = '$namaresto' order by id_produk desc";
}
} else {
if ($kond == null) {
$kond2 = 'WHERE';
} else {
$kond2 = 'AND';
}
$sql = "select * from produk $kond $kond2 resto = '$namaresto' order by id_produk desc";
}
#tapi jika tidak ada upaya input keyword tampilkan semua
$sql;
$hasil = mysqli_query($kon, $sql);
$jumlah = mysqli_num_rows($hasil);
if ($jumlah > 0) {
while ($data = mysqli_fetch_array($hasil)) :
//cek apakah ada varian dalam sebuah produk
$varian = mysqli_query($kon, "SELECT * FROM varian WHERE nama_produk = '$data[nama]' ");
$d_varian = mysqli_num_rows($varian);
?>
<?php
if ($data['stok'] === 'ada') {
$kondisibtn = '';
$warnabtn = 'danger';
} else {
$kondisibtn = 'disabled';
$warnabtn = 'secondary';
}
?>
<div class="col-sm-3" style="margin-top:20px">
<div class="card" style="border-radius: 25px;">
<div class="thumbnail" style="padding:10px;">
<div class="img-container">
<a href="#">
<img src="produk/<?php echo htmlspecialchars($data['gambar']); ?>" width="100%" height="140" style="border-radius:25px;">
</a>
<div class="text-overlay text-warning">
<a href="#" data-toggle="modal" data-target="#modal-<?= $data['id_produk'] ?>">
<span class="fa fa-solid fa-pen-to-square text-white" style="font-size:15px"> Ubah</span>
</a>
<br><br>
<a href="#" data-toggle="modal" data-target="#modaldetail-<?= $data['id_produk'] ?>">
<span class="fa fa-solid fa-eye text-white" style="font-size:15px"> Detail</span>
</a>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="modal-<?= $data['id_produk'] ?>" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content" style="border-radius: 25px;">
<div class="modal-header text-white">
<h5 class="modal-title">Ubah data Produk</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form action="" method="POST">
<input type="hidden" name="id_produk" value="<?= $data['id_produk'] ?>" maxlength="10" class="form-control mb-3">
<label>Nama produk</label>
<input type="text" name="nama" value="<?= $data['nama'] ?>" maxlength="20" class="form-control mb-2">
<label>Url gambar <b class="text-danger"></b> </label>
<input type="text" name="urlgambar" value="<?= $data['gambar'] ?>" class="form-control mb-3" autocomplete="off" placeholder="contoh : https://i.ibb.co/Wg1F0Bp/Star-images-9454.png">
<label>Harga</label>
<input type="number" name="harga" value="<?= $data['harga'] ?>" maxlength="10" class="form-control mb-3">
<label>Recomended?</label>
<select name="recomended" class="form-control selectize mb-3">
<option value="<?= $data['recomended'] ?>"><?= $data['recomended'] ?></option>
<option value="tidak">tidak</option>
<option value="recomended">Ya</option>
</select>
<label>Produk masih ada?</label>
<select name="stok" class="form-control selectize mb-3">
<option value="<?= $data['stok'] ?>"><?= $data['stok'] ?></option>
<option value="ada">ada</option>
<option value="habis">habis</option>
</select>
<button type="sumbit" name="submit" class="btn btn-danger float-right">Ubah</button>
</form>
<form action="hapusproduk" method="POST">
<input type="text" name="kode_produk" value="<?= $data['kode_produk'] ?>" hidden>
<button type="sumbit" name="submit" class="btn btn-outline-danger">Hapus</button>
</form>
</div>
</div>
</div>
</div>
<!-- Modaldetail -->
<div class="modal fade" id="modaldetail-<?= $data['id_produk'] ?>" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content" style="border-radius: 25px;">
<div class="modal-header text-white">
<h5 class="modal-title" id="exampleModalLabel">Detail <?= $data['nama'] ?></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<?php
if (empty($data['keterangan'])) {
echo 'Tidak ada keterangan apapun tentang produk ini..
';
} else {
echo $data['keterangan'];
}
?>
<br>
<hr>
<?php if ($data['kategori'] != 'jasa'): ?>
<h5><i class="fa fa-book"></i>ingredient</h5>
<?php
$kode_prod = $data['kode_produk'];
echo '<table class="table table-bordered">
<thead>
<tr>
<th>Ingredient</th>
<th>Jumlah</th>
<th>Stok Tersedia</th>
</tr>
</thead>
<tbody>';
$result = $kon->query("SELECT * FROM produk_ingredient WHERE kode_produk = '$kode_prod'");
while ($row = $result->fetch_assoc()):
// Menampilkan nama dan jumlah dari produk_ingredient
$nama_bahan = htmlspecialchars($row['nama']);
$jumlah_ingredient = htmlspecialchars($row['jumlah']);
// Query kedua untuk mendapatkan jumlah_stok dari bahan_baku
$id_bahan_baku = $row['id_bahan_baku'];
$stokResult = $kon->query("SELECT jumlah_stok FROM bahan_baku WHERE id = '$id_bahan_baku'");
if ($stokRow = $stokResult->fetch_assoc()) {
$jumlah_stok = $stokRow['jumlah_stok'];
}
// Menentukan kelas text-danger jika stok kurang dari 100
$stok_class = ($jumlah_stok < 100) ? 'class="text-danger"' : '';
$satuan = ''; // default kosong
if ($data['kategori'] === 'bahan baku') {
$satuan = 'gram/ml';
} elseif ($data['kategori'] === 'produk') {
$satuan = 'pcs';
} else {
$satuan = 'gram/ml'; // fallback jika kategori lain
}
// Menampilkan data dalam tabel
echo "<tr>
<td>$nama_bahan</td>
<td>$jumlah_ingredient $satuan</td>
<td $stok_class>$jumlah_stok $satuan</td>
</tr>";
endwhile;
echo '</tbody></table>';
?>
<?php endif; ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<?php if ($data['recomended'] == 'recomended') { ?>
<img src="https://i.ibb.co.com/0KHNvC8/recommended-star.png" width="39" class="float-right" style="position: absolute; right: 8; top:2;">
<?php } ?>
<div class="caption">
<center>
<div style="height: 40px;">
<b style="font-size:18px;" class="p-2"><?php echo $data['nama']; ?></b>
</div>
<h5 class="mb-3">Rp. <?php echo number_format($data['harga'], 0, ',', '.'); ?></h5>
<?php
if ($d_varian <= 0) { ?>
<form action='' method='POST'>
<!-- hidden input-->
<input type='text' value='<?= $data['kode_produk'] ?>' name='kode_produk' hidden>
<input type='text' value='tambah_produk' name='aksi' hidden>
<input type='text' value='1' name='jumlah' hidden>
<input type='hidden' value='' name='varian'>
<input type='text' value='oneklik' name='oneklik' hidden>
<!-- hidden input-->
<button class='btn btn-<?= $warnabtn ?>' type='submit' style="border-radius:25px;" <?= $kondisibtn ?>>Tambahkan</button>
</form>
<?php } else { ?>
<button type="button" class="btn btn-<?= $warnabtn ?>" style="border-radius:25px;" data-toggle="modal" data-target="#exampleModal<?= $data['kode_produk'] ?>" <?= $kondisibtn ?>>
Pilih varian/toping
</button>
<?php } ?>
</center>
</div>
<!-- Modal -->
<div class="modal fade" id="exampleModal<?= $data['kode_produk'] ?>" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Pilih varian / topping</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form action="" method="POST">
<!-- hidden input-->
<input type="text" value="<?= $data['kode_produk'] ?>" name="kode_produk" hidden>
<input type="text" value="tambah_produk" name="aksi" hidden>
<input type="text" value="1" name="jumlah" hidden>
<!-- hidden input-->
<select name="varian" class="form-control selectize mb-3" style="width: 100%; height: 40px; border-radius: 8px;">
<?php
$varianModal = mysqli_query($kon, "SELECT * FROM varian WHERE nama_produk = '$data[nama]' AND resto = '$namaresto' ");
while ($d_varianModal = mysqli_fetch_array($varianModal)) {
?>
<option value="<?= $data['kode_produk'] ?>-<?= $d_varianModal['varian'] ?>"><?= $d_varianModal['varian'] ?></option>
<?php } ?>
</select>
<button class="btn btn-danger btn-block" type="submit">Tambahkan</button>
</form>
</div>
</div>
</div>
</div>
<!-- Modal -->
</div>
</div>
</div>
<?php
endwhile;
} else {
if (empty($_POST['keyword'])) {
$kategori = pilter($kon, $_POST['sort']);
if ($kategori === 'all') {
$notice = 'Belum ada produk silahkan tambah produk';
} else if ($kategori === 'recomended') {
$notice = "Tidak ada data di kategori $kategori";
} else if ($kategori === 'makanan') {
$notice = "Tidak ada data di kategori $kategori ";
} else if ($kategori === 'minuman') {
$notice = "Tidak ada data di kategori $kategori ";
} else if ($kategori === 'jasa') {
$notice = "Tidak ada data di kategori $kategori ";
} else if ($kategori === 'produk') {
$notice = "Tidak ada data di kategori $kategori ";
} else {
$notice = "Belum ada data silahkan tambah produk";
}
echo "
<div class='container' style='margin-top:20%'>
<div class='row'>
<div class='col lg-12'>
<center>
<span class='ml-3 text-secondary'>$notice</span>
<br>
<a href='tambahproduk' class='btn btn-outline-danger mt-3'> <i class='fa fa-plus'></i> Tambah produk</a>
</center>
</div>
</div>
</div>
";
} else {
$pencarian = pilter($kon, $_POST['keyword']);
echo "
<div class='container' style='margin-top:20%'>
<div class='row'>
<div class='col lg-12'>
<center>
<span class='ml-3 text-secondary'>$pencarian tidak ada di menu!</span>
</center>
</div>
</div>
</div>
";
}
};
?>
</div>