13 Commits

Author SHA1 Message Date
Fedor
d7982931cd feat: добавлен telegram_replay.php для публикации ответов поддержки в CRM
Новый endpoint для записи ответов поддержки как комментариев в CRM:
- Принимает JSON с полями: answer, contact_id, project_id (опц.), support_user_id (опц.), channel (опц.)
- Использует прямые INSERT запросы в vtiger_crmentity, vtiger_modcomments, vtiger_modcommentscf
- Обязательно создаёт запись в vtiger_modcommentscf (иначе комментарий не отображается)
- Устанавливает deleted=0 (иначе фильтруется при выборке)
- Полная проверка ошибок БД с детальным логированием
- Логи: logs/tg_replay_inbound.log

Исправлены проблемы:
- vtws_create падал без выброса исключения — заменён на прямой SQL
- Убраны несуществующие колонки (from_mailconverter, customer_email, from_mailroom)
- Добавлена обязательная запись в vtiger_modcommentscf
2026-02-03 14:02:12 +03:00
Fedor
e114231541 feat: Получение cf_2624 из MySQL при загрузке черновика
- Добавлен сервис CrmMySQLService для подключения к MySQL БД vtiger CRM
- Обновлён get_draft() для прямого SQL запроса к MySQL вместо webservice API
- Получение cf_2624 и всех данных контакта из MySQL
- Обновлена документация и SQL файлы для n8n
- Добавлено логирование для отладки

Преимущества:
- Проще: один SQL запрос вместо цепочки HTTP запросов
- Быстрее: прямой запрос к БД
- Надёжнее: не зависит от webservice API
- Актуальнее: всегда свежие данные из БД
2025-12-03 16:04:25 +03:00
Fedor
da82100b60 feat: UI/UX improvements + CRM integration methods + documents_meta deduplication
Frontend:
- Changed main title to 'Подать обращение о защите прав потребителя'
- Changed browser title to 'Clientright — защита прав потребителей'
- Enhanced draft cards: show problem_description (250 chars), category tag, document progress bar
- Fixed 'Назад' button to always return to draft selection
- Added SSE connection for OCR status updates
- Renamed steps: Вход, Обращение, Документы, Заявление
- Skip 'Проверка полиса' and 'Тип события' steps for new claim flow

Backend:
- Fixed client IP extraction (X-Forwarded-For, X-Real-IP)
- Added problem_title, category, documents_required_list to draft list API
- Fixed documents_uploaded count to count unique field_labels

CRM Webservices:
- Added UpsertContact.php - create/update contacts with tgid support
- Added UpsertAccounts.php - batch upsert offenders by INN
- Added UpsertProject.php - create/update projects with offender mapping

Database:
- Fixed documents_meta duplicates in existing claims
- SQL query for deduplication by field_name provided
2025-12-01 22:18:21 +03:00
Fedor
486f3619ff Добавлен field_label в результат переименования файлов, исправлена загрузка черновиков, обновлен формат пути S3 с project_name 2025-11-22 09:38:38 +03:00
Fedor
cd90b0d58a feat: Добавлен инструмент генерации документов для AI Ассистента
- Создан API create_document_with_text.php для создания DOCX/XLSX/PPTX с текстом от AI
- Поддержка Markdown форматирования (заголовки, жирный, курсив, списки, код)
- Установлен PHPWord для красивого форматирования документов
- Исправлены пути сохранения (crm2/CRM_Active_Files/... без /crm/ в начале)
- Замена пробелов на подчеркивания в именах папок
- Создана документация для AI и разработчиков
- Добавлены API для работы с шаблонами Nextcloud
2025-11-12 19:46:06 +03:00
Fedor
c60d00f563 feat: Создана операция CreateWebClaim для заявок через webservice
-  CreateWebClaim.php: создание заявок (HelpDesk) в vTiger
-  Обязательные поля: title, contact_id, project_id, event_type
-  Опциональные: description, incident_date, transport_number
-  Маппинг event_type на русские категории
-  Возврат: {ticket_id, ticket_number, title, category, status}
-  Зарегистрирована в БД: operationid=52
-  webservice.php: ob_get_clean + ob_start для очистки BOM
-  Логирование в logs/CreateWebClaim.log
2025-11-02 00:09:22 +03:00
Fedor
746367606e fix: CreateWebProject возвращает чистый JSON без BOM
-  CreateWebProject.php: возвращает массив (не json_encode)
-  CreateWebProject.php: ob_start/ob_end_clean для глушения warnings
-  Удалён closing tag ?> и лишние переносы
-  webservice.php: ob_clean() после includes (удаляет BOM)
-  Результат: чистый JSON без BOM и переносов
- 🎯 N8N теперь корректно парсит ответ

