fix: Use payload.send_to_form_approve.draft data directly instead of converting
Problem: - Data already exists in DB in propertyName format at payload.send_to_form_approve.draft - We were trying to convert from wizard_answers instead of using existing data - Form was empty because we ignored the correct data structure Solution: 1. Added priority check for payload.send_to_form_approve.draft: - If exists, use it directly (PRIORITY 1) - If not, fall back to conversion from wizard_answers (PRIORITY 2) 2. Direct usage of send_to_form_approve.draft: - Extract propertyName structure directly from draft - Preserve all fields: applicant, case, contract_or_service, offenders, claim, meta, attachments - Use unified_id from draft.meta or fallback to claim/formData 3. Enhanced logging: - Logs if send_to_form_approve.draft found - Logs draft data structure - Logs result structure Files: - frontend/src/pages/ClaimForm.tsx: Use send_to_form_approve.draft directly
This commit is contained in:
@@ -295,10 +295,59 @@ export default function ClaimForm() {
|
||||
hasCaseData: !!(body.case || payload.case),
|
||||
hasContractData: !!(body.contract_or_service || payload.contract_or_service),
|
||||
hasWizardAnswers: !!(body.answers || payload.answers || body.wizard_answers || payload.wizard_answers),
|
||||
hasSendToFormApprove: !!(payload.send_to_form_approve && payload.send_to_form_approve.draft),
|
||||
payloadKeys: Object.keys(payload),
|
||||
bodyKeys: Object.keys(body),
|
||||
});
|
||||
|
||||
// ✅ ПРИОРИТЕТ 1: Если есть данные в payload.send_to_form_approve.draft - используем их напрямую!
|
||||
const sendToFormApproveDraft = payload.send_to_form_approve?.draft;
|
||||
if (sendToFormApproveDraft) {
|
||||
console.log('✅ Найдены данные в payload.send_to_form_approve.draft, используем их напрямую!');
|
||||
console.log('✅ send_to_form_approve.draft:', sendToFormApproveDraft);
|
||||
|
||||
// Используем данные из send_to_form_approve.draft напрямую
|
||||
const draftData = sendToFormApproveDraft;
|
||||
|
||||
// Формируем propertyName из draft данных
|
||||
const propertyName = {
|
||||
applicant: draftData.applicant || {},
|
||||
case: draftData.case || {},
|
||||
contract_or_service: draftData.contract_or_service || {},
|
||||
offenders: draftData.offenders || [],
|
||||
claim: draftData.claim || {},
|
||||
meta: {
|
||||
...(draftData.meta || {}),
|
||||
claim_id: finalClaimId,
|
||||
unified_id: draftData.meta?.unified_id || claim.unified_id || currentFormData.unified_id || null,
|
||||
},
|
||||
attachments: draftData.attachments || [],
|
||||
attachments_count: draftData.attachments_count || 0,
|
||||
attachments_names: draftData.attachments_names || [],
|
||||
};
|
||||
|
||||
// Возвращаем данные в формате объекта (для компонента StepClaimConfirmation)
|
||||
const result = {
|
||||
propertyName: propertyName,
|
||||
session_token: actualSessionId,
|
||||
prefix: '',
|
||||
telegram_id: null,
|
||||
claim_id: finalClaimId,
|
||||
unified_id: propertyName.meta.unified_id,
|
||||
user_id: propertyName.meta.user_id || null,
|
||||
};
|
||||
|
||||
console.log('🔄 transformDraftToClaimPlanFormat: результат из send_to_form_approve:', {
|
||||
claim_id: result.claim_id,
|
||||
unified_id: result.unified_id,
|
||||
hasPropertyName: !!result.propertyName,
|
||||
hasMeta: !!result.propertyName?.meta,
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// ✅ ПРИОРИТЕТ 2: Если данных нет в send_to_form_approve, извлекаем из body/payload
|
||||
// Извлекаем данные из body (telegram) или напрямую из payload (web_form)
|
||||
const applicantData = body.applicant || payload.applicant || {};
|
||||
const caseData = body.case || payload.case || {};
|
||||
|
||||
Reference in New Issue
Block a user