Skip to content

Prod test#2

Open
TsygankovMain wants to merge 17 commits intobitrix-tools:masterfrom
TsygankovMain:Prod-test
Open

Prod test#2
TsygankovMain wants to merge 17 commits intobitrix-tools:masterfrom
TsygankovMain:Prod-test

Conversation

@TsygankovMain
Copy link

No description provided.

TsygankovMain and others added 17 commits November 28, 2025 01:30
…tabase migrations for time entries, update Bitrix24 event and placement handling, and introduce new documentation files and VSCode settings.
- Added backend services for Bitrix24 API integration
  - BitrixClient for API communication with pagination support
  - ReportDataService for data validation and normalization
  - ReportController API endpoint (/api/reports/data)

- Implemented frontend report pages
  - Main navigation screen with report type selection
  - Report #1: Employee & Projects hierarchical view
  - Report bitrix-tools#2: Projects with employee breakdown
  - Report bitrix-tools#3: Monthly timesheet with calendar grid

- Updated documentation (Docs.md) with report generation algorithm
- Configured Bitrix24 webhook URL in environment variables
- Added public route for reports API endpoint

All reports follow the specifications from Docs.md including:
- Data fetching with pagination (up to 1500 records)
- Validation and normalization logic
- Project determination priority (field vs hierarchy)
- Display of record count in reports
- Улучшено логирование в useBitrixReport для диагностики запросов
- Исправлена структура возврата данных из fetchReportData (возврат напрямую вместо обертки)
- Обновлена обработка ответа в reports store для работы с новой структурой
- Добавлено детальное логирование ошибок с statusCode, statusMessage и data
- Разделен столбец 'Часы' на три: Учитываемые | Неучитываемые | Всего
- Добавлен автоматический подсчет итогов на всех уровнях (задача, проект, сотрудник)
- Добавлен маппинг новых полей из Smart Process:
  * title - название метки (вместо 'Метка #ID')
  * ufCrm87_1764361585 - название задачи
  * ufCrm87_1764265626 - ID проекта для группировки
  * ufCrm87_1761919601 - ФИО сотрудника
- Реализован маппинг ФИО сотрудников из загруженного списка users
- Улучшена группировка по проектам с использованием projectId
- Добавлена цветовая кодировка: зеленый (учитываемые), серый (неучитываемые), синий (всего)

Backend (ReportDataService.php):
- Добавлены константы для новых полей
- Реализован парсинг поля сотрудника с поддержкой формата 'ID_Name'
- Обновлена структура возвращаемых данных

Frontend (useBitrixReport.ts):
- Расширен интерфейс ReportItem новыми опциональными полями

Frontend (employees.vue):
- Обновлены заголовки таблицы (6 столбцов)
- Добавлено отображение сумм на всех уровнях группировки
- Реализован маппинг ФИО сотрудников
- Улучшена группировка по projectId
- BitrixClient: добавлен метод fetchAll для загрузки всех записей с пагинацией
- DictionaryController: использование fetchAll для загрузки полного списка пользователей
- employees.vue: улучшено сопоставление ID и добавлено логирование
- projects.vue:
  - Добавлена разбивка часов на 3 колонки (Учитываемые, Неучитываемые, Всего)
  - Добавлены итоги по группам (Проект, Сотрудник, Задача)
  - Исправлено отображение имен сотрудников и названий меток/задач
- timesheet.vue:
  - Исправлено отображение имен сотрудников (маппинг)
  - Улучшена детализация в модальном окне (использование entryTitle, taskTitle)
- Уменьшена ширина модального окна (max-w-lg)
- Добавлены отступы (mx-4)
- Уменьшен padding и размер шрифта заголовка
- На узких экранах окно прижимается к низу и занимает всю ширину
- На широких экранах остается по центру
- Улучшены стили списка задач внутри попапа
- employees.vue и projects.vue:
  - Добавлена возможность сворачивать/разворачивать группы (аккордеон)
  - По умолчанию группы свернуты до 1 уровня
  - Добавлены уникальные ключи для управления состоянием развернутости
  - Итоги (суммы часов) отображаются в заголовках групп
- Backend: добавлен метод getProjects (sonet_group.get) для получения активных групп
- Frontend:
  - api.ts: добавлен метод getProjects
  - employees.vue, projects.vue:
    - Загрузка списка проектов
    - Замена текстового поля фильтра на select
    - Маппинг названий проектов в таблице по ID из загруженного списка
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant