Edit file File name : employee-form.php Content :<?php session_start(); if (!isset($_SESSION['user_id'])) { header('Location: index.php'); exit(); } require_once '_helpers.php'; $conn = get_db_connection(); $business = $conn->query("SELECT * FROM business_settings LIMIT 1")->fetch_assoc(); $is_editing = false; $employee = null; $employee_id = $_GET['id'] ?? null; if ($employee_id) { try { $stmt = $conn->prepare("SELECT * FROM payroll WHERE id = ?"); $stmt->bind_param("s", $employee_id); $stmt->execute(); $result = fetch_all_assoc($stmt); $stmt->close(); if (!empty($result)) { $employee = $result[0]; $is_editing = true; } } catch (Exception $e) { // Handle error, maybe redirect or show a message } } $conn->close(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title><?php echo $is_editing ? 'Edit Employee' : 'Add Employee'; ?> - <?php echo htmlspecialchars($business['name']); ?></title> <script src="https://cdn.tailwindcss.com"></script> <style>:root { --primary: <?php echo htmlspecialchars($business['primary_color'] ?? '217 91% 60%'); ?>; } .bg-primary { background-color: hsl(var(--primary)); } .text-primary { color: hsl(var(--primary)); } .ring-primary:focus-visible { --tw-ring-color: hsl(var(--primary)); }</style> </head> <body class="bg-slate-50"> <div class="flex h-screen"> <?php include '_sidebar.php'; ?> <div class="flex-1 flex flex-col overflow-hidden lg:ml-64"> <?php include '_header.php'; ?> <main class="flex-1 overflow-x-hidden overflow-y-auto bg-slate-50 p-6"> <div class="max-w-2xl mx-auto"> <form id="employee-form" class="space-y-8"> <input type="hidden" name="action" value="<?php echo $is_editing ? 'update_employee' : 'add_employee'; ?>"> <?php if ($is_editing): ?> <input type="hidden" name="employee_id" value="<?php echo htmlspecialchars($employee['id']); ?>"> <?php endif; ?> <div class="space-y-2"> <h1 class="text-3xl font-bold tracking-tight"><?php echo $is_editing ? 'Edit' : 'Add an'; ?> Employee to Payroll</h1> <p class="text-slate-500">Enter the employee's details below.</p> </div> <div class="bg-white rounded-lg shadow-sm border p-6 space-y-6"> <h2 class="text-xl font-semibold">Employee Information</h2> <div> <label for="employeeName" class="block text-sm font-medium text-slate-700">Employee Name</label> <input type="text" name="employeeName" id="employeeName" value="<?php echo htmlspecialchars($employee['employeeName'] ?? ''); ?>" required class="mt-1 block w-full h-10 px-3 py-2 border border-slate-300 rounded-md"> </div> <div class="grid grid-cols-2 gap-4"> <div> <label for="baseSalary" class="block text-sm font-medium text-slate-700">Base Salary</label> <div class="relative mt-1"><span class="absolute inset-y-0 left-0 pl-3 flex items-center text-slate-500">BZ$</span><input type="number" name="baseSalary" id="baseSalary" value="<?php echo htmlspecialchars($employee['baseSalary'] ?? '0.00'); ?>" step="any" class="pl-10 w-full h-10 px-3 py-2 border border-slate-300 rounded-md"></div> </div> <div> <label for="payFrequency" class="block text-sm font-medium text-slate-700">Pay Frequency</label> <select name="payFrequency" id="payFrequency" class="mt-1 block w-full h-10 px-3 py-2 border border-slate-300 rounded-md"> <option value="monthly" <?php echo (($employee['payFrequency'] ?? '') === 'monthly') ? 'selected' : ''; ?>>Monthly</option> <option value="bi-weekly" <?php echo (($employee['payFrequency'] ?? '') === 'bi-weekly') ? 'selected' : ''; ?>>Bi-weekly</option> <option value="weekly" <?php echo (($employee['payFrequency'] ?? '') === 'weekly') ? 'selected' : ''; ?>>Weekly</option> </select> </div> </div> <div> <label for="bonus" class="block text-sm font-medium text-slate-700">Bonuses / Allowances (Optional)</label> <div class="relative mt-1"><span class="absolute inset-y-0 left-0 pl-3 flex items-center text-slate-500">BZ$</span><input type="number" name="bonus" id="bonus" value="<?php echo htmlspecialchars($employee['bonus'] ?? '0.00'); ?>" step="any" class="pl-10 w-full h-10 px-3 py-2 border border-slate-300 rounded-md"></div> </div> <div> <label for="advanceDeduction" class="block text-sm font-medium text-slate-700">Salary Advance Deduction (Optional)</label> <div class="relative mt-1"><span class="absolute inset-y-0 left-0 pl-3 flex items-center text-slate-500">BZ$</span><input type="number" name="advanceDeduction" id="advanceDeduction" value="<?php echo htmlspecialchars($employee['advanceDeduction'] ?? '0.00'); ?>" step="any" class="pl-10 w-full h-10 px-3 py-2 border border-slate-300 rounded-md"></div> </div> </div> <div class="bg-white rounded-lg shadow-sm border p-6 space-y-6"> <h2 class="text-xl font-semibold">Banking Information</h2> <p class="text-sm text-slate-500 -mt-4">This information is used for direct deposit payments.</p> <div> <label for="bankName" class="block text-sm font-medium text-slate-700">Bank Name</label> <select name="bankName" id="bankName" class="mt-1 block w-full h-10 px-3 py-2 border border-slate-300 rounded-md"> <?php $banks = ['Atlantic Bank', 'Belize Bank', 'Heritage Bank', 'National Bank of Belize']; ?> <?php foreach($banks as $bank): ?> <option value="<?php echo $bank; ?>" <?php echo (($employee['bankName'] ?? '') === $bank) ? 'selected' : ''; ?>><?php echo $bank; ?></option> <?php endforeach; ?> </select> </div> <div> <label for="accountNumber" class="block text-sm font-medium text-slate-700">Account Number</label> <input type="text" name="accountNumber" id="accountNumber" value="<?php echo htmlspecialchars($employee['accountNumber'] ?? ''); ?>" class="mt-1 block w-full h-10 px-3 py-2 border border-slate-300 rounded-md"> </div> </div> <div class="flex justify-start gap-2"> <button type="submit" class="px-6 py-2 bg-primary text-white rounded-full font-semibold hover:bg-opacity-90">Save Employee</button> <a href="hr.php" class="px-6 py-2 border rounded-full font-medium hover:bg-slate-100">Cancel</a> </div> </form> </div> </main> </div> </div> <script> document.getElementById('employee-form').addEventListener('submit', function(e) { e.preventDefault(); const formData = new FormData(this); fetch('api.php', { method: 'POST', body: formData }) .then(response => response.json()) .then(data => { if (data.success) { alert(data.data.message); window.location.href = data.data.redirect || 'hr.php'; } else { alert('Error: ' + data.message); } }) .catch(error => { console.error('Error:', error); alert('An error occurred. Please try again.'); }); }); </script> </body> </html> Save