64 lines
2.7 KiB
JavaScript
64 lines
2.7 KiB
JavaScript
|
|
// Код для Code Node в n8n
|
|||
|
|
// Нормализация номера полиса: замена кириллических букв на латинские
|
|||
|
|
|
|||
|
|
// Получаем номер полиса из предыдущей ноды
|
|||
|
|
// Предполагаем, что номер приходит в поле police_number или inn
|
|||
|
|
const policyNumber = $input.item.json.police_number ||
|
|||
|
|
$input.item.json.inn ||
|
|||
|
|
$input.item.json.form_data?.police_number ||
|
|||
|
|
$input.item.json.form_data?.inn ||
|
|||
|
|
'';
|
|||
|
|
|
|||
|
|
if (!policyNumber || typeof policyNumber !== 'string') {
|
|||
|
|
return {
|
|||
|
|
json: {
|
|||
|
|
original: policyNumber,
|
|||
|
|
normalized: '',
|
|||
|
|
error: 'Номер полиса не найден или имеет неверный формат'
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Функция нормализации: кириллица -> латиница (как в database.php строки 105-109)
|
|||
|
|
function normalizePolicyNumber(str) {
|
|||
|
|
if (!str) return '';
|
|||
|
|
|
|||
|
|
let normalized = str;
|
|||
|
|
|
|||
|
|
// Заменяем кириллические буквы на латинские (как в database.php)
|
|||
|
|
normalized = normalized.replace(/Е/g, 'E'); // Кириллическая Е -> латинская E
|
|||
|
|
normalized = normalized.replace(/е/g, 'e'); // Кириллическая е -> латинская e
|
|||
|
|
normalized = normalized.replace(/А/g, 'A'); // Кириллическая А -> латинская A
|
|||
|
|
normalized = normalized.replace(/а/g, 'a'); // Кириллическая а -> латинская a
|
|||
|
|
|
|||
|
|
// Можно добавить другие похожие буквы, если нужно:
|
|||
|
|
// normalized = normalized.replace(/В/g, 'B');
|
|||
|
|
// normalized = normalized.replace(/С/g, 'C');
|
|||
|
|
// normalized = normalized.replace(/О/g, 'O');
|
|||
|
|
// normalized = normalized.replace(/Р/g, 'P');
|
|||
|
|
// normalized = normalized.replace(/Х/g, 'X');
|
|||
|
|
// normalized = normalized.replace(/М/g, 'M');
|
|||
|
|
// normalized = normalized.replace(/Н/g, 'H');
|
|||
|
|
// normalized = normalized.replace(/Т/g, 'T');
|
|||
|
|
// normalized = normalized.replace(/К/g, 'K');
|
|||
|
|
|
|||
|
|
return normalized;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Нормализуем номер полиса
|
|||
|
|
const normalized = normalizePolicyNumber(policyNumber);
|
|||
|
|
|
|||
|
|
// Возвращаем результат
|
|||
|
|
return {
|
|||
|
|
json: {
|
|||
|
|
original: policyNumber,
|
|||
|
|
normalized: normalized,
|
|||
|
|
changed: policyNumber !== normalized,
|
|||
|
|
// Добавляем нормализованное значение обратно в структуру данных
|
|||
|
|
police_number: normalized,
|
|||
|
|
inn: normalized, // на случай если используется поле inn
|
|||
|
|
// Сохраняем остальные данные из предыдущей ноды
|
|||
|
|
...($input.item.json || {})
|
|||
|
|
}
|
|||
|
|
};
|