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

7.0 KiB
Raw Permalink Blame History

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

Преимущества новой системы

  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 с теми же параметрами.