# Система создания судебных событий в CRM ## Описание Новая система для автоматического создания событий в календаре CRM на основе данных парсинга судебных сайтов. Решает проблему нестабильной работы workflow и обеспечивает надёжное создание событий через прямые SQL запросы. ## Структура ### 1. CreateCourtEvent_v2.php **Основной скрипт для создания событий** - Создаёт событие в календаре CRM через прямые SQL запросы - Привязывает событие к проекту - Обновляет поля проекта с датой и временем последнего события - Надёжно работает даже при высокой нагрузке **Входные параметры (JSON через stdin или POST):** ```json { "project_id": "364118", "event_name": "Судебное заседание", "event_date": "02.10.2025", "event_time": "12:00", "location": "Зал 305", "result": "Решение", "basis": "Основание", "note": "Примечание", "publication_date": "02.10.2025" } ``` **Выходные данные:** ```json { "success": true, "event_id": "4x395438", "event_numeric_id": 395438, "event_name": "Решение", "event_date": "2025-10-02", "event_time": "12:00:00", "project_id": 364118, "message": "Событие успешно создано и привязано к проекту" } ``` ### 2. ParseAndCreateEvent.php **Обёртка для workflow - полный цикл парсинга и создания события** - Принимает те же параметры что и `parscourt.php` - Вызывает `parscourt.php` для парсинга данных с сайта суда - Извлекает данные последнего события из ответа - Создаёт событие через `CreateCourtEvent_v2.php` **Входные параметры (GET/POST):** - `project_id` - ID проекта (обязательно) - `status` - статус проекта - `link1`, `link2`, `link3` - ссылки на дело в суде - `case_number` - номер дела - `uid` - УИД дела - `use_new_parser` - использовать новый парсер (по умолчанию true) - `skip_duplicate_check` - пропустить проверку дубликатов (по умолчанию false) **Выходные данные:** ```json { "success": true, "message": "Парсинг выполнен и событие создано", "event_created": true, "event_id": "4x395438", "event_name": "Решение", "event_date": "02.10.2025", "event_time": "12:00", "project_id": "364118" } ``` ## Использование ### Вариант 1: Прямое создание события (если данные уже есть) ```bash echo '{"project_id":"364118","event_name":"Решение","event_date":"02.10.2025","event_time":"12:00","result":"02-15800/2025 - Решение"}' | php CreateCourtEvent_v2.php ``` ### Вариант 2: Парсинг и создание события (полный цикл) ```bash php ParseAndCreateEvent.php project_id=364118 status="представительство в суде 1й инстанции" link1="https://mos-gorsud.ru/rs/shcherbinskij/services/cases/civil/details/d5ccaf30-7093-11f0-87dc-e54257624d4d" ``` Или через HTTP: ``` GET /ParseAndCreateEvent.php?project_id=364118&status=...&link1=... ``` ### Вариант 3: Из workflow CRM В workflow вместо блока PHP кода используйте блок "HTTP Request": **URL:** `http://your-domain.ru/ParseAndCreateEvent.php` **Method:** GET или POST **Parameters:** ``` project_id=$crmid status=$projectstatus link1=$cf_1499 link2=$cf_2278 link3=$cf_2281 case_number=$project_no uid=$cf_2490 ``` **Response handling:** ```php $response = json_decode($result, true); if ($response['success'] && $response['event_created']) { return "yes"; // Событие создано } else { return "no"; // Событие не создано } ``` ## Логи - **CreateCourtEvent_v2.php:** `logs/create_court_event.log` - **ParseAndCreateEvent.php:** `logs/parse_and_create_event.log` - **parscourt.php:** `logs/parser.log` ## Преимущества новой системы 1. ✅ **Надёжность** - прямые SQL запросы вместо ненадёжного workflow 2. ✅ **Независимость** - не зависит от кеша и багов Workflow2 3. ✅ **Логирование** - детальные логи на каждом этапе 4. ✅ **Гибкость** - можно вызывать из workflow, cron, или вручную 5. ✅ **Совместимость** - работает с существующим `parscourt.php` 6. ✅ **Универсальность** - поддерживает и региональные, и московские суды ## Обновление полей проекта При создании события автоматически обновляются поля: - **cf_1682** - дата последнего события (формат YYYY-MM-DD) - **cf_1684** - время последнего события (формат HH:MM:SS) ## Связь с проектом Событие автоматически связывается с проектом через таблицу `vtiger_seactivityrel`, что позволяет видеть его в разделе "Мероприятия" проекта. ## Статус события По умолчанию событие создаётся со статусом: - **Тип:** Meeting (Встреча) - **Статус:** Planned (Запланировано) - **Видимость:** Public (Публичное) - **Длительность:** 1 час ## Примечания - Если дата события пустая, событие не создаётся - Если время не указано, используется 10:00 по умолчанию - Владелец события = владелец проекта - Событие автоматически появляется в календаре CRM ## Миграция с workflow Чтобы перейти с workflow на новую систему: 1. В workflow замените блок "обрабатываем JSON" и "Создаем Событие по суду" на один блок "HTTP Request" 2. Укажите URL: `http://your-domain.ru/ParseAndCreateEvent.php` 3. Передайте параметры проекта 4. Проверьте ответ на `success: true` Или просто замените вызов `parscourt.php` на `ParseAndCreateEvent.php` с теми же параметрами.