<?php
session_start();
if (empty($_SESSION['loginku'])) {
header("Location: login");
}
require 'koneksi.php';
require 'function.php';
$query = mysqli_query($kon, "SELECT id, nama_bahan FROM bahan_baku");
$bahan_baku = [];
while ($row = mysqli_fetch_assoc($query)) {
$bahan_baku[] = $row;
}
#jika button di submit
if (isset($_POST['submit'])) {
// Fungsi filter untuk membersihkan input
$nama = filter_var($_POST['nama'], FILTER_SANITIZE_STRING);
$kategori = filter_var($_POST['kategori'], FILTER_SANITIZE_STRING);
$keterangan = filter_var($_POST['keterangan'], FILTER_SANITIZE_STRING);
$varian = null; // Tidak pakai varian di ver 2
$provit = filter_var($_POST['provit'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
$harga = filter_var($_POST['harga'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
$recomended = filter_var($_POST['recomended'], FILTER_SANITIZE_STRING);
$url = filter_var($_POST['urlgambar'], FILTER_SANITIZE_URL);
if ($url) {
// Acak 8 karakter huruf/angka
$randomString = "";
for ($i = 0; $i < 8; $i++) {
$randomChar = chr(rand(49, 122));
if (is_numeric($randomChar) || preg_match("/[a-z]/", $randomChar)) {
$randomString .= $randomChar;
} else {
$i--;
}
}
// Tentukan folder tujuan
$targetDir = "produk/";
// Buat folder produk jika belum ada
if (!file_exists($targetDir)) {
mkdir($targetDir, 0777, true);
}
// Ambil nama file dari URL
$fileName = basename(parse_url($url, PHP_URL_PATH));
$newFileName = $randomString . '_' . $fileName;
$targetFile = $targetDir . $newFileName;
// Download dan simpan gambar
$imageContent = file_get_contents($url);
file_put_contents($targetFile, $imageContent);
// Insert ke tabel produk
$stmt_produk = $kon->prepare("INSERT INTO produk (kode_produk, resto, nama, stok, harga, keterangan, kategori, recomended, gambar, provit) VALUES (?, ?, ?, 'ada', ?, ?, ?, ?, ?, ?)");
$stmt_produk->bind_param('sssdssssd', $randomString, $_SESSION['resto'], $nama, $harga, $keterangan, $kategori, $recomended, $newFileName, $provit);
if ($stmt_produk->execute()) {
// Insert varian (jika ada)
if (!empty($varian)) {
$stmt_varian = $kon->prepare("INSERT INTO varian (nama_produk, resto, varian) VALUES (?, ?, ?)");
foreach ($varian as $varians) {
if (!empty($varians)) {
$stmt_varian->bind_param('sss', $nama, $_SESSION['resto'], $varians);
$stmt_varian->execute();
}
}
$stmt_varian->close();
}
// Insert bahan_baku ke produk_ingredient (jika ada)
if (!empty($_POST['ingredient']) && !empty($_POST['jumlah_ingredient'])) {
$ingredient_array = $_POST['ingredient'];
$ingredient_name = $_POST['ingredient_name']; // <-- array nama
$jumlah_array = $_POST['jumlah_ingredient'];
$stmt_ingredient = $kon->prepare("INSERT INTO produk_ingredient (kode_produk, id_bahan_baku, nama, jumlah) VALUES (?, ?, ?, ?)");
foreach ($ingredient_array as $index => $id_bahan_baku) {
if (isset($jumlah_array[$index]) && isset($ingredient_name[$index])) {
$jumlah = $jumlah_array[$index];
$nama = $ingredient_name[$index];
if (!empty($id_bahan_baku) && is_numeric($jumlah)) {
$stmt_ingredient->bind_param('sisd', $randomString, $id_bahan_baku, $nama, $jumlah);
$stmt_ingredient->execute();
}
}
}
$stmt_ingredient->close();
}
$_SESSION['produkditambah'] = 'berhasil';
} else {
echo "Error: " . $stmt_produk->error;
}
$stmt_produk->close();
} else {
$_SESSION['produkditambah'] = 'gagal';
}
} else {
$nama = $urlgambar = $kategori = $recomended = $keterangan = $varian = $harga = null;
}
include 'header.php';
include 'navbar.php';
?>
<body style="background-color: #f7f7f7">
<div class="container mt-3">
<div class="alert alert-warning"> <i class="fa fa-info-circle"></i> Untuk mengedit produk cukup arahkan pointer mouser ke gambar produk di halaman kasir <b class="text-danger"><a href="#" data-toggle="modal" data-target="#pelajari">Pelajari</a></b></div>
<div class="card card-body card-round">
<form action="" method="POST">
<label>Product name</label>
<input type="text" name="nama" class="form-control mb-2" required>
<label>Category</label>
<select name="kategori" class="form-control selectize mb-3" required>
<option value="makanan">Food</option>
<option value="minuman">Drink</option>
<option value="produk">Produk</option>
<option value="jasa">Jasa</option>
</select>
<label>Description</label>
<input type="text" name="keterangan" class="form-control mb-3">
<label>Url images <b class="text-danger"><a href="#" data-toggle="modal" data-target="#uploadImageModal">Cara upload gambar dari URL</a></b></label>
<input type="text" name="urlgambar" id="inputurl" class="form-control-noregex mb-3" autocomplete="off" placeholder="Example : https://i.ibb.co/Wg1F0Bp/tea.jpg" required>
<!-- menampilkan gambar dari url dengan ajax -->
<div id="tampilgambar" class="mb-3"></div>
<!-- <div class="alert alert-danger">
Anda hanya dapat membuat varian dengan harga yang sama, jika ingin membuat varian dengan harga berbeda silahkan membuat produk baru. Contoh : Teh manis varian panas/es <b class="text-danger"><a href="#" data-toggle="modal" data-target="#pelvarian">Pelajari</a></b>
</div> -->
<!-- <label>Varian</label>
<input type="text" name="varian[]" maxlength="35" class="form-control mb-3">
<label>Varian</label>
<input type="text" name="varian[]" maxlength="35" class="form-control mb-3">
<label>Varian</label>
<input type="text" name="varian[]" maxlength="35" class="form-control mb-3">
<label>Varian</label>
<input type="text" name="varian[]" maxlength="35" class="form-control mb-3"> -->
<label>Price (Input harga yg sudah include Tax)</label>
<input type="number" name="harga" maxlength="10" class="form-control mb-3" required>
<label>Profit (keuntung jika terjual)</label>
<input type="number" name="provit" maxlength="100" class="form-control mb-3" required>
<label>Ingredient (Bisa bahan baku / produk jadi siap jual)</label>
<div id="ingredient-group">
<div class="input-group mb-3">
<select name="ingredient[]" class="form-control ingredient-select">
<option value="" disabled selected>-- Pilih --</option>
<?php foreach ($bahan_baku as $bahan): ?>
<option value="<?= $bahan['id'] ?>"><?= htmlspecialchars($bahan['nama_bahan']) ?></option>
<?php endforeach; ?>
</select>
<input type="number" name="jumlah_ingredient[]" class="form-control mx-2" placeholder="Jumlah (gram/ml/pcs)">
<input type="text" name="ingredient_name[]" class="form-control mx-2 ingredient-name-hidden" hidden>
<button type="button" class="btn btn-success btn-add-ingredient">+</button>
</div>
</div>
<label>Recomended?</label>
<select name="recomended" class="form-control selectize mb-3" required>
<option value=" ">No</option>
<option value="recomended">Yes</option>
</select>
<button type="sumbit" name="submit" class="btn btn-primary">Add!</button>
</form>
</div>
</div>
</body>
<!-- Modal -->
<div class="modal fade" id="uploadImageModal" tabindex="-1" aria-labelledby="uploadImageModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="uploadImageModalLabel">Cara upload gambar dari URL</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<h5>1.Cara Upload gambar dari google images (paling gampang)</h5>
<center><iframe width="660" height="315" src="https://www.youtube.com/embed/uHWm87b6AgQ?si=80ZqzmrxQgSfJkmQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></center>
<br>
<h5>2.Cara Upload gambar hasil foto sendiri</h5>
<center><iframe width="660" height="315" src="https://www.youtube.com/embed/XCeOlqOH41A?si=uM38IiWLqHMufPQK" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></center>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="pelajari" tabindex="-1" aria-labelledby="pelajari" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="pelajari">Cara ubah produk</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<center><iframe width="660" height="315" src="https://www.youtube.com/embed/krVeMbM-EuI?si=PXaDst4ospTt7SV7" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></center>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="pelvarian" tabindex="-1" aria-labelledby="pelvarian" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="pelvarian">Pahami tentang varian</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<center><iframe width="660" height="315" src="https://www.youtube.com/embed/nLvnvW7Wo3A?si=HHTmofUR4yLyJ9Pi" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></center>
</div>
</div>
</div>
</div>
<?php include 'footer.php'; ?>
<script>
//matikan klik kanan
window.oncontextmenu = function() {
return false;
}
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
const group = document.getElementById('ingredient-group');
group.addEventListener('click', function(e) {
// Menambahkan ingredient baru
if (e.target.classList.contains('btn-add-ingredient')) {
const inputSet = document.createElement('div');
inputSet.className = 'input-group mb-2';
inputSet.innerHTML = `
<select name="ingredient[]" class="form-control ingredient-select" required>
<option value="">-- Pilih --</option>
<?php foreach ($bahan_baku as $bahan): ?>
<option value="<?= $bahan['id'] ?>" data-nama="<?= htmlspecialchars($bahan['nama_bahan']) ?>"><?= htmlspecialchars($bahan['nama_bahan']) ?></option>
<?php endforeach; ?>
</select>
<input type="number" name="jumlah_ingredient[]" class="form-control mx-2" placeholder="Jumlah (gram/ml/pcs)" required>
<input type="text" name="ingredient_name[]" class="form-control mx-2 ingredient-name-hidden" hidden>
<button type="button" class="btn btn-danger btn-remove-ingredient">-</button>
`;
group.appendChild(inputSet);
}
// Menghapus ingredient
if (e.target.classList.contains('btn-remove-ingredient')) {
e.target.parentElement.remove();
}
});
// Menangani perubahan pilihan pada dropdown untuk setiap ingredient
document.body.addEventListener('change', function(e) {
if (e.target.classList.contains('ingredient-select')) {
const select = e.target;
const selectedText = select.options[select.selectedIndex].text;
const inputNama = select.parentElement.querySelector('.ingredient-name-hidden');
if (inputNama) {
inputNama.value = selectedText; // Setel nama bahan pada input tersembunyi
}
}
});
});
</script>
<?php
if (isset($_SESSION['produkditambah'])) {
if ($_SESSION['produkditambah'] === 'berhasil') {
echo '<script>swal("GOOD!", "Add product success!", "success");</script>';
} elseif ($_SESSION['produkditambah'] === 'gagal') {
echo '<script>swal("BAD!", "Fail to add product", "error");</script>';
}
unset($_SESSION['produkditambah']);
}
?>