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 файлы и тестовые директории не изменены
This commit is contained in:
177
CREATE_COURT_EVENT_README.md
Normal file
177
CREATE_COURT_EVENT_README.md
Normal file
@@ -0,0 +1,177 @@
|
||||
# Система создания судебных событий в 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` с теми же параметрами.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user