Выводы и предложения. Необходимо разработать конкретные предложения по усовершенствованию организации работы базы практики в рамках соответствующего профессионального модуля, что, по сути, становится итогом пройденной практики. При этом сравниваются результаты теоретического обучения с наблюдениями и выводами по работе в конкретной организации.
4. Приложения
Документальное подтверждение отдельных разделов, положений отчета (заполненные формы отчетности, документы, схемы, графики и прочее).
5. Литература
Законодательная база, №№ инструкций, приказов, распоряжений, учебные пособия, учебники и другая литература.
1 Анализ предметной области
Компания, в которой проходила практика - ООО «СМ-Сервис»
Общая информация о компании
Полное наименование: Общество с ограниченной ответственностью "СМ-Сервис"
ИНН: 7814501376
КПП: 781401001
ОГРН: 1117847197280
Место нахождения: 197371, г. Санкт-Петербург, пр-кт Комендантский, д. 21 корп. 2, 476
Основной вид деятельности: Ремонт компьютеров и периферийного компьютерного оборудования (код по ОКВЭД 95.11).
Дополнительно заявлены следующие виды деятельности:
Ремонт электронного и оптического оборудования (33.13)
Торговля оптовая радио-, теле- и видеоаппаратурой и аппаратурой для цифровых видеодисков (DVD) (46.43.2)
Торговля оптовая грампластинками, аудио- и видеомагнитными лентами, компакт-дисками (CD) и цифровыми видеодисками (DVD) (кроме носителей без записей) (46.43.3)
Торговля оптовая компьютерами, периферийными устройствами к компьютерам и программным обеспечением (46.51)
Торговля розничная компьютерами, периферийными устройствами к ним и программным обеспечением в специализированных магазинах (47.41)
Организация зарегистрирована 20 мая 2011 года.
Налоговый орган: Межрайонная инспекция Федеральной налоговой службы №26 по Санкт-Петербургу (код инспекции – 7814).
Регистрационный номер в ПФР: 1098633595 от 23 мая 2011 г.
Регистрационный номер в ФСС: 1098633595 от 31 марта 2019 г.
Генеральный директор Николаева Людмила Николаевна (ИНН: 781407242990), с 20 мая 2011 г.
Финансовые показатели
Уставный капитал: 10 тыс. руб.
Выручка за 2024 год: 2 млн руб. (на 612 тыс. руб. меньше, чем в 2023 году)
Совокупные активы на 31 декабря 2024 года: 1,6 млн руб. (на 217 тыс. руб. меньше, чем в 2023 году)
Чистые активы на 31 декабря 2024 года: 704 тыс. руб.
Результат работы за 2024 год: убыток в размере 128 тыс. руб. (в 2023 году была получена прибыль 77 тыс. руб.)
Численность сотрудников
Среднесписочная численность работников в 2024 году: 2 человека (такая же численность была и в 2023 году).
Категория предприятия
Организация относится к категории микропредприятий, что соответствует нормативно утвержденным критериям: выручка до 120 млн руб. в год и численность сотрудников до 15 человек.
Основные технико-экономические показатели на период с 2014 - по 2024года.
Таблица 1 Бухгалтерский баланс организации.
Изменение капитала и резервов (итог третьего раздела баланса), а также сумма внеоборотных и всех активов организации представлены на следующем графике:
Рисунок 1 - Изменение капитала и резервов
Три финансовых показателя, характеризующих структуру бухгалтерского баланса, финансовую устойчивость организации, рассчитаны в следующей таблице:
Таблица 2
Финансовые показатели, характеризующие структуру бухгалтерского баланса
Основными принципами работы в организации являются:
Непрерывность выполняемых работ,
Взаимозаменяемость должностных обязанностей работников,
Ритмичность работы.
Организация работы на практике проходила наряду с остальными сотрудниками - был проведен вводный инструктаж, старший менеджер провел обучение по работе с основными функциями информационной системы, вводу и редактированию данных в системе, дал на выполнение оформление пробного заказа на ремонт климатической техники. Когда все данные были введены корректно, работа с информационной системой выполнялась самостоятельно.
Организационная структура компании ООО «СМ-Сервис» представлена на рисунке 1
Рисунок 2 – Схема организации
Ввиду малой численности сотрудников компании на отделы деления нет, есть только специализация выполняемых должностных обязанностей сотрудников. Поскольку практика проходила в качестве штатного сотрудника, то подчинение по выполняемым задачам шло от менеджеров. Они, в свою очередь получали задания по управлению деятельностью от руководителя компании и могли сдавать отчетность по продажам и выполненным ремонтам техники бухгалтеру. Менеджеры проверяли правильность заполнения данных в информационной системе. В категорию штатных сотрудников также входит мастер по ремонту оборудования. Для выполнения специфического ремонта климатической техники иногда привлекаются узкопрофильные специалисты по договорам гражданско-правового характера.
Основной нормативной документацией в компании является:
- Устав компании
- Должностные инструкции сотрудников
- Приказы о назначении, о премировании
В должностные обязанности по выполнению практики входили:
- внесение в базу данных информации о заказчике ремонта техники, ее стоимости, сроках выполнения ремонта, мастере, который выполняет ремонт
- внесение в базу стоимости проданного оборудования
- ведение учета документов договорной работы на поставку оборудования в компании, обслуживаемые по тендерным договорам
К инженерно-техническим работникам относится мастер по ремонту оборудования. В его должностные обязанности входит проверка оборудования, обнаружение неисправностей, тестирование оборудования, выполнение ремонта.
Архитектура информационной системы
В компании в качестве оснащения рабочих мест используются компьютеры – вычислительная техника на базе процессора Intel Core i3. Все компьютеры соединены в локальную вычислительную сеть. Топология сети – звездообразная, то есть работа под управлением одного сервера, который выполняет роль коммутатора. Таким образом, обмен служебными сообщениями происходит через локальную сеть. Каждое рабочее место оснащено следующим комплектом программного обеспечения:
Офисный пакет Microsoft Office (Word, PowerPoint, Excel)
Информационная система Custis
На рабочем месте бухгалтера также установлен программный пакет 1С 8.3., средства для работы с электронной подписью для отправки отчетности в ФНС: КриптоПро, пакет Контур Экстерн, СбиС, Электронный документооборот Диадок.
Система CustIS MDM (Master Data Management), разработанная компанией CustIS Custom Information Systems, предназначена для интеграции, поддержания и распространения всех справочных данных в розничной сети. Она поддерживает сложные системы управления каталогом продукции, ценообразованием, скидками и бонусами.
CustIS MDM обеспечивает управление различными справочниками, используемыми в модулях оптовой и розничной торговли, логистики и аналитики. Система также поддерживает текущую организационно-правовую структуру торговой сети.
CustIS MDM может управлять и другими справочниками, необходимыми в процессе работы торговой сети.
Эксплуатационные характеристики CustIS MDM
Архитектура.
CustIS MDM может работать на нескольких удаленных серверах торговой сети, например, в различных филиалах в разных местах. Для обеспечения единообразия и целостности справочных данных для всей торговой организации используется механизм синхронизации данных: Разрешение конфликтов, обратная обработка на разных серверах и т.д. Таким образом, все изменения в распределенной бухгалтерской книге централизуются на центральном сервере и далее распространяются на другие серверы.
Централизованная настройка системы CustIS MDM также возможна при наличии быстрых каналов связи, чтобы информация из региональных точек входа поступала на центральный сервер непосредственно в штаб-квартире торговой сети.
Объем данных.
CustIS MDM поддерживает ведение более миллиона номеров товаров и 75 миллионов текущих значений атрибутов товара. Система поддерживает цены и скидки на все товары, а также уровни запасов (с указанием мест хранения) для сотен магазинов. Кроме того, хранится вся история изменений цен и скидок.
Фактический объем информации, управляемой CustIS MDM, составляет десятки гигабайт. Количество конкурирующих пользователей исчисляется тысячами.
Описание решения.
CustIS MDM гарантирует конкурентные операции с помощью общего каталога различных отделов децентрализованной торговой сети, таких как отделы анализа и планирования, закупок, маркетинга, оптовой и розничной торговли и бухгалтерия. Гибкая система доступа, основанная на декларативных заявлениях об авторизации, позволяет пользователям ограничивать свою работу как с каталогом в целом, так и с отдельными записями и атрибутами в нем.
Специализированный конструктор запросов обеспечивает удобный поиск информации и составление отчетов. Поддерживается несколько классификаторов, что позволяет создавать различные иерархии подкаталогов для разных групп пользователей.
CustIS MDM поддерживает следующие бизнес-процессы в розничных сетях
Ведение различных иерархических каталогов продукции для различных групп пользователей (например, бренд-менеджеров, менеджеров по закупкам и снабжению, менеджеров по розничным продажам) в одном хранилище данных.
Автоматическое и ручное создание и ведение каталогов
Автоматическая загрузка новых коллекций в каталог
Единообразная обработка описаний товаров различных типов и назначений
Управление всеми необходимыми свойствами товара без программирования на основе декларативных описаний.
Поддержка большого количества (сотни) атрибутов товара и группировка атрибутов для удобства отображения информации для различных целей, например, атрибутов цены или наличия товара.
Использование механизмов формирования пользовательских запросов упрощает выбор соответствующих групп товаров на основе определенных атрибутов.
Быстрый поиск продуктов на основе определенных атрибутов, таких как код, название, цена и т.д.
Хранение специализированных списков, связанных с атрибутами продукции, такими как бренд, модель продукта, размерный ряд и т.д.
Работа с документацией по продуктам на нескольких языках и поддержка функций в нескольких странах.
Управление ценами, скидками и акциями на основе специализированных каталогов, хранение всех исторических изменений цен и скидок.
Хранение соответствующих документов (сертификаты, описания, таможенные декларации и т.д.).
Погрузка, обработка и отображение количества товаров, оставшихся на складе.
Управление юридической структурой и организацией торговой сети.
Взаимодействие CustIS MDM с другими элементами информационной системы торговой сети
Система управления основными данными CustIS MDM является основным компонентом информационной системы. Она объединяет специализированную информацию, управляемую каждым отделом, в единую базу знаний о товарах и товарных остатках в торговой сети. Благодаря гибкому интерфейсу CustIS MDM может быть интегрирована в существующую CIS и одинаково взаимодействовать с коммерческими бизнес-приложениями, разработанными CustIS и сторонними разработчиками.
CustIS MDM имеет своего рода "витрину хранения данных" под названием Write Version, которая получает изменения из модуля центра системы через механизм инкрементной репликации и позволяет другим компонентам CIS считывать данные через определенный интерфейс Данные могут быть прочитаны другими компонентами CIS через определенный интерфейс. Использование облегченных версий полезно в ситуациях, когда низкая скорость линий связи делает невозможным онлайновый обмен данными с центральным сервером, например, в розничных магазинах.
Облегченная версия этого модуля также может быть использована для настройки структуры, состава и данных самого каталога с целью более эффективного использования потребительской единицы этой информации. В этом случае "витрина" получает и передает только необходимые изменения данных, что значительно снижает ее емкость и ускоряет доставку информации на экран пользователя.
Рисунок 3
Как видно из представленного на рисунке 3 процесса стратегии развития организации, посредством основных штатных сотрудников происходят процессы заключения договоров с внешними организациями, выполняются задачи по наращиванию объемов продаж. Всеми этими процессами управляет непосредственно генеральный директор. На рисунке 3 также можно увидеть архитектурную схему организации – генеральному директору подчиняются штатные сотрудники. В их число также входят менеджеры и бухгалтер. На рисунке 4 представлена инфологическая схема организации.
Рисунок 4 Инфологическая модель данных системы
Серверная часть системы выполнена с использованием языка программирования PHP, разработанного специально для написания web-приложений. Этот язык достаточно гибкий и мощный, поэтому приобрёл большую популярность и используется в проектах любого масштаба: от простого блога до крупнейших веб-приложений в Интернете.
Рекомендуемые системные требования:
отдельный сервер для сервера приложений, на котором будет храниться серверная часть программы;
отдельный сервер для хранения базы данных;
клиентские компьютеры с тактовой частотой процессора 2000 GHz, 2048 МБ оперативной памяти, 500 МБ свободного места на жестком диске для хранения временных документов.
Описание разработки информационной системы
Клиентская часть информационной системы для ООО "СМ-Сервис" разработана с использованием скриптового языка программирования JavaScript, который активно применяется в веб-приложениях для повышения интерактивности страниц. JavaScript позволяет гибко реагировать на действия пользователя, обеспечивая динамическое обновление контента без необходимости перезагрузки всей страницы.
Серверная часть системы документооборота выполняет основные функции, необходимые для обеспечения взаимодействия пользователей с системой: она обрабатывает входящие запросы, осуществляет взаимодействие с базой данных, обрабатывает информацию и выдает результаты в виде веб-страниц. Работа с системой осуществляется через любой популярный веб-браузер на различных устройствах, таких как персональные компьютеры, ноутбуки, смартфоны и планшеты, что предоставляет пользователям максимальную гибкость и доступность.
Для обеспечения высокой структуры и удобства сопровождения программный код был организован по смысловым признакам в отдельные классы, процедуры и функции в соответствии с принципами объектно-ориентированного программирования (ООП). Все функции, выполняемые сервером, находятся в нескольких основных классах:
- Класс интерфейса для взаимодействия с пользователем: отвечает за создание пользовательского интерфейса, обработку действий пользователей и отображение информации.
- Класс сетевого взаимодействия между клиентами и сервером: реализует механизмы, обеспечивающие беспрепятственный обмен данными между клиентами и сервером системы.
- Класс взаимодействия сервера с базой данных: управляет всеми запросами к базе данных, обеспечивает целостность и безопасность данных.
- Класс журналирования служебной информации: отслеживает события в системе и ведет логин, что помогает в мониторинге работы системы и диагностике возможных ошибок.
Реализация клиентской части сведена к использованию языка разметки веб-страниц HTML для создания структуры страниц, языка стилей CSS для оформления и компоновки визуальных элементов, а также PHP для генерации HTML страниц на сервере и обработки логики приложения.
В состав информационной системы ООО "СМ-Сервис" входят следующие ключевые модули:
- Модуль "ПЕРСОНАЛ": предназначен для ведения учета сотрудников компании, их данных, должностей и нагрузки.
- Модуль "ДОГОВОРЫ": позволяет эффективно управлять договорами с клиентами, их статусами, условиями и историей изменений.
4. Тестирование
Тестирование программного кода информационной системы для ООО "СМ-Сервис" проводилось командой разработчиков и привлеченными специалистами в области информационных технологий. Основное внимание в ходе тестирования было уделено проверке работоспособности системы, ее производительности и стабильности под различными сценариями нагрузки.
Тестирование осуществлялось в различных средах, включая:
- Серверные операционные системы семейства MS Windows Server 2005 – Windows Server 2008 R2 с предварительно установленным веб-сервером IIS 7 и модулем PHP для генерации динамического контента.
- *nix-системы с установленным Apache HTTP-сервером и модулем PHP для обеспечения совместимости с различными стандартами и особенностями серверного окружения.
Система была протестирована как по-обычному, так и по защищенному протоколу HTTP, что позволило убедиться в ее работоспособности в условиях различной конфиденциальности и безопасности передачи данных.
Для проверки корректности работы информационной системы были разработаны и реализованы следующие типы тестов:
1. Нагрузочное тестирование: Проведена имитация множественного подключения до 50 клиентов к серверу одновременно в различных узлах сети. Результаты тестирования показали, что система справляется с нагрузкой без заметного замедления обмена запросами или ухудшения отклика сервера.
2. Функциональность документооборота: Испытана функциональность регистрации документов и сделок несколькими контролерами с различными исполнителями. Все зарегистрированные документы корректно распределялись между необходимыми контролерами, а сделки поступали исполнителям согласно заданным условиям.
3. Поиск и фильтрация: Проведены тесты на поиск по всем возможным реквизитам, что продемонстрировало способность системы выдавать все требуемые документы, соответствующие критериям запроса. Кроме того, система успешно обрабатывала фильтры, позволяя пользователям выводить нужные данные в соответствии с заданными параметрами.
Во время тестирования серьезных ошибок не было выявлено. Однако были замечены несколько незначительных проблем, требующих внимания:
- Проблемы с записью больших документов: Обнаружены возможные сбои в записи больших объемов файлов документов в базу данных. Это связано с текущими внутренними настройками базы данных, и устранено увеличением значения максимального размера пакета для записи.
- Отрисовка диаграмм в браузере: В версии Internet Explorer 7 были замечены проблемы с визуализацией полных диаграмм. Эти проблемы являются результатом недостаточной совместимости и могут быть решены путем улучшения кросс-браузерности кода, особенно с учетом поддержки устаревших браузеров.
Выводы
В ходе работы было выполнено индивидуальное задание:
выполнен анализ предприятия;
выполнен анализ предметной области;
была создана ИС, отвечающая основным требованиям, обозначенным в разделе проектирования
определенна технология и выбрана среда программирования;
разработан программный код ИС;
описаны использованные средства тестирования;
проведено тестирование ИС по определенному сценарию;
Разработанная информационная система может успешно применяться как на малых предприятиях для централизованного хранения всего комплекса документов, так и в средних компаниях, используя весь функционал программы, необходимый для быстрого и качественного документооборота.
Список используемых источников
Грекул, В. И. Проектирование информационных систем : учебное пособие / В. И. Грекул, Г. Н. Денищенко, Н. Л. Коровкина. — 3-е изд. — Москва : Интернет-Университет Информационных Технологий (ИНТУИТ), Ай Пи Ар Медиа, 2020. — 299 c. — ISBN 978-5-4497-0689-8. — Текст : электронный // Электронно-библиотечная система IPR BOOKS : [сайт]. — URL: https://www.iprbookshop.ru/97577.html
Лукьянов, Г. В. Проектный практикум : учебное пособие / Г. В. Лукьянов. — Москва : Московский гуманитарный университет, 2016. — 52 c. — ISBN 978-5-906822-43-7. — Текст : электронный // Электронно-библиотечная система IPR BOOKS : [сайт]. — URL: https://www.iprbookshop.ru/75186.html
Платёнкин А.В. Проектирование информационных систем. Проектный практикум : учебное пособие для студентов дневного и заочного отделений, изучающих курсы «Проектирование информационных систем», «Проектный практикум», обучающихся по направлению 230700.62 (09.03.03) / А. В. Платёнкин, И. П. Рак, А. В. Терехов, В. Н. Чернышов. — Тамбов : Тамбовский государственный технический университет, ЭБС АСВ, 2015. — 80 c. — ISBN 978-5-8265-1409-2. — Текст : электронный // Электронно-библиотечная система IPR BOOKS : [сайт]. — URL: https://www.iprbookshop.ru/64560.html
Программный код информационной системы для ООО "СМ-Сервис"
CREATE DATABASE smservice;
USE smservice;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE clients (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
contact_info TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE orders (
id INT AUTO_INCREMENT PRIMARY KEY,
client_id INT NOT NULL,
order_details TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (client_id) REFERENCES clients(id) ON DELETE CASCADE
);
<?php
$host = 'localhost';
$db = 'smservice';
$user = 'root'; // Имя пользователя
$pass = ''; // Пароль
try {
$pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Could not connect to the database $db :" . $e->getMessage());
}
?>
<?php
require 'config.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = htmlspecialchars($_POST['username']);
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
$stmt->execute([$username]);
if ($stmt->rowCount() > 0) {
echo "Пользователь с таким именем уже существует.";
} else {
$stmt = $pdo->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
if ($stmt->execute([$username, $password])) {
echo "Регистрация успешна.";
header("Location: login.php");
exit();
} else {
echo "Ошибка регистрации.";
}
}
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Регистрация</title>
</head>
<body>
<h2>Регистрация</h2>
<form method="post" action="">
<label for="username">Имя пользователя:</label>
<input type="text" name="username" required>
<br>
<label for="password">Пароль:</label>
<input type="password" name="password" required>
<br>
<input type="submit" value="Зарегистрироваться">
</form>
</body>
</html>
<?php
require 'config.php';
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = htmlspecialchars($_POST['username']);
$password = $_POST['password'];
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
$stmt->execute([$username]);
if ($stmt->rowCount() === 1) {
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if (password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
header("Location: clients.php");
exit();
} else {
echo "Неверный пароль.";
}
} else {
echo "Пользователь не найден.";
}
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Вход</title>
</head>
<body>
<h2>Вход</h2>
<form method="post" action="">
<label for="username">Имя пользователя:</label>
<input type="text" name="username" required>
<br>
<label for="password">Пароль:</label>
<input type="password" name="password" required>
<br>
<input type="submit" value="Войти">
</form>
</body>
</html>
<?php
require 'config.php';
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit();
}
// Добавление нового клиента
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = htmlspecialchars($_POST['name']);
$contact_info = htmlspecialchars($_POST['contact_info']);
$stmt = $pdo->prepare("INSERT INTO clients (name, contact_info) VALUES (?, ?)");
$stmt->execute([$name, $contact_info]);
}
// Получение списка клиентов
$stmt = $pdo->query("SELECT * FROM clients");
$clients = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Управление клиентами</title>
</head>
<body>
<h2>Управление клиентами</h2>
<form method="post" action="">
<label for="name">Имя клиента:</label>
<input type="text" name="name" required>
<br>
<label for="contact_info">Контактная информация:</label>
<textarea name="contact_info" required></textarea>
<br>
<input type="submit" value="Добавить клиента">
</form>
<h3>Список клиентов:</h3>
<table border="1">
<tr>
<th>ID</th>
<th>Имя клиента</th>
<th>Контактная информация</th>
</tr>
<?php foreach ($clients as $client): ?>
<tr>
<td><?= htmlspecialchars($client['id']) ?></td>
<td><?= htmlspecialchars($client['name']) ?></td>
<td><?= htmlspecialchars($client['contact_info']) ?></td>
</tr>
<?php endforeach; ?>
</table>
<a href="logout.php">Выйти</a>
</body>
</html>
<?php
require 'config.php';
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit();
}
// Добавление нового заказа
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$client_id = $_POST['client_id'];
$order_details = htmlspecialchars($_POST['order_details']);
$stmt = $pdo->prepare("INSERT INTO orders (client_id, order_details) VALUES (?, ?)");
$stmt->execute([$client_id, $order_details]);
}
// Получение списка клиентов для выпадающего списка
$clients_stmt = $pdo->query("SELECT * FROM clients");
$clients = $clients_stmt->fetchAll(PDO::FETCH_ASSOC);
// Получение списка заказов
$orders_stmt = $pdo->query("SELECT * FROM orders JOIN clients ON orders.client_id = clients.id");
$orders = $orders_stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Заказы</title>
</head>
<body>
<h2>Управление заказами</h2>
<form method="post" action="">
<label for="client_id">Выберите клиента:</label>
<select name="client_id" required>
<?php foreach ($clients as $client): ?>
<option value="<?= $client['id'] ?>"><?= htmlspecialchars($client['name']) ?></option>
<?php endforeach; ?>
</select>
<br>
<label for="order_details">Детали заказа:</label>
<textarea name="order_details" required></textarea>
<br>
<input type="submit" value="Создать заказ">
</form>
<h3>Список заказов:</h3>
<table border="1">
<tr>
<th>ID</th>
<th>Клиент</th>
<th>Детали заказа</th>
<th>Дата создания</th>
</tr>
<?php foreach ($orders as $order): ?>
<tr>
<td><?= htmlspecialchars($order['id']) ?></td>
<td><?= htmlspecialchars($order['name']) ?></td>
<td><?= htmlspecialchars($order['order_details']) ?></td>
<td><?= htmlspecialchars($order['created_at']) ?></td>
</tr>
<?php endforeach; ?>
</table>
<a href="logout.php">Выйти</a>
</body>
</html>
<?php
session_start();
session_destroy(); // Завершение сессии
header("Location: login.php");
exit();
?>