diff --git a/ticket_form/backend/app/api/claims.py b/ticket_form/backend/app/api/claims.py index 2bc8871d..b3a6a2e4 100644 --- a/ticket_form/backend/app/api/claims.py +++ b/ticket_form/backend/app/api/claims.py @@ -655,6 +655,12 @@ async def publish_form_approval(request: Request): import time idempotency_key = f"{claim_id}_{int(time.time() * 1000)}_{body.get('user_id', 'unknown')}" + # ✅ Получаем флаг подтверждения данных контакта и данные банка + contact_data_confirmed = body.get("contact_data_confirmed", False) + cf_2624 = body.get("cf_2624", "0") + bank_id = body.get("bank_id", "") + bank_name = body.get("bank_name", "") + # Формируем событие для Redis event_data = { "event_type": "form_approve", @@ -669,6 +675,14 @@ async def publish_form_approval(request: Request): "idempotency_key": idempotency_key, # Для защиты от дублей в RabbitMQ "timestamp": datetime.utcnow().isoformat(), + # ✅ Флаг редактирования перс данных (cf_2624) + "contact_data_confirmed": contact_data_confirmed, + "cf_2624": cf_2624, # Значение для CRM (1 = подтверждено, 0 = не подтверждено) + + # ✅ Данные банка для СБП выплаты + "bank_id": bank_id, + "bank_name": bank_name, + # Данные формы подтверждения "form_data": body.get("form_data", {}), "user": body.get("user", {}), diff --git a/ticket_form/frontend/src/components/form/StepClaimConfirmation.tsx b/ticket_form/frontend/src/components/form/StepClaimConfirmation.tsx index 3d471810..16d03b1b 100644 --- a/ticket_form/frontend/src/components/form/StepClaimConfirmation.tsx +++ b/ticket_form/frontend/src/components/form/StepClaimConfirmation.tsx @@ -123,6 +123,17 @@ export default function StepClaimConfirmation({ claimPlanData?.propertyName?.user?.mobile || claimPlanData?.phone || ''; + // ✅ Получаем флаг подтверждения данных контакта + const contact_data_confirmed = + prop_contact_data_confirmed !== undefined ? prop_contact_data_confirmed : + claimPlanData?.contact_data_confirmed || + claimPlanData?.propertyName?.meta?.contact_data_confirmed || + false; + + // ✅ Получаем данные банка (ID и название) + const bankId = formData?.user?.bank_id || ''; + const bankName = formData?.user?.bank_name || ''; + // Формируем payload для Redis канала const payload = { claim_id: claimId, @@ -133,6 +144,14 @@ export default function StepClaimConfirmation({ phone: phone, sms_code: smsCode || '', // SMS код для верификации + // ✅ Флаг редактирования перс данных (cf_2624) + contact_data_confirmed: contact_data_confirmed, + cf_2624: contact_data_confirmed ? "1" : "0", // Значение для CRM + + // ✅ Данные банка для СБП выплаты + bank_id: bankId, + bank_name: bankName, + // Данные формы подтверждения form_data: formData, user: formData?.user || {}, diff --git a/ticket_form/frontend/src/components/form/generateConfirmationFormHTML.ts b/ticket_form/frontend/src/components/form/generateConfirmationFormHTML.ts index 5db30a70..3153d76e 100644 --- a/ticket_form/frontend/src/components/form/generateConfirmationFormHTML.ts +++ b/ticket_form/frontend/src/components/form/generateConfirmationFormHTML.ts @@ -1567,6 +1567,9 @@ export function generateConfirmationFormHTML(data: any, contact_data_confirmed: if (hiddenField) { hiddenField.value = currentBankId; } + // ✅ Сохраняем название банка в state + state.user = state.user || {}; + state.user.bank_name = currentBankName; input.classList.add('filled'); updateFieldStyle(input); } @@ -1584,20 +1587,22 @@ export function generateConfirmationFormHTML(data: any, contact_data_confirmed: } if (foundBank) { - // Найден банк - сохраняем ID + // Найден банк - сохраняем ID и название if (hiddenField) { hiddenField.value = foundBank.bankid; } state.user = state.user || {}; state.user.bank_id = foundBank.bankid; + state.user.bank_name = foundBank.bankname; // ✅ Сохраняем название банка this.classList.add('filled'); } else { - // Банк не найден - очищаем ID + // Банк не найден - очищаем ID и название if (hiddenField) { hiddenField.value = ''; } state.user = state.user || {}; state.user.bank_id = ''; + state.user.bank_name = ''; // ✅ Очищаем название банка this.classList.remove('filled'); } updateFieldStyle(this); @@ -1617,6 +1622,7 @@ export function generateConfirmationFormHTML(data: any, contact_data_confirmed: } state.user = state.user || {}; state.user.bank_id = foundBank.bankid; + state.user.bank_name = foundBank.bankname; // ✅ Сохраняем название банка this.classList.add('filled'); updateFieldStyle(this); }