This commit is contained in:
Fedor
2026-03-13 10:42:01 +03:00
commit 9708638e0a
4050 changed files with 1028632 additions and 0 deletions

129
database_php_returns.md Normal file
View File

@@ -0,0 +1,129 @@
# Что возвращает database.php и что используется
## SQL запрос
```sql
SELECT * FROM lexrpiority WHERE voucher = '...' LIMIT 1
```
**Возвращает ВСЕ поля строки** из таблицы `lexrpiority`.
## Что используется в PHP скрипте
После получения строки из БД (`$row = mysqli_fetch_assoc($result)`), скрипт использует:
1. **`tariff_code_basic`** - для проверки валидности тарифа
2. **`tariff_code_other`** - для проверки валидности тарифа
## Что возвращается в JSON ответе
### При успехе (полис найден и валиден):
```json
{
"success": "true",
"message": "Полис найден",
"result": {
// ВСЯ строка из БД (все поля таблицы lexrpiority)
"id": "35927",
"row_no": "893",
"agent_code": "E50208",
"voucher": "E50208-306083026",
"insured_name": "SHAROV IURII",
"insured_birth": "10.05.1974",
"insured_gender": "U",
"status": "NV",
"insured_counter": "1",
"issued_on": "17.11.2025",
"insured_from": "19.11.2025", // ⭐ ИСПОЛЬЗУЕТСЯ на фронтенде
"insured_to": "24.11.2025", // ⭐ ИСПОЛЬЗУЕТСЯ на фронтенде
"insured_days": "6",
"destination": "GEO",
"productvariant_code": "10223",
"tariff_code_basic": "STB2003",
"tariff_code_sport": "",
"tariff_code_cancel": "",
"tariff_code_other": "SPV2002", // ⭐ ИСПОЛЬЗУЕТСЯ для проверки
"premium_cur_basic": "12,48",
"premium_cur_sport": "",
"premium_cur_cancel": "",
"premium_cur_other": "13",
"premium_cur": "25,48",
"premium_loc": "2067,13",
// ... и другие поля
}
}
```
### При ошибке (полис не найден или не валиден):
```json
{
"success": "false",
"message": "Полис не найден" или "Ваш полис не включает покрытие задержки рейса",
"result": ""
}
```
## Что используется на фронтенде (JavaScript)
В `ticket_dev/js/common.js` строки 1227-1228:
```javascript
// Автозаполнение дат из результата проверки полиса
$('input[name=insured_from]').val(res.result.insured_from.replace(/\./g, '-'));
$('input[name=insured_to]').val(res.result.insured_to.replace(/\./g, '-'));
```
**Используются только 2 поля:**
- `result.insured_from` - дата начала действия полиса
- `result.insured_to` - дата окончания действия полиса
## Вывод для вебхука n8n
Для вебхука нужно возвращать:
### Минимально необходимое:
- `found: 1/0` - для IF Node в n8n
- `success: true/false` - для совместимости с PHP
- `message` - текстовое сообщение
### Желательно (для автозаполнения на фронтенде):
- `result.insured_from` - дата начала полиса
- `result.insured_to` - дата окончания полиса
### Опционально (для дополнительной информации):
- Остальные поля из таблицы `lexrpiority` (если нужны для логирования/аналитики)
## Рекомендуемый формат ответа вебхука
```json
{
"success": true,
"found": 1,
"message": "Полис найден",
"result": {
"insured_from": "19.11.2025",
"insured_to": "24.11.2025",
"voucher": "E50208-306083026",
"insured_name": "SHAROV IURII",
"tariff_code_basic": "STB2003",
"tariff_code_other": "SPV2002"
// Можно добавить другие поля, если нужны
}
}
```
Или минимальный вариант (если не нужны данные для автозаполнения):
```json
{
"success": true,
"found": 1,
"message": "Полис найден",
"result": {
"insured_from": "19.11.2025",
"insured_to": "24.11.2025"
}
}
```