AyulaPOS/views/barang/editproduct.php

351 lines
15 KiB
PHP

<?php
// Include database connection
function dbConnect() {
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "ayula_store";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
return $conn;
}
// Get product by ID
function getProductById($id) {
$conn = dbConnect();
$sql = "SELECT * FROM barang WHERE id_barang = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $id);
$stmt->execute();
$result = $stmt->get_result();
$product = $result->fetch_assoc();
$stmt->close();
$conn->close();
return $product;
}
// Get all product categories
function getProductCategories() {
$conn = dbConnect();
$sql = "SELECT * FROM jenis_barang ORDER BY nama_jenis";
$result = $conn->query($sql);
$categories = [];
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$categories[] = $row;
}
}
$conn->close();
return $categories;
}
//fungsi update product
function updateProduct($id, $data) {
$conn = dbConnect();
$sql = "UPDATE barang SET
nama_barang = ?,
harga = ?,
stok = ?,
id_jenis = ?,
image = ?
WHERE id_barang = ?";
$stmt = $conn->prepare($sql);
// Change from "ssdiis" to "ssdisi" - notice the 'i' to 's' change for image parameter
$stmt->bind_param("ssdisi",
$data['nama_barang'],
$data['harga'],
$data['stok'],
$data['id_jenis'],
$data['image'],
$id
);
$result = $stmt->execute();
$stmt->close();
$conn->close();
return $result;
}
// Check if form is submitted
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$id = $_POST['id_barang'];
// Handle image upload if a new file is selected
$image = $_POST['current_image']; // Default to current image
if(isset($_FILES['product_image']) && $_FILES['product_image']['size'] > 0) {
$target_dir = "image/";
$file_extension = strtolower(pathinfo($_FILES["product_image"]["name"], PATHINFO_EXTENSION));
$new_filename = "product_" . time() . "." . $file_extension;
$target_file = $target_dir . $new_filename;
// Check if image file is an actual image
$check = getimagesize($_FILES["product_image"]["tmp_name"]);
if($check !== false) {
// Upload file
if (move_uploaded_file($_FILES["product_image"]["tmp_name"], $target_file)) {
$image = $new_filename;
}
}
}
// Prepare data for update
$data = [
'nama_barang' => $_POST['nama_barang'],
'harga' => $_POST['harga'],
'stok' => $_POST['stok'],
'id_jenis' => $_POST['id_jenis'],
'image' => $image
];
// Update product
if(updateProduct($id, $data)) {
// Redirect to product list with success message
header("Location: productlist.php?success=Product updated successfully");
exit();
} else {
$error = "Failed to update product";
}
}
// Get product ID from URL
$product_id = isset($_GET['id']) ? $_GET['id'] : 0;
$product = getProductById($product_id);
// Get all categories
$categories = getProductCategories();
// If product doesn't exist, redirect to product list
if (!$product) {
header("Location: productlist.php?error=Product not found");
exit();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta name="description" content="POS - Bootstrap Admin Template">
<meta name="keywords"
content="admin, estimates, bootstrap, business, corporate, creative, invoice, html5, responsive, Projects">
<meta name="author" content="Dreamguys - Bootstrap Admin Template">
<meta name="robots" content="noindex, nofollow">
<title>Ayula Store - Edit Product</title>
<link rel="shortcut icon" type="image/x-icon" href="/ayula-store/bootstrap/assets/img/favicon.jpg">
<link rel="stylesheet" href="/ayula-store/bootstrap/assets/css/bootstrap.min.css">
<link rel="stylesheet" href="/ayula-store/bootstrap/assets/css/animate.css">
<link rel="stylesheet" href="/ayula-store/bootstrap/assets/plugins/select2/css/select2.min.css">
<link rel="stylesheet" href="/ayula-store/bootstrap/assets/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" href="/ayula-store/bootstrap/assets/plugins/fontawesome/css/fontawesome.min.css">
<link rel="stylesheet" href="/ayula-store/bootstrap/assets/plugins/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/ayula-store/bootstrap/assets/css/style.css">
</head>
<body>
<div id="global-loader">
<div class="whirly-loader"> </div>
</div>
<div class="main-wrapper">
<!-- Header section -->
<div class="header">
<!-- Header content as in template -->
<div class="header-left active">
<a href="index.php" class="logo">
<img src="/ayula-store/bootstrap/assets/img/logo.png" alt="">
</a>
<a href="index.php" class="logo-small">
<img src="/ayula-store/bootstrap/assets/img/logo-small.png" alt="">
</a>
<a id="toggle_btn" href="javascript:void(0);">
</a>
</div>
<!-- Mobile menu button -->
<a id="mobile_btn" class="mobile_btn" href="#sidebar">
<span class="bar-icon">
<span></span>
<span></span>
<span></span>
</span>
</a>
<!-- Header menu items (search, notifications, language, user dropdown) -->
<!-- ... Other header elements ... -->
</div>
<div class="sidebar" id="sidebar">
<div class="sidebar-inner slimscroll">
<div id="sidebar-menu" class="sidebar-menu">
<ul>
<li>
<a href="/ayula-store/views/reporttt/report.php"><img src="../../bootstrap/assets/img/icons/dashboard.svg" alt="img" /><span>
Dashboard</span>
</a>
</li>
<li class="submenu">
<a href="javascript:void(0);"><img src="../../bootstrap/assets/img/icons/product.svg" alt="img" /><span>
Barang</span>
<span class="menu-arrow"></span></a>
<ul>
<li><a href="/ayula-store/views/barang/productlist.php">Daftar Barang</a></li>
<li><a href="/ayula-store/views/barang/addproduct.php">Tambah Barang</a></li>
<li><a href="categorylist.html">Daftar Kategori</a></li>
<li><a href="addcategory.html">Tambah Kategori</a></li>
</ul>
</li>
<li >
<a href="/ayula-store/views/barang/topsis_restock_view.php"><img src="../../bootstrap/assets/img/icons/sales1.svg" alt="img" /><span>
Analisa Barang</span>
</a>
</li>
<li class="submenu">
<a href="javascript:void(0);"><img src="../../bootstrap/assets/img/icons/users1.svg" alt="img" /><span>
Users</span>
<span class="menu-arrow"></span></a>
<ul>
<?php if (isset($userRole) && $userRole == 'admin') { ?>
<li><a href="/ayula-store/views/users/add-user.php">New User </a></li>
<?php } ?>
<li><a href="/ayula-store/views/users/">Users List</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div class="page-wrapper">
<div class="content">
<div class="page-header">
<div class="page-title">
<h4>Edit Barang</h4>
</div>
</div>
<div class="card">
<div class="card-body">
<form action="editproduct.php" method="POST" enctype="multipart/form-data">
<!-- Hidden field for product ID -->
<input type="hidden" name="id_barang" value="<?php echo $product['id_barang']; ?>">
<input type="hidden" name="current_image" value="<?php echo $product['image']; ?>">
<div class="row">
<div class="col-lg-4 col-sm-6 col-12">
<div class="form-group">
<label>Nama Barang</label>
<input type="text" name="nama_barang" value="<?php echo $product['nama_barang']; ?>" required>
</div>
</div>
<div class="col-lg-4 col-sm-6 col-12">
<div class="form-group">
<label>Kategori</label>
<select class="select" name="id_jenis" required>
<option value="">Pilih Kategori</option>
<?php foreach($categories as $category): ?>
<option value="<?php echo $category['id_jenis']; ?>" <?php if($category['id_jenis'] == $product['id_jenis']) echo 'selected'; ?>>
<?php echo $category['nama_jenis']; ?>
</option>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="col-lg-3 col-sm-6 col-12">
<div class="form-group">
<label>Stok</label>
<input type="text" name="stok" value="<?php echo $product['stok']; ?>" required>
</div>
</div>
<div class="col-lg-3 col-sm-6 col-12">
<div class="form-group">
<label>Harga</label>
<input type="text" step="0.01" name="harga" value="<?php echo $product['harga']; ?>" required>
</div>
</div>
<div class="col-lg-12">
<div class="form-group">
<label>Gambar barang</label>
<div class="image-upload">
<input type="file" name="product_image" accept="image/*">
<div class="image-uploads">
<img src="/ayula-store/bootstrap/assets/img/icons/upload.svg" alt="img">
<h4>Pilih Gambar</h4>
</div>
</div>
</div>
</div>
<?php if($product['image']): ?>
<div class="col-12">
<div class="product-list">
<ul class="row">
<li>
<div class="productviews">
<div class="productviewsimg">
<img src="image/<?php echo $product['image']; ?>" alt="img">
</div>
<div class="productviewscontent">
<div class="productviewsname">
<h2><?php echo $product['image']; ?></h2>
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
<?php endif; ?>
<div class="col-lg-12">
<button type="submit" class="btn btn-submit me-2">Edit</button>
<a href="productlist.php" class="btn btn-cancel">Batal</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script src="/ayula-store/bootstrap/assets/js/jquery-3.6.0.min.js"></script>
<script src="/ayula-store/bootstrap/assets/js/feather.min.js"></script>
<script src="/ayula-store/bootstrap/assets/js/jquery.slimscroll.min.js"></script>
<script src="/ayula-store/bootstrap/assets/js/jquery.dataTables.min.js"></script>
<script src="/ayula-store/bootstrap/assets/js/dataTables.bootstrap4.min.js"></script>
<script src="/ayula-store/bootstrap/assets/js/bootstrap.bundle.min.js"></script>
<script src="/ayula-store/bootstrap/assets/plugins/select2/js/select2.min.js"></script>
<script src="/ayula-store/bootstrap/assets/plugins/sweetalert/sweetalert2.all.min.js"></script>
<script src="/ayula-store/bootstrap/assets/plugins/sweetalert/sweetalerts.min.js"></script>
<script src="/ayula-store/bootstrap/assets/js/script.js"></script>
</body>
</html>