Связанные изменения:
- erv_platform: claim_id генерируется только в n8n
2025-11-01 16:53:20 +03:00
Fedor
af80214990 feat: Добавлена операция CreateWebProject для vTiger webservice
- Упрощённая операция создания проекта: обязательно policy_number + contact_id
- Логика: если проект с таким полисом существует - возвращает ID БЕЗ обновления
- Если не существует - создаёт новый проект
- Поля:
  * projectname: 'ERV {полис} цифровой адвокат'
  * projectstatus: 'модерация'
  * projecttype: 'ерв урегулирование'
  * linktoaccountscontacts: привязка к контакту
  * cf_1994: Заявитель (контрагент 67458)
  * cf_1885: номер полиса
  * cf_1887, cf_1889: периоды страхования (опционально)
- Возвращает JSON: {"project_id": "123", "is_new": true/false}
- Зарегистрировано в БД:
  * vtiger_ws_operation (id: 51)
  * vtiger_ws_operation_parameters (policy_number, contact_id, period_start, period_end)
- Логи: logs/CreateWebProject.log
- Протестировано: проект 396865 создан и повторно найден без дублирования
2025-11-01 12:51:54 +03:00
Fedor
d7941ac862 feat: CreateWebContact возвращает is_new флаг
- Return: {"contact_id": "123", "is_new": true/false}
- is_new = true: контакт создан сейчас
- is_new = false: контакт уже существовал
- Логируется в CreateWebContact.log
- Протестировано:
  * Новый 79194927999 → {contact_id: 396636, is_new: true}
  * Существующий 79001234567 → {contact_id: 396625, is_new: false}
2025-10-30 19:49:42 +03:00
Fedor
09c1fbd1db feat: Добавлена операция CreateWebContact для vTiger webservice
- Упрощённая операция создания контакта: обязательно только mobile
- Логика: если контакт существует - возвращает ID БЕЗ обновления
- Если не существует - создаёт с дефолтами (Клиент ERV_XXXX)
- Формат телефона: 79001234567 (без +)
- Зарегистрировано в БД:
  * vtiger_ws_operation (id: 50)
  * vtiger_ws_operation_parameters (mobile, firstname, lastname, email)
- Логи: logs/CreateWebContact.log
- Протестировано: контакт 396625 найден и возвращён без изменений
2025-10-30 19:21:34 +03:00
Fedor
9245768987 🚀 CRM Files Migration & Real-time Features
 Features:
- Migrated ALL files to new S3 structure (Projects, Contacts, Accounts, HelpDesk, Invoice, etc.)
- Added Nextcloud folder buttons to ALL modules
- Fixed Nextcloud editor integration
- WebSocket server for real-time updates
- Redis Pub/Sub integration
- File path manager for organized storage
- Redis caching for performance (Functions.php)

📁 New Structure:
Documents/Project/ProjectName_ID/file_docID.ext
Documents/Contacts/FirstName_LastName_ID/file_docID.ext
Documents/Accounts/AccountName_ID/file_docID.ext

🔧 Technical:
- FilePathManager for standardized paths
- S3StorageService integration
- WebSocket server (Node.js + Docker)
- Redis cache for getBasicModuleInfo()
- Predis library for Redis connectivity

📝 Scripts:
- Migration scripts for all modules
- Test pages for WebSocket/SSE/Polling
- Documentation (MIGRATION_*.md, REDIS_*.md)

🎯 Result: 15,000+ files migrated successfully!
2025-10-24 19:59:28 +03:00
Fedor
ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- Added comprehensive AI Assistant system (aiassist/ directory):
  * Vector search and embedding capabilities
  * Typebot proxy integration
  * Elastic search functionality
  * Message classification and chat history
  * MCP proxy for external integrations

- Implemented Court Status API (GetCourtStatus.php):
  * Real-time court document status checking
  * Integration with external court systems
  * Comprehensive error handling and logging

- Enhanced S3 integration:
  * Improved file backup system with metadata
  * Batch processing capabilities
  * Enhanced error logging and recovery
  * Copy operations with URL fixing

- Added Telegram contact creation API
- Improved error logging across all modules
- Enhanced callback system for AI responses
- Extensive backup file storage with timestamps
- Updated documentation and README files

- File storage improvements:
  * Thousands of backup files with proper metadata
  * Fix operations for broken file references
  * Project-specific backup and recovery systems
  * Comprehensive file integrity checking

Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
2025-10-16 11:17:21 +03:00
Fedor
cf520a7db5 Initial commit: CRM project with S3 integration and advanced APIs 2025-09-26 10:43:05 +03:00