Найти в Дзене

Бд

Для разработки информационной системы автосервиса, мы создадим основной файл index.php и три дополнительных файла для каждой роли пользователя: master.php для мастера приемщика, mechanic.php для автомеханика, и diagnostician.php для автодиагноста. Система будет использовать Bootstrap для стилизации интерфейса. Вот общий подход к созданию этих файлов: 1. index.php Этот файл будет стартовой страницей, где пользователи могут авторизоваться и перейти к соответствующему интерфейсу в зависимости от их роли. <?php
// index.php
session_start();
// Представим, что мы уже подключились к базе данных
// Логика авторизации пользователя
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Здесь должен быть код для проверки данных пользователя в базе данных
$_SESSION['role'] = $_POST['role']; // Упрощенно представим, что роль пользователя приходит из формы
header("Location: " . $_SESSION['role'] . ".php");
exit();
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
Оглавление

Для разработки информационной системы автосервиса, мы создадим основной файл index.php и три дополнительных файла для каждой роли пользователя: master.php для мастера приемщика, mechanic.php для автомеханика, и diagnostician.php для автодиагноста. Система будет использовать Bootstrap для стилизации интерфейса. Вот общий подход к созданию этих файлов:

1. index.php

Этот файл будет стартовой страницей, где пользователи могут авторизоваться и перейти к соответствующему интерфейсу в зависимости от их роли.

<?php
// index.php
session_start();

// Представим, что мы уже подключились к базе данных
// Логика авторизации пользователя
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Здесь должен быть код для проверки данных пользователя в базе данных
$_SESSION['role'] = $_POST['role']; // Упрощенно представим, что роль пользователя приходит из формы
header("Location: " . $_SESSION['role'] . ".php");
exit();
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Авторизация в системе автосервиса</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body style="background-color: #e9f5ee;">
<div class="container">
<h2 class="mt-5">Вход в систему автосервиса</h2>
<form method="POST">
<div class="form-group">
<label for="role">Выберите вашу роль:</label>
<select class="form-control" id="role" name="role">
<option value="master">Мастер приемщик</option>
<option value="mechanic">Автомеханик</option>
<option value="diagnostician">Автодиагност</option>
</select>
</div>
<button type="submit" class="btn btn-success">Войти</button>
</form>
</div>
</body>
</html>


2. master.php

Интерфейс мастера приемщика, где он может управлять сотрудниками, сменами и заказами.

<?php
// master.php
session_start();
if ($_SESSION['role'] != 'master') {
header('Location: index.php');
exit();
}

// Подключение к базе данных (примерные параметры подключения)
$db = new mysqli('localhost', 'username', 'password', 'autoshop_db');
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
}

// Обработка изменения статуса сотрудника на "уволен"
if (isset($_POST['fire'])) {
$id = $_POST['employee_id'];
$query = "UPDATE employees SET status = 'fired' WHERE id = $id";
$db->query($query);
}

// Обработка добавления нового сотрудника
if (isset($_POST['add_employee'])) {
$name = $_POST['name'];
$role = $_POST['role'];
$query = "INSERT INTO employees (name, role, status) VALUES ('$name', '$role', 'active')";
$db->query($query);
}

?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Мастер приемщик - Панель управления</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.9/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</head>
<body style="background-color: #e9f5ee;">
<div class="container">
<h2 class="mt-5">Мастер приемщик - Панель управления</h2>
<!-- Вкладки для управления -->
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#employees">Сотрудники</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#shifts">Смены</a>
</li>
</ul>

<div class="tab-content">
<!-- Вкладка сотрудников -->
<div class="tab-pane fade show active" id="employees">
<h3 class="mt-3">Управление сотрудниками</h3>
<button type="button" class="btn btn-success" data-toggle="modal" data-target="#addEmployeeModal">
Добавить сотрудника
</button>
<!-- Таблица сотрудников -->
<table class="table mt-3">
<thead>
<tr>
<th>ID</th>
<th>Имя</th>
<th>Роль</th>
<th>Статус</th>
<th>Действия</th>
</tr>
</thead>
<tbody>
<?php
$result = $db->query("SELECT id, name, role, status FROM employees");
while ($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>{$row['id']}</td>";
echo "<td>{$row['name']}</td>";
echo "<td>{$row['role']}</td>";
echo "<td>{$row['status']}</td>";
echo "<td>";
if ($row['status'] != 'fired') {
echo "<form method='post'>";
echo "<input type='hidden' name='employee_id' value='{$row['id']}'>";
echo "<button type='submit' name='fire' class='btn btn-danger'>Уволить</button>";
echo "</form>";
}
echo "</td>";
echo "</tr>";
}
?>
</tbody>
</table>
</div>

