Files
crm.clientright.ru/MAIL_NOTIFICATION_SYSTEM.md
Fedor 0f7e8ba247 Добавлена система уведомлений о приходе судебных писем
- Реализована функция createMailNotification() в simple_project_updater_v2.php
- Автоматическое создание уведомлений VDNotifierPro при поступлении документов
- Уведомления отправляются ответственному по проекту
- Исправлен формат ссылок (без index.php? для корректной работы в VDNotifierPro)
- Защита от дубликатов - обновление существующих непрочитанных уведомлений
- Добавлена документация MAIL_NOTIFICATION_SYSTEM.md
- Протестировано и работает корректно
2025-10-16 16:02:08 +03:00

142 lines
6.5 KiB
Markdown
Raw 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.

# Система уведомлений о приходе писем
**Дата:** 16 октября 2025
**Статус:** ✅ Реализовано и протестировано
## Описание
Интегрирована система уведомлений в существующий процесс обработки судебных документов (`simple_project_updater_v2.php`). Теперь при поступлении письма от суда автоматически создается уведомление для ответственного по проекту.
## Как это работает
### 1. Процесс обработки письма
1. **Письмо поступает** → n8n обрабатывает → вызывает `simple_project_updater_v2.php`
2. **Система ищет проект** по ФИО истца, номеру дела, УИД
3. **Создается документ** в CRM с привязкой к проекту
4. **Загружается файл** в S3 хранилище
5. **🆕 Создается уведомление** для ответственного по проекту
### 2. Структура уведомления
```sql
INSERT INTO vtiger_vdnotifierpro (
userid, -- Ответственный по проекту
modulename, -- 'Documents'
crmid, -- ID документа
link, -- Ссылка на документ
title, -- "Письмо от [ФИО] - [тип документа]"
status -- 5 (непрочитанное)
)
```
### 3. Пример уведомления
- **Текст:** "Письмо от Агеев Дмитрий - ОПРЕДЕЛЕНИЕ суда"
- **Ссылка:** `module=Documents&view=Detail&record=123456` (без index.php?)
- **Получатель:** Ответственный по проекту (пользователь 8)
## Технические детали
### Функция `createMailNotification()`
```php
function createMailNotification($projectId, $documentId, $documentTitle, $plaintiffFio) {
// 1. Получаем ответственного по проекту
// 2. Формируем текст уведомления
// 3. Проверяем дубликаты
// 4. Создаем или обновляем уведомление
}
```
### Интеграция в основной процесс
```php
// После успешной привязки документа к проекту
if ($linkSuccess) {
// Создаем уведомление о приходе письма
$notificationId = createMailNotification($project_id, $documentNumericId, $document_title, $plaintiff_fio);
}
```
### Обработка дубликатов
- Если уведомление для документа уже существует → обновляется время
- Если уведомления нет → создается новое
- Статус `5` = непрочитанное уведомление
## Результаты тестирования
### ✅ Тест прошел успешно
```
=== Тест исправленной системы уведомлений ===
Тестовые данные:
- Проект ID: 390657 (Агеев ООО СКИЛБОКС)
- Документ ID: 395297 (реальный документ)
- Ответственный: пользователь 8
✅ Новое уведомление создано с ID: 6869
✅ Текст: "Письмо от Губанова Анна Евгеньевна - ОПРЕДЕЛЕНИЕ суда"
✅ Ссылка: "module=Documents&view=Detail&record=395297" (исправлено!)
```
### Проверка в CRM
1. **Войти в CRM** под пользователем 8 (Фёдор Коробков)
2. **Посмотреть панель уведомлений** (справа вверху)
3. **Увидеть уведомление:** "Письмо от Агеев Дмитрий - ОПРЕДЕЛЕНИЕ суда"
4. **Кликнуть на уведомление** → откроется документ
## Файлы
### Измененные файлы:
-`crm_extensions/simple_project_updater_v2.php` - добавлена функция уведомлений
### Новые файлы:
-`test_mail_notification.php` - тестовый скрипт
## Логирование
Все действия логируются в `crm_extensions/logs/project_update.log`:
```
2025-10-16 15:11:36 - INFO: Создаем уведомление для проекта 390657 о документе 123456
2025-10-16 15:11:36 - DEBUG: Ответственный по проекту: пользователь 8
2025-10-16 15:11:36 - SUCCESS: Создано новое уведомление ID: 6867 для пользователя 8
```
## Исправления
### 🔧 Проблема со ссылками (исправлено)
**Проблема:** Ссылки в уведомлениях не работали - показывали пустую страницу
**Причина:** VDNotifierPro автоматически убирает `index.php?` из ссылок
**Решение:** Изменили формат ссылки с `index.php?module=Documents&view=Detail&record=123456` на `module=Documents&view=Detail&record=123456`
## Преимущества
1. **Автоматизация** - уведомления создаются автоматически
2. **Интеграция** - использует существующую систему VDNotifierPro
3. **Умная логика** - показывает уведомления только ответственному по проекту
4. **Защита от дубликатов** - не создает множественные уведомления
5. **Прямая ссылка** - клик ведет сразу к документу
6. **Исправленные ссылки** - работают корректно в CRM
## Использование
Система работает автоматически при обработке писем через `simple_project_updater_v2.php`. Никаких дополнительных действий не требуется.
### Для тестирования:
```bash
php test_mail_notification.php
```
---
**Статус:** ✅ Готово к использованию
**Автор:** AI Assistant + Фёдор
**Дата:** 16 октября 2025