38438-vm/settings.php
Flatlogic Bot 2c1612942a menu
2026-02-15 01:22:25 +00:00

247 lines
12 KiB
PHP

<?php
/**
* Settings Page - Manage System Datasets
*/
declare(strict_types=1);
require_once __DIR__ . '/db/config.php';
$tenant_id = 1;
// Handle Form Submissions
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$action = $_POST['action'] ?? '';
$name = $_POST['name'] ?? '';
if ($action === 'add_labour_type' && $name) {
$stmt = db()->prepare("INSERT INTO labour_types (tenant_id, name) VALUES (?, ?)");
$stmt->execute([$tenant_id, $name]);
} elseif ($action === 'add_evidence_type' && $name) {
$stmt = db()->prepare("INSERT INTO evidence_types (tenant_id, name) VALUES (?, ?)");
$stmt->execute([$tenant_id, $name]);
} elseif ($action === 'add_expense_type' && $name) {
$stmt = db()->prepare("INSERT INTO expense_types (tenant_id, name) VALUES (?, ?)");
$stmt->execute([$tenant_id, $name]);
} elseif ($action === 'add_team' && $name) {
$stmt = db()->prepare("INSERT INTO teams (tenant_id, name) VALUES (?, ?)");
$stmt->execute([$tenant_id, $name]);
} elseif ($action === 'add_supplier' && $name) {
$type = $_POST['type'] ?? 'supplier';
$contact = $_POST['contact_info'] ?? '';
$stmt = db()->prepare("INSERT INTO suppliers (tenant_id, name, type, contact_info) VALUES (?, ?, ?, ?)");
$stmt->execute([$tenant_id, $name, $type, $contact]);
}
header("Location: settings.php?success=1");
exit;
}
// Fetch all datasets
$labourTypes = db()->prepare("SELECT * FROM labour_types WHERE tenant_id = ? ORDER BY name");
$labourTypes->execute([$tenant_id]);
$labourTypeList = $labourTypes->fetchAll();
$evidenceTypes = db()->prepare("SELECT * FROM evidence_types WHERE tenant_id = ? ORDER BY name");
$evidenceTypes->execute([$tenant_id]);
$evidenceTypeList = $evidenceTypes->fetchAll();
$expenseTypes = db()->prepare("SELECT * FROM expense_types WHERE tenant_id = ? ORDER BY name");
$expenseTypes->execute([$tenant_id]);
$expenseTypeList = $expenseTypes->fetchAll();
$teams = db()->prepare("SELECT * FROM teams WHERE tenant_id = ? ORDER BY name");
$teams->execute([$tenant_id]);
$teamList = $teams->fetchAll();
$suppliers = db()->prepare("SELECT * FROM suppliers WHERE tenant_id = ? ORDER BY name");
$suppliers->execute([$tenant_id]);
$supplierList = $suppliers->fetchAll();
$pageTitle = "SR&ED Manager - Settings";
include __DIR__ . '/includes/header.php';
?>
<div class="container-fluid py-4">
<div class="row">
<div class="col-12">
<div class="d-flex justify-content-between align-items-center mb-4">
<h4 class="fw-bold mb-0">System Settings & Datasets</h4>
<?php if (isset($_GET['success'])): ?>
<span class="badge bg-success">Dataset updated successfully</span>
<?php endif; ?>
</div>
<div class="row">
<!-- Labour Types -->
<div class="col-md-6 mb-4">
<div class="card h-100 border-0 shadow-sm">
<div class="card-header bg-white d-flex justify-content-between align-items-center">
<span class="fw-bold">Labour Types</span>
<button class="btn btn-sm btn-outline-primary" data-bs-toggle="modal" data-bs-target="#addLabourTypeModal">+ Add</button>
</div>
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead><tr><th>Name</th></tr></thead>
<tbody>
<?php foreach ($labourTypeList as $item): ?>
<tr><td><?= htmlspecialchars($item['name']) ?></td></tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<!-- Evidence Types -->
<div class="col-md-6 mb-4">
<div class="card h-100 border-0 shadow-sm">
<div class="card-header bg-white d-flex justify-content-between align-items-center">
<span class="fw-bold">Evidence Types</span>
<button class="btn btn-sm btn-outline-primary" data-bs-toggle="modal" data-bs-target="#addEvidenceTypeModal">+ Add</button>
</div>
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead><tr><th>Name</th></tr></thead>
<tbody>
<?php foreach ($evidenceTypeList as $item): ?>
<tr><td><?= htmlspecialchars($item['name']) ?></td></tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<!-- Expense Types -->
<div class="col-md-6 mb-4">
<div class="card h-100 border-0 shadow-sm">
<div class="card-header bg-white d-flex justify-content-between align-items-center">
<span class="fw-bold">Expense Types</span>
<button class="btn btn-sm btn-outline-primary" data-bs-toggle="modal" data-bs-target="#addExpenseTypeModal">+ Add</button>
</div>
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead><tr><th>Name</th></tr></thead>
<tbody>
<?php foreach ($expenseTypeList as $item): ?>
<tr><td><?= htmlspecialchars($item['name']) ?></td></tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<!-- Teams -->
<div class="col-md-6 mb-4">
<div class="card h-100 border-0 shadow-sm">
<div class="card-header bg-white d-flex justify-content-between align-items-center">
<span class="fw-bold">Teams</span>
<button class="btn btn-sm btn-outline-primary" data-bs-toggle="modal" data-bs-target="#addTeamModal">+ Add</button>
</div>
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead><tr><th>Name</th></tr></thead>
<tbody>
<?php foreach ($teamList as $item): ?>
<tr><td><?= htmlspecialchars($item['name']) ?></td></tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<!-- Suppliers -->
<div class="col-12 mb-4">
<div class="card border-0 shadow-sm">
<div class="card-header bg-white d-flex justify-content-between align-items-center">
<span class="fw-bold">Suppliers & Contractors</span>
<button class="btn btn-sm btn-outline-primary" data-bs-toggle="modal" data-bs-target="#addSupplierModal">+ Add</button>
</div>
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Contact Info</th>
</tr>
</thead>
<tbody>
<?php foreach ($supplierList as $item): ?>
<tr>
<td><strong><?= htmlspecialchars($item['name']) ?></strong></td>
<td><span class="badge bg-light text-dark border"><?= ucfirst($item['type']) ?></span></td>
<td><small class="text-muted"><?= htmlspecialchars($item['contact_info'] ?? '') ?></small></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Modals -->
<?php
$modals = [
['id' => 'addLabourTypeModal', 'title' => 'Add Labour Type', 'action' => 'add_labour_type'],
['id' => 'addEvidenceTypeModal', 'title' => 'Add Evidence Type', 'action' => 'add_evidence_type'],
['id' => 'addExpenseTypeModal', 'title' => 'Add Expense Type', 'action' => 'add_expense_type'],
['id' => 'addTeamModal', 'title' => 'Add Team', 'action' => 'add_team'],
];
foreach ($modals as $m):
?>
<div class="modal fade" id="<?= $m['id'] ?>" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content border-0 shadow">
<div class="modal-header"><h5 class="modal-title fw-bold"><?= $m['title'] ?></h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div>
<form method="POST">
<div class="modal-body">
<input type="hidden" name="action" value="<?= $m['action'] ?>">
<div class="mb-3">
<label class="form-label small fw-bold">Name</label>
<input type="text" name="name" class="form-control" placeholder="Enter name..." required>
</div>
</div>
<div class="modal-footer border-0"><button type="submit" class="btn btn-primary px-4">Add Item</button></div>
</form>
</div>
</div>
</div>
<?php endforeach; ?>
<div class="modal fade" id="addSupplierModal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content border-0 shadow">
<div class="modal-header"><h5 class="modal-title fw-bold">Add Supplier/Contractor</h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div>
<form method="POST">
<div class="modal-body">
<input type="hidden" name="action" value="add_supplier">
<div class="mb-3">
<label class="form-label small fw-bold">Name</label>
<input type="text" name="name" class="form-control" placeholder="Company name" required>
</div>
<div class="mb-3">
<label class="form-label small fw-bold">Type</label>
<select name="type" class="form-select">
<option value="supplier">Supplier</option>
<option value="contractor">Contractor</option>
</select>
</div>
<div class="mb-3">
<label class="form-label small fw-bold">Contact Info</label>
<textarea name="contact_info" class="form-control" rows="2" placeholder="Address, Phone, Email..."></textarea>
</div>
</div>
<div class="modal-footer border-0"><button type="submit" class="btn btn-primary px-4">Add Supplier</button></div>
</form>
</div>
</div>
</div>
<?php include __DIR__ . '/includes/footer.php'; ?>