Обновленные файлы: - crm_extensions/nextcloud_api.php (2 места) - modules/Documents/actions/NcPrepareEdit.php - crm_extensions/nextcloud_editor/js/nextcloud-editor.js - crm_extensions/file_storage/api/get_edit_urls.php - crm_extensions/file_storage/api/simple_edit.php - crm_extensions/README.md - NEXTCLOUD_EDIT_BUTTON_IMPLEMENTATION.md - crm_extensions/docs/NEXTCLOUD_EDITOR.md - test_syntax_check.html - crm_extensions/tests/test_edit_button.html Все ссылки теперь указывают на новый сервер office.clientright.ru Backup файлы и тестовые директории не изменены
7.0 KiB
Система создания судебных событий в CRM
Описание
Новая система для автоматического создания событий в календаре CRM на основе данных парсинга судебных сайтов. Решает проблему нестабильной работы workflow и обеспечивает надёжное создание событий через прямые SQL запросы.
Структура
1. CreateCourtEvent_v2.php
Основной скрипт для создания событий
- Создаёт событие в календаре CRM через прямые SQL запросы
- Привязывает событие к проекту
- Обновляет поля проекта с датой и временем последнего события
- Надёжно работает даже при высокой нагрузке
Входные параметры (JSON через stdin или POST):
{
"project_id": "364118",
"event_name": "Судебное заседание",
"event_date": "02.10.2025",
"event_time": "12:00",
"location": "Зал 305",
"result": "Решение",
"basis": "Основание",
"note": "Примечание",
"publication_date": "02.10.2025"
}
Выходные данные:
{
"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)
Выходные данные:
{
"success": true,
"message": "Парсинг выполнен и событие создано",
"event_created": true,
"event_id": "4x395438",
"event_name": "Решение",
"event_date": "02.10.2025",
"event_time": "12:00",
"project_id": "364118"
}
Использование
Вариант 1: Прямое создание события (если данные уже есть)
echo '{"project_id":"364118","event_name":"Решение","event_date":"02.10.2025","event_time":"12:00","result":"02-15800/2025 - Решение"}' | php CreateCourtEvent_v2.php
Вариант 2: Парсинг и создание события (полный цикл)
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:
$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
Преимущества новой системы
- ✅ Надёжность - прямые SQL запросы вместо ненадёжного workflow
- ✅ Независимость - не зависит от кеша и багов Workflow2
- ✅ Логирование - детальные логи на каждом этапе
- ✅ Гибкость - можно вызывать из workflow, cron, или вручную
- ✅ Совместимость - работает с существующим
parscourt.php - ✅ Универсальность - поддерживает и региональные, и московские суды
Обновление полей проекта
При создании события автоматически обновляются поля:
- cf_1682 - дата последнего события (формат YYYY-MM-DD)
- cf_1684 - время последнего события (формат HH:MM:SS)
Связь с проектом
Событие автоматически связывается с проектом через таблицу vtiger_seactivityrel, что позволяет видеть его в разделе "Мероприятия" проекта.
Статус события
По умолчанию событие создаётся со статусом:
- Тип: Meeting (Встреча)
- Статус: Planned (Запланировано)
- Видимость: Public (Публичное)
- Длительность: 1 час
Примечания
- Если дата события пустая, событие не создаётся
- Если время не указано, используется 10:00 по умолчанию
- Владелец события = владелец проекта
- Событие автоматически появляется в календаре CRM
Миграция с workflow
Чтобы перейти с workflow на новую систему:
- В workflow замените блок "обрабатываем JSON" и "Создаем Событие по суду" на один блок "HTTP Request"
- Укажите URL:
http://your-domain.ru/ParseAndCreateEvent.php - Передайте параметры проекта
- Проверьте ответ на
success: true
Или просто замените вызов parscourt.php на ParseAndCreateEvent.php с теми же параметрами.