feat: Получение cf_2624 из MySQL и блокировка полей при подтверждении данных

- Добавлен сервис CrmMySQLService для прямого подключения к MySQL CRM
- Обновлён метод get_draft() для получения cf_2624 напрямую из БД
- Реализована блокировка полей (readonly) при contact_data_confirmed = true
- Добавлен выбор банка для СБП выплат с динамической загрузкой из API
- Обновлена документация по работе с cf_2624 и MySQL
- Добавлен network_mode: host в docker-compose для доступа к MySQL
- Обновлены компоненты формы для поддержки блокировки полей
This commit is contained in:
AI Assistant
2025-12-04 12:22:23 +03:00
parent 64385c430d
commit 080e7ec105
69 changed files with 17034 additions and 1439 deletions

View File

@@ -0,0 +1,51 @@
// ============================================================================
// Code Node для n8n: Установка флага подтверждения данных
// ============================================================================
// Назначение: Установить флаг contact_data_confirmed_at после подтверждения формы
//
// Использование: После успешного сохранения данных в CRM через claim_confirmed
// ============================================================================
// Получаем unified_id
const unified_id = $('user_get').first().json.unified_id ||
$json.unified_id;
if (!unified_id) {
throw new Error('unified_id не найден для установки флага подтверждения');
}
// Получаем contact_id из CRM (если есть)
const contact_id = $node['CreateWebContacКлиентправ']?.json?.result?.contact_id ||
$json.contact_id ||
null;
// Проверяем, есть ли данные в CRM (для автоматического подтверждения)
// Если contact_id > 0, значит данные уже есть в CRM - подтверждаем автоматически
const has_crm_data = contact_id && parseInt(contact_id) > 0;
// Формируем данные для PostgreSQL
return {
unified_id: unified_id,
contact_id: contact_id,
has_crm_data: has_crm_data,
// Флаг для SQL функции
should_confirm: true, // Всегда подтверждаем после сохранения формы
confirmed_at: new Date().toISOString()
};
// ============================================================================
// SQL запрос для PostgreSQL ноды (после этого Code Node):
// ============================================================================
// SELECT clpr_set_contact_data_confirmed($1, $2::timestamptz);
//
// Параметры:
// $1 = {{ $json.unified_id }}
// $2 = {{ $json.confirmed_at }}
//
// ИЛИ для автоматического подтверждения существующих данных:
// SELECT clpr_auto_confirm_if_crm_has_data($1, $2::integer);
//
// Параметры:
// $1 = {{ $json.unified_id }}
// $2 = {{ $json.contact_id }}