AyulaPOS/views/users/add-user.php

319 lines
16 KiB
PHP

<?php
include('../../routes/db_conn.php');
session_start();
$userRole = $_SESSION['role'];
$username = $_SESSION['username']; // Mengambil username dari session
// Register new user data if the form is submitted
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// Get the form data
$newUsername = $_POST['username'];
$password = $_POST['password'];
$confirmPassword = $_POST['confirm_password'];
$phone = $_POST['phone'];
$role = $_POST['role'];
// Validate form fields (optional but recommended)
if (!empty($newUsername) && !empty($password) && !empty($confirmPassword) && !empty($phone) && !empty($role)) {
// Check if phone number contains only numbers
if (!preg_match('/^[0-9]+$/', $phone)) {
$showUsernameModal = true;
$modalMessage = "Nomor telepon hanya boleh berisi angka.";
}
// Check if phone number length is valid (11-13 digits for Indonesian numbers)
else if (strlen($phone) < 11 || strlen($phone) > 13) {
$showUsernameModal = true;
$modalMessage = "Nomor telepon harus terdiri dari 11 hingga 13 angka.";
}
// Check if passwords match
else if ($password !== $confirmPassword) {
$showUsernameModal = true;
$modalMessage = "Password tidak sama.";
} else {
// Check if username already exists
$checkUsername = "SELECT username FROM kasir WHERE username = ?";
$checkStmt = $conn->prepare($checkUsername);
$checkStmt->bind_param("s", $newUsername);
$checkStmt->execute();
$result = $checkStmt->get_result();
if ($result->num_rows > 0) {
// Set flag to show modal
$showUsernameModal = true;
$modalMessage = "Username sudah digunakan. Silakan pilih username lain.";
} else {
// Hash the password
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
// Insert the user information into the database
$insertSql = "INSERT INTO kasir (username, password, phone, role) VALUES (?, ?, ?, ?)";
$insertStmt = $conn->prepare($insertSql);
$insertStmt->bind_param("ssss", $newUsername, $hashed_password, $phone, $role);
$insertStmt->execute();
// Redirect to the users list after the insert
header("Location: index.php");
exit;
}
}
} else {
// Show error if any form field is empty
$showUsernameModal = true;
$modalMessage = "Harap isi semua kolom.";
}
}
// Variable for modal display
$showUsernameModal = isset($showUsernameModal) ? $showUsernameModal : false;
$modalMessage = isset($modalMessage) ? $modalMessage : "";
$conn->close();
?>
<!DOCTYPE html>
<html lang="id">
<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 - Tambah Pengguna</title>
<link rel="shortcut icon" type="image/x-icon" href="../../src/img/smallest-ayula.png">
<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">
<div class="header">
<div class="header-left active">
<a href="/ayula-store/views/dashboard/" class="logo">
<img src="../../src/img/logoayula.png" alt="" />
</a>
<a href="/ayula-store/views/dashboard/" class="logo-small">
<img src="../../src/img/smallest-ayula.png" alt="" />
</a>
<a id="toggle_btn" href="javascript:void(0);"> </a>
</div>
<a id="mobile_btn" class="mobile_btn" href="#sidebar">
<span class="bar-icon">
<span></span>
<span></span>
<span></span>
</span>
</a>
<ul class="nav user-menu">
<li class="nav-item dropdown has-arrow main-drop">
<a href="javascript:void(0);" class="dropdown-toggle nav-link userset" data-bs-toggle="dropdown">
<span class="user-img">
<img src="../../src/img/userprofile.png" alt="" />
<span class="status online"></span>
</span>
</a>
<div class="dropdown-menu menu-drop-user">
<div class="profilename">
<div class="profileset">
<span class="user-img">
<img src="../../src/img/userprofile.png" alt="" />
<span class="status online"></span>
</span>
<div class="profilesets">
<h6><?php echo $userRole == 'admin' ? 'Admin' : 'Karyawan'; ?></h6>
<h5><?php echo htmlspecialchars($username); ?></h5>
</div>
</div>
<hr class="m-0" />
<a class="dropdown-item" href="/ayula-store/views/report-issue/">
<img src="../../src/img/warning.png" class="me-2" alt="img" /> Laporkan Masalah
</a>
<hr class="m-0" />
<a class="dropdown-item logout pb-0" href="../../views/logout.php"><img
src="../../bootstrap/assets/img/icons/log-out.svg"
class="me-2"
alt="img" />Keluar</a>
</div>
</div>
</li>
</ul>
<div class="dropdown mobile-user-menu">
<a href="javascript:void(0);" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
<i class="fa fa-ellipsis-v"></i>
</a>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="/ayula-store/views/report-issue/">
<i class="fa fa-cog me-2"></i> Laporkan Masalah
</a>
<hr class="m-0" />
<a class="dropdown-item logout pb-0" href="../../views/logout.php"><img
src="../../bootstrap/assets/img/icons/log-out.svg"
class="me-2"
alt="img" />Keluar</a>
</div>
</div>
</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/dashboard/"><img src="../../bootstrap/assets/img/icons/dashboard.svg" alt="img" /><span>
Dashboard</span>
</a>
</li>
<li>
<a href="/ayula-store/views/transaction/"><img src="../../bootstrap/assets/img/icons/sales1.svg" alt="img" /><span>
POS</span></a>
</li>
<li class="submenu">
<a href="javascript:void(0);"><img src="../../bootstrap/assets/img/icons/product.svg" alt="img" /><span>
Produk</span>
<span class="menu-arrow"></span></a>
<ul>
<li><a href="/ayula-store/views/barang-kasir/">Daftar Produk Kasir</a></li>
</ul>
</li>
<li class="submenu">
<a href="javascript:void(0);"><img src="../../bootstrap/assets/img/icons/time.svg" alt="img" /><span>
Laporan</span>
<span class="menu-arrow"></span></a>
<ul>
<li><a href="/ayula-store/views/report/sales-report/">Laporan Penjualan</a></li>
<?php if ($userRole == 'admin') { ?>
<li><a href="/ayula-store/views/report/popular-products/">Produk Terlaris</a></li>
<?php } ?>
</ul>
</li>
<li class="submenu">
<a href="javascript:void(0);"><img src="../../bootstrap/assets/img/icons/users1.svg" alt="img" /><span>
Pengguna</span>
<span class="menu-arrow"></span></a>
<ul>
<?php if ($userRole == 'admin') { ?>
<li><a href="/ayula-store/views/users/add-user.php" class="active">Pengguna Baru</a></li>
<?php } ?>
<li><a href="/ayula-store/views/users/">Daftar Pengguna</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div class="page-wrapper">
<div class="content">
<div class="page-header">
<div class="page-title">
<h4>Manajemen Pengguna</h4>
<h6>Tambah Pengguna Baru</h6>
</div>
</div>
<div class="card">
<div class="card-body">
<form method="POST" action="add-user.php">
<div class="row">
<div class="col-lg-3 col-sm-6 col-12">
<div class="form-group">
<label>Nama</label>
<input type="text" name="username" class="form-control" required>
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password" class="form-control" required>
</div>
<div class="form-group">
<label>Konfirmasi Password</label>
<input type="password" name="confirm_password" class="form-control" required>
</div>
</div>
<div class="col-lg-3 col-sm-6 col-12">
<div class="form-group">
<label>Telepon</label>
<input type="text" name="phone" class="form-control" required
oninput="this.value = this.value.replace(/[^0-9]/g, '');"
pattern="[0-9]{11,13}"
title="Masukkan nomor telepon yang valid (11-13 angka)"
minlength="11" maxlength="13">
<!-- <small class="form-text text-muted">Nomor telepon harus terdiri dari 11-13 angka.</small> -->
</div>
<div class="form-group">
<label>Peran</label>
<select name="role" class="form-control" required>
<option value="admin">Admin</option>
<option value="user">Karyawan</option>
</select>
</div>
</div>
<div class="col-lg-12">
<button type="submit" class="btn btn-submit me-2">Daftar</button>
<a href="/ayula-store/views/users/" 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/js/script.js"></script>
<!-- Modal for notifications -->
<div class="modal fade" id="notificationModal" tabindex="-1" role="dialog" aria-labelledby="notificationModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="notificationModalLabel">Notifikasi</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="text-center">
<i class="fas fa-exclamation-circle text-warning" style="font-size: 48px;"></i>
<p class="mt-3"><?php echo $modalMessage; ?></p>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-bs-dismiss="modal">Mengerti</button>
</div>
</div>
</div>
</div>
<?php if ($showUsernameModal): ?>
<script>
// Show the modal when the page loads
document.addEventListener('DOMContentLoaded', function() {
var notificationModal = new bootstrap.Modal(document.getElementById('notificationModal'));
notificationModal.show();
});
</script>
<?php endif; ?>
</body>
</html>