Files
crm.clientright.ru/EVENT_CREATION_SOLUTION.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

4.6 KiB
Raw Blame History

Решение проблемы с отображением событий в проектах

Проблема

События создавались в календаре CRM, привязывались к проектам в таблице vtiger_seactivityrel, но не отображались в интерфейсе проекта.

Причина

События создавались с неправильными параметрами, отличающимися от тех, что использует стандартный workflow CRM (workflow 3 "ACS Создание события на СЗ").

Решение

1. Анализ workflow 3 (блок 18 "Создаем Событие")

Изучили настройки workflow 3 из таблицы vtiger_wfp_blocks:

SELECT id, text, type, settings 
FROM vtiger_wfp_blocks 
WHERE workflow_id = 3 
ORDER BY id;

Ключевые параметры workflow (блок 18):

  • activitytype: судебное заседание (кастомный тип)
  • eventstatus: Planned (Запланировано)
  • visibility: Public
  • contact_id: Связь с контактом через $(linktoaccountscontacts: (Contacts) id)
  • assigned_user_id: Владелец проекта
  • subject: СЗ по проекту $projectname

2. Исправления в CreateCourtEvent_v2.php

2.1. Статус события

Было:

$activityType = 'судебное заседание';
$eventstatus = 'Held'; // Проведено

Стало:

$activityType = 'судебное заседание';
$eventstatus = 'Planned'; // Запланировано (как в workflow)

2.2. Получение контакта из проекта

Было:

$query = "SELECT e.smownerid, p.projectname FROM vtiger_crmentity e 
          JOIN vtiger_project p ON p.projectid = e.crmid 
          WHERE e.crmid = ? AND e.deleted = 0";

Стало:

$query = "SELECT e.smownerid, p.projectname, p.linktoaccountscontacts FROM vtiger_crmentity e 
          JOIN vtiger_project p ON p.projectid = e.crmid 
          WHERE e.crmid = ? AND e.deleted = 0";

$contactId = $row['linktoaccountscontacts'] ?? null;

2.3. Связь события с контактом

Добавлена запись в vtiger_cntactivityrel:

// Связываем событие с контактом (если контакт указан в проекте)
if (!empty($contactId) && $contactId > 0) {
    $sql = "INSERT INTO vtiger_cntactivityrel (contactid, activityid) VALUES (?, ?)";
    $stmt = $mysqli->prepare($sql);
    $stmt->bind_param('ii', $contactId, $eventId);
    $stmt->execute();
    log_event('SUCCESS', "Событие привязано к контакту: $contactId");
}

2.4. Исправление неопределённой переменной

Было:

log_event('DEBUG', "Тип события: $activityType, Статус: $status, Тема: $eventSubject");

Стало:

log_event('DEBUG', "Тип события: $activityType, Статус: $eventstatus, Тема: $eventSubject");

Результат

Структура созданного события (ID 395462)

activityid: 395462
subject: [Бостанова ООО ЭДЭКС] Решение
activitytype: судебное заседание
eventstatus: Planned
date_start: 2025-10-02
time_start: 10:00:00
project_id: 364118 (привязка к проекту)
contactid: 364117 (привязка к контакту)

Связи в базе данных

  1. vtiger_crmentity: Основная запись события (crmid=395462)
  2. vtiger_activity: Данные события (дата, время, тип, статус)
  3. vtiger_seactivityrel: Связь события с проектом (crmid=364118, activityid=395462)
  4. vtiger_cntactivityrel: Связь события с контактом (contactid=364117, activityid=395462)

Тестирование

# Проверка события в базе данных
mysql -u ci20465_72new -pEcY979Rn ci20465_72new -e "
SELECT a.activityid, a.subject, a.activitytype, a.eventstatus, 
       a.date_start, a.time_start, s.crmid as project_id, c.contactid 
FROM vtiger_activity a 
LEFT JOIN vtiger_seactivityrel s ON a.activityid = s.activityid 
LEFT JOIN vtiger_cntactivityrel c ON a.activityid = c.activityid 
WHERE a.activityid = 395462;"

Файлы изменены

  • /var/www/fastuser/data/www/crm.clientright.ru/CreateCourtEvent_v2.php

Дата изменений

2025-10-17 18:45

Автор

AI Assistant (Cursor)