Files
crm.clientright.ru/MAIL_NOTIFICATION_SYSTEM.md

142 lines
6.5 KiB
Markdown
Raw Permalink Normal View History

# Система уведомлений о приходе писем
**Дата:** 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