Files
crm.clientright.ru/CREATE_COURT_EVENT_README.md
Fedor 75d3f7942b feat: Обновлены все URL Nextcloud с office.klientprav.tech на office.clientright.ru
Обновленные файлы:
- 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 файлы и тестовые директории не изменены
2025-10-20 17:17:34 +03:00

178 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Система создания судебных событий в 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` с теми же параметрами.