Тестовое: Интеграция Drupal с внешней SQLite БД (Production Monitor)

Откликнуться
G
Заказчик
Отзывы фрилансеров: + 0 - 0
Зарегистрирован на сайте 14 лет и 10 месяцев
Бюджет: 800 руб
9.91 $ — 8.46 €
Цель тестового задания
Реализовать Drupal-модуль, который выступает в роли моста между:
внешней SQLite БД (production monitor),
и базой данных Drupal.
Модуль должен:
читать данные об изделии из SQLite,
выполнять расчёты на стороне PHP,
сохранять агрегированную информацию в Drupal,
выводить таблицу операций изделия.
❗ Задание является частью будущего переноса всей системы на Drupal.
Важно не только «чтобы работало», но и как это реализовано.

Общие условия
CMS: Drupal 10 или 11
Источник данных: SQLite (workshop_bot.db)
Дизайн / верстка: не важны
Twig: только отображение, без логики
Фокус: архитектура, чистота кода, расчёты

Архитектура подключения к SQLite
Модуль должен получать данные из внешней SQLite БД, используя:
Drupal Database API;
централизованное подключение (не в контроллере).
❌ Запрещено:
прямые вызовы PDO в контроллерах;
sqlite_open, new PDO() в бизнес-логике;
SQL в Twig.

Модуль
Название: factory_bridge
Структура ожидаемо включает:
сервис для работы с SQLite;
контроллер (или блок) для вывода данных;
при необходимости — entity или node.

Данные, используемые в тестовом задании
Используемые таблицы SQLite (обязательно):
order_items
assigned_tasks
work_sessions
❌ Остальные таблицы, описанные в DATABASE_SCHEMA.md,
в рамках тестового задания использовать не требуется.

Алгоритмы расчёта (обязательные)
Для выбранного изделия (order_items.internal_id):
1. Операции
Операция = одна запись из assigned_tasks, связанная с изделием.
2. НЧ План
Берётся напрямую из:
assigned_tasks.applied_norm_hours

3. Ч Факт
Сумма длительности всех рабочих сессий операции:
Σ (work_sessions.end_time – work_sessions.start_time)

если end_time = NULL — сессия считается активной;
расчёт выполняется на стороне PHP.
4. Дельта
Δ = План – Факт

Вывод данных
Реализовать страницу или блок, который выводит таблицу операций изделия.
Минимальный набор колонок:
Код / Название операции
НЧ План
Ч Факт
Δ (дельта)
Скриншот текущей реализации (не на Drupal) приложен только как пример структуры данных,
визуальное совпадение не требуется.

Сохранение в Drupal
При импорте данных:
создать или обновить сущность в Drupal:
Node типа «Изделие» или
Custom Entity (по выбору разработчика).
Сохранить минимум:
название изделия,
артикул / код,
статус (произвольная логика допустима).

Критерии приёмки (на что смотрим)
✔ Drupal Coding Standards
✔ Использование Services и Dependency Injection
✔ Отсутствие прямых SQL-инъекций в БД Drupal
✔ Корректная работа с датами и таймзонами (ISO)
✔ Вся бизнес-логика в PHP, не в Twig
✔ Читаемость и структура кода

Формат сдачи
Git-репозиторий или
архив с модулем factory_bridge.
README приветствуется, но не обязателен.
Разделы:
Опубликован:
20.12.2025 | 09:18 [поднят: 20.12.2025 | 09:18]
Откликнуться

Выберите способ верификации:

Обновите страницу после прохождения верификации.

Посмотреть другие заказы Разместить заказ

Теги: нужен программист, резюме программиста, требуется программист, резюме веб программиста

Наши партнеры
Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».