Обновленные файлы: - 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 файлы и тестовые директории не изменены
264 lines
8.4 KiB
Markdown
264 lines
8.4 KiB
Markdown
# Эндпоинт получения статуса обращений в суд
|
||
|
||
**Файл:** `GetCourtStatus.php`
|
||
**Создан:** 15 октября 2025
|
||
|
||
## 🎯 Назначение
|
||
|
||
Получение статуса обращения из системы ej.sudrf.ru через API Debexpert.
|
||
|
||
Позволяет отслеживать:
|
||
- Текущий статус обращения
|
||
- Историю изменений статуса
|
||
- Документы от суда (определения, решения)
|
||
- Информацию о суде
|
||
|
||
## 📡 Использование
|
||
|
||
### Базовый запрос (с тестовым номером)
|
||
|
||
```bash
|
||
curl https://crm.clientright.ru/GetCourtStatus.php
|
||
```
|
||
|
||
По умолчанию использует тестовый номер: `41RS0001-201-25-0001140`
|
||
|
||
### Запрос с конкретным номером
|
||
|
||
```bash
|
||
curl "https://crm.clientright.ru/GetCourtStatus.php?registrationId=41RS0001-201-25-0001140"
|
||
```
|
||
|
||
### Запрос с фильтрацией по датам
|
||
|
||
```bash
|
||
curl "https://crm.clientright.ru/GetCourtStatus.php?registrationId=41RS0001-201-25-0001140&startDate=01.10.2025&endDate=31.10.2025"
|
||
```
|
||
|
||
### Из браузера
|
||
|
||
Просто откройте URL:
|
||
```
|
||
https://crm.clientright.ru/GetCourtStatus.php?registrationId=41RS0001-201-25-0001140
|
||
```
|
||
|
||
## 📥 Параметры запроса
|
||
|
||
| Параметр | Тип | Обязательный | Описание | Пример |
|
||
|----------|-----|--------------|----------|---------|
|
||
| `registrationId` | string | Нет* | Регистрационный номер обращения | `41RS0001-201-25-0001140` |
|
||
| `startDate` | string | Нет | Начальная дата (dd.mm.yyyy) | `01.10.2025` |
|
||
| `endDate` | string | Нет | Конечная дата (dd.mm.yyyy) | `31.10.2025` |
|
||
|
||
\* Если не указан, используется тестовый номер `41RS0001-201-25-0001140`
|
||
|
||
## 📤 Формат ответа
|
||
|
||
### Успешный ответ
|
||
|
||
```json
|
||
{
|
||
"status": "OK",
|
||
"registrationId": "41RS0001-201-25-0001140",
|
||
"data": {
|
||
"data": [
|
||
{
|
||
"court": {
|
||
"VNKOD": "41RS0001",
|
||
"ZNACHATR": "Петропавловск-Камчатский городской суд",
|
||
"ADRESS": "683049, г. Петропавловск-Камчатский, ул. Звездная, д. 7",
|
||
...
|
||
},
|
||
"created": "2025-10-15T16:41:20.000+03:00",
|
||
"current_state_text": "Зарегистрировано в суде",
|
||
"id": "process123",
|
||
"number": "41RS0001-201-25-0001140",
|
||
"status": 200,
|
||
"status_description": "В обработке",
|
||
"type": "201.01",
|
||
"type_title": "Исковое заявление",
|
||
"history": [
|
||
{
|
||
"id": 123456,
|
||
"direction": "OUT",
|
||
"status_text": "Отправлено в суд",
|
||
"created": "2025-10-15T16:41:20.000+03:00",
|
||
"files": []
|
||
},
|
||
{
|
||
"id": 123457,
|
||
"direction": "IN",
|
||
"status_text": "Доставлено в суд",
|
||
"created": "2025-10-16T10:00:00.000+03:00",
|
||
"files": []
|
||
},
|
||
{
|
||
"id": 123458,
|
||
"direction": "IN",
|
||
"status_text": "Зарегистрировано в суде",
|
||
"created": "2025-10-17T14:30:00.000+03:00",
|
||
"files": []
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"request_id": "uuid-...",
|
||
"status": "200"
|
||
}
|
||
}
|
||
```
|
||
|
||
### Ответ с ошибкой
|
||
|
||
```json
|
||
{
|
||
"status": "ERROR",
|
||
"message": "Описание ошибки",
|
||
"http_code": 400,
|
||
"response_body": "..."
|
||
}
|
||
```
|
||
|
||
## 📊 Возможные статусы обращения
|
||
|
||
- `Отправлено в суд` - документы отправлены
|
||
- `Проверка ЭП пройдена` - электронная подпись проверена
|
||
- `Доставлено в суд` - документы получены судом
|
||
- `Зарегистрировано в суде` - обращение зарегистрировано
|
||
- `Передано на рассмотрение судье` - назначен судья
|
||
- `Принято к производству` - дело принято к рассмотрению
|
||
- `Назначено к слушанию` - назначена дата слушания
|
||
- `Отказано в принятии` - отказ в принятии обращения
|
||
- И другие...
|
||
|
||
## 📁 Логирование
|
||
|
||
Все запросы логируются в файл:
|
||
```
|
||
logs/court_status.log
|
||
```
|
||
|
||
Содержимое лога:
|
||
- Время запроса
|
||
- Регистрационный номер
|
||
- Параметры fillData
|
||
- HTTP статус код ответа
|
||
- Тело ответа от API
|
||
- Ошибки (если были)
|
||
|
||
### Просмотр логов
|
||
|
||
```bash
|
||
# Последние записи
|
||
tail -n 50 logs/court_status.log
|
||
|
||
# В реальном времени
|
||
tail -f logs/court_status.log
|
||
|
||
# Поиск ошибок
|
||
grep "ошибка" logs/court_status.log
|
||
```
|
||
|
||
## 🔧 Интеграция в CRM
|
||
|
||
### Вариант 1: AJAX запрос из интерфейса
|
||
|
||
```javascript
|
||
// Получить статус по номеру
|
||
fetch('GetCourtStatus.php?registrationId=41RS0001-201-25-0001140')
|
||
.then(response => response.json())
|
||
.then(data => {
|
||
if (data.status === 'OK') {
|
||
console.log('Текущий статус:', data.data.data[0].current_state_text);
|
||
console.log('История:', data.data.data[0].history);
|
||
} else {
|
||
console.error('Ошибка:', data.message);
|
||
}
|
||
});
|
||
```
|
||
|
||
### Вариант 2: Автоматическая проверка по крону
|
||
|
||
Создать скрипт, который:
|
||
1. Берёт все проекты со статусом "отправлено в суд"
|
||
2. Для каждого проекта вызывает GetCourtStatus.php
|
||
3. Обновляет статус в CRM
|
||
4. Скачивает новые документы от суда
|
||
|
||
### Вариант 3: Кнопка в интерфейсе проекта
|
||
|
||
Добавить кнопку "Проверить статус в суде", которая:
|
||
1. Вызывает GetCourtStatus.php с номером из проекта
|
||
2. Показывает актуальную информацию
|
||
3. Предлагает скачать документы от суда
|
||
|
||
## 🧪 Тестирование
|
||
|
||
### Тест 1: Базовый запрос (с тестовым номером)
|
||
|
||
```bash
|
||
curl https://crm.clientright.ru/GetCourtStatus.php
|
||
```
|
||
|
||
Ожидается: JSON с данными или сообщение об ошибке
|
||
|
||
### Тест 2: Запрос с реальным номером
|
||
|
||
```bash
|
||
curl "https://crm.clientright.ru/GetCourtStatus.php?registrationId=41RS0001-201-25-0001140"
|
||
```
|
||
|
||
Ожидается: Информация по конкретному обращению
|
||
|
||
### Тест 3: Проверка логов
|
||
|
||
```bash
|
||
tail -n 20 logs/court_status.log
|
||
```
|
||
|
||
Ожидается: Записи о запросах и ответах
|
||
|
||
## 🔄 Следующие шаги
|
||
|
||
1. **Протестировать эндпоинт** с реальным номером
|
||
2. **Определить, как часто проверять** статусы (раз в час, день?)
|
||
3. **Решить, где хранить** историю статусов в CRM
|
||
4. **Добавить функционал** скачивания документов от суда
|
||
5. **Создать уведомления** при изменении статуса
|
||
|
||
## ⚙️ Настройка
|
||
|
||
### Изменить тестовый номер
|
||
|
||
Отредактируйте строку 23 в `GetCourtStatus.php`:
|
||
|
||
```php
|
||
$registrationId = '41RS0001-201-25-0001140'; // <- Ваш номер
|
||
```
|
||
|
||
### Изменить таймаут
|
||
|
||
Отредактируйте строку 17 в `GetCourtStatus.php`:
|
||
|
||
```php
|
||
set_time_limit(60); // секунды
|
||
```
|
||
|
||
## 📞 Поддержка
|
||
|
||
При проблемах проверьте:
|
||
1. `logs/court_status.log` - логи эндпоинта
|
||
2. Наличие cookies в `cookies.txt`
|
||
3. Корректность API ключа в функции `GetKey()`
|
||
|
||
---
|
||
|
||
**Статус:** ✅ Готов к использованию
|
||
**Версия:** 1.0
|
||
**Последнее обновление:** 15 октября 2025
|
||
|
||
|
||
|
||
|
||
|