- Добавлен сервис CrmMySQLService для прямого подключения к MySQL CRM - Обновлён метод get_draft() для получения cf_2624 напрямую из БД - Реализована блокировка полей (readonly) при contact_data_confirmed = true - Добавлен выбор банка для СБП выплат с динамической загрузкой из API - Обновлена документация по работе с cf_2624 и MySQL - Добавлен network_mode: host в docker-compose для доступа к MySQL - Обновлены компоненты формы для поддержки блокировки полей
3.1 KiB
3.1 KiB
Обновление workflow 6mxRJ2LLHmQXyaDz: Подтверждение данных контакта
Изменения в workflow
1. После ноды CreateWebContacКлиентправ
Добавить ноду: PostgreSQL: Auto Confirm if CRM has data
SQL запрос:
SELECT clpr_auto_confirm_if_crm_has_data($1, $2::integer);
Параметры:
$1={{ $('user_get').first().json.unified_id }}$2={{ JSON.parse($node['CreateWebContacКлиентправ'].json.result).contact_id }}
Назначение: Если данные уже есть в CRM (contact_id > 0), автоматически ставим флаг подтверждения.
2. После ноды Code in JavaScriptКлиентправ
Добавить ноду: PostgreSQL: Check Contact Data Status
SQL запрос:
SELECT * FROM clpr_get_contact_data_status($1);
Параметры:
$1={{ $('user_get').first().json.unified_id }}
Назначение: Проверяем, подтверждены ли данные. Результат передаём дальше.
3. В ответе для фронтенда (нода Code in JavaScript)
Добавить в return:
const contactStatus = $('PostgreSQL: Check Contact Data Status').first().json;
return {
// ... существующие поля ...
contact_data_confirmed: contactStatus.is_confirmed || false,
contact_data_can_edit: contactStatus.can_edit !== false,
contact_data_confirmed_at: contactStatus.confirmed_at || null
};
4. После подтверждения формы (workflow для claim_confirmed)
Добавить ноду: PostgreSQL: Set Contact Data Confirmed
SQL запрос:
SELECT clpr_set_contact_data_confirmed($1, NOW());
Параметры:
$1={{ $json.unified_id }}
Назначение: Устанавливаем флаг подтверждения после успешного сохранения данных.
Порядок выполнения
- Создание контакта →
CreateWebContacКлиентправ - Автоподтверждение → Если данные есть в CRM →
clpr_auto_confirm_if_crm_has_data - Проверка статуса →
clpr_get_contact_data_status→ передаём фронтенду - Фронтенд → Если
contact_data_confirmed = true→ блокируем редактирование - После подтверждения →
clpr_set_contact_data_confirmed→ устанавливаем флаг
Проверка в n8n
После обновления workflow проверить:
- ✅ Флаг устанавливается при наличии данных в CRM
- ✅ Флаг устанавливается после подтверждения формы
- ✅ Статус передаётся фронтенду
- ✅ Фронтенд блокирует редактирование при
contact_data_confirmed = true