37 lines
1.6 KiB
MySQL
37 lines
1.6 KiB
MySQL
|
|
-- Расширенный вариант: возвращает все данные полиса + флаги валидности
|
|||
|
|
-- Аналогичен основному запросу, но с дополнительными флагами для детальной проверки
|
|||
|
|
|
|||
|
|
SELECT
|
|||
|
|
*,
|
|||
|
|
-- Флаг валидности тарифа
|
|||
|
|
CASE
|
|||
|
|
WHEN tariff_code_basic IN ('STB0048', 'STB1099', 'STB1100', 'STB2099', 'AVS21500', 'AVS22500')
|
|||
|
|
OR tariff_code_other IN (
|
|||
|
|
'SPV0001', 'SPV0002', 'SPV0003', 'SPV0004', 'SPV0005',
|
|||
|
|
'STV0090',
|
|||
|
|
'SPV1001', 'SPV1002', 'SPV1003', 'SPV1004', 'SPV1005',
|
|||
|
|
'SPV2001', 'SPV2002', 'SPV2004', 'SPV2005',
|
|||
|
|
'OPV1001', 'OPV1002', 'OPV1003', 'OPV1004', 'OPV1005',
|
|||
|
|
'OPV2001', 'OPV2002', 'OPV2004', 'OPV2005'
|
|||
|
|
)
|
|||
|
|
THEN 1
|
|||
|
|
ELSE 0
|
|||
|
|
END AS is_valid_tariff,
|
|||
|
|
-- Общий флаг: найден и валиден (основной для IF Node)
|
|||
|
|
CASE
|
|||
|
|
WHEN tariff_code_basic IN ('STB0048', 'STB1099', 'STB1100', 'STB2099', 'AVS21500', 'AVS22500')
|
|||
|
|
OR tariff_code_other IN (
|
|||
|
|
'SPV0001', 'SPV0002', 'SPV0003', 'SPV0004', 'SPV0005',
|
|||
|
|
'STV0090',
|
|||
|
|
'SPV1001', 'SPV1002', 'SPV1003', 'SPV1004', 'SPV1005',
|
|||
|
|
'SPV2001', 'SPV2002', 'SPV2004', 'SPV2005',
|
|||
|
|
'OPV1001', 'OPV1002', 'OPV1003', 'OPV1004', 'OPV1005',
|
|||
|
|
'OPV2001', 'OPV2002', 'OPV2004', 'OPV2005'
|
|||
|
|
)
|
|||
|
|
THEN 1
|
|||
|
|
ELSE 0
|
|||
|
|
END AS found
|
|||
|
|
FROM lexrpiority
|
|||
|
|
WHERE voucher = :voucher
|
|||
|
|
LIMIT 1;
|