<!-- Вкладка смен -->
<div class="tab-pane fade" id="shifts">
<h3 class="mt-3">Управление сменами</h3>
<!-- Добавление информации о формировании новых смен -->
</div>
</div>

<!-- Модальное окно для добавления нового сотрудника -->
<div class="modal fade" id="addEmployeeModal" tabindex="-1" aria-labelledby="addEmployeeModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="addEmployeeModalLabel">Новый сотрудник</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form method="post">
<div class="form-group">
<label for="name">Имя сотрудника</label>
<input type="text" class="form-control" id="name" name="name" required>
</div>
<div class="form-group">
<label for="role">Роль</label>
<select class="form-control" id="role" name="role">
<option>Механик</option>
<option>Диагност</option>
</select>
</div>
<button type="submit" class="btn btn-primary" name="add_employee">Добавить</button>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

3. mechanic.php

<?php
// mechanic.php
session_start();
if ($_SESSION['role'] != 'mechanic') {
header('Location: index.php');
exit();
}

// Подключение к базе данных (предполагается, что уже настроено)
$db = new mysqli('localhost', 'username', 'password', 'autoshop_db');
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
}

// Получение активной смены для данного механика
$active_shift_query = "SELECT id FROM shifts WHERE mechanic_id = {$_SESSION['user_id']} AND status = 'active'";
$active_shift_result = $db->query($active_shift_query);
$active_shift_row = $active_shift_result->fetch_assoc();
$active_shift_id = $active_shift_row['id'];

// Получение заказов за активную смену
$orders_query = "SELECT * FROM orders WHERE shift_id = $active_shift_id";
$orders_result = $db->query($orders_query);
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Автомеханик - Заказы</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body style="background-color: #e9f5ee;">
<div class="container">
<h2 class="mt-5">Заказы за активную смену</h2>
<table class="table">
<thead>
<tr>
<th>Номер заказа</th>
<th>Клиент</th>
<th>Элемент автомобиля</th>
<th>Количество повреждений</th>
<th>Детали</th>
<th>Жидкости</th>
<th>Статус</th>
</tr>
</thead>
<tbody>
<?php
while ($order = $orders_result->fetch_assoc()) {
echo "<tr>";
echo "<td>" . $order['id'] . "</td>";
echo "<td>" . $order['client_name'] . "</td>";
echo "<td>" . $order['car_part'] . "</td>";
echo "<td>" . $order['damage_count'] . "</td>";
echo "<td>" . $order['parts_ordered'] . "</td>";
echo "<td>" . $order['fluids_ordered'] . "</td>";
echo "<td>" . $order['status'] . "</td>";
echo "</tr>";
}
?>
</tbody>
</table>
</div>
</body>
</html>

4. diagnostician.php

<?php
// diagnostician.php
session_start();
if ($_SESSION['role'] != 'diagnostician') {
header('Location: index.php');
exit();
}

// Подключение к базе данных
$db = new mysqli('localhost', 'username', 'password', 'autoshop_db');
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
}

// Обработка изменения статуса заказа
if (isset($_POST['update_status'])) {
$order_id = $_POST['order_id'];
$new_status = $_POST['new_status'];
$update_query = "UPDATE orders SET status = '$new_status' WHERE id = $order_id";
$db->query($update_query);
}

// Получение списка заказов
$orders_query = "SELECT id, client_name, status FROM orders";
$orders_result = $db->query($orders_query);
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Автодиагност - Управление заказами</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body style="background-color: #e9f5ee;">
<div class="container">
<h2 class="mt-5">Управление заказами</h2>
<table class="table">
<thead>
<tr>
<th>Номер заказа</th>
<th>Клиент</th>
<th>Текущий статус</th>
<th>Обновить статус</th>
</tr>
</thead>
<tbody>
<?php
while ($order = $orders_result->fetch_assoc()) {
echo "<tr>";
echo "<td>" . $order['id'] . "</td>";
echo "<td>" . $order['client_name'] . "</td>";
echo "<td>" . $order['status'] . "</td>";
echo "<td>";
echo "<form method='post'>";
echo "<input type='hidden' name='order_id' value='{$order['id']}'>";
echo "<select name='new_status' class='form-control'>";
echo "<option value='Принят'>Принят</option>";
echo "<option value='В процессе'>В процессе</option>";
echo "<option value='Готов'>Готов</option>";
echo "<option value='Оплачен'>Оплачен</option>";
echo "</select>";
echo "<button type='submit' name='update_status' class='btn btn-primary mt-2'>Обновить статус</button>";
echo "</form>";
echo "</td>";
echo "</tr>";
}
?>
</tbody>
</table>
</div>
</body>
</